Omer Tumkor

Denis Barberena

Christopher Zega

I pledge my honor that I have abided by the Stevens Honor System.

Section 1:

This report has been developed by three team members. Omer Tumkorwas responsible for preparing function-means tree and researching how each mean will be accomplished. He researched which means will be optimum for the system in terms of performance, cost and reliability. Christopher Zegawas responsible for creation of the black box diagram and its explanation. Denis Barberena contributed in the creation of the black box diagram, particularly in the representation and description of the inputs. Each team member was able to successfully complete their necessary research and the work was shared equally. Team member contribution table is as follows:

Denis Barberena / Christopher Zega / Omer Tumkor
Percentage of effort towards this assignment / 33% / 33% / 34%

Black Box Diagram:

Explanation Of Black Box Diagram

The black box in the diagram represents the server side of the application. The role of the server will be to gather information from the various sources. This will be done through two different means. The first way information will be gathered will be through public APIs. For example, Twitter allows developers to have access to information regarding tweets and hashtags. As well, various sources publish stock information through their own APIs. However, because this information will be delayed and not up-to-date, we will pay for stock information from dedicated services that can provide continuously updated information. The second source of data would be through data mining. Using readily available Twitter data mining APIs, various websites can be scanned for useful information. This will be valuable for websites that do not readily publish their information for developers.

Depending on how the various APIs function, some data will need to be stored within our own servers. This is beneficial, as it will allow for quicker processing time and greater flexibility on how we handle the data. However, storing a large amount of data, particularly historical data, will be costly. Therefore, a balance needs to be found between having data available on local servers for quick processing and having data available through third party services allowing for long terms analytics.

The inputs to this black box will be data. The primary data that will be entered into this black box will be the data previously discussed; Twitter and social network data, financial data, and news articles/data. The data will be collected in the manner discussed above. Along with these forms of data, the server will also accept user data into the application. The user data will include user preferences, such as preferences on how the data should be sorted and displayed, and user searches for particular data.

The black box will take these data inputs and analyze them for trends. The actual implementation of this analysis will become more apparent as further research is done into analytics, financial market, and what information is available from our inputs.

The main output of the server will be an organized display of our data. The analytic data that is generated will be displayed in the form of tables and graphs that are easy to read, regardless of financial or technical knowledge. These outputs will be formatted into an industry standard such as HTML 5. The reason for this is that while all mobile platforms use a separate code base, iOS using Objective-C, Android using Java, and Windows 8 using C#, all of these platforms are able to easily to display HTML. Therefore, the server will not need to know what kind of device the user is using. Instead the device will be responsible in displaying the content.

The second output will be articles that pertain to our analytics. Along with the data that the application provides, the application will also provide articles that the customer can read that will offer an understanding on how the data was created. This will allow the customers to have a greater understanding of the trends and the relationship between financial data and current affairs found in the news and social media.

The third output of the black box will be raw, unformatted data presented in an industry standard file format, such as an Excel file or CSV file. This data will allow users to provide their own analysis to the data through programs like Microsoft Excel. While this can begin as a feature for higher-level users to gain more value from the application, it can be evolved into a community feature that allows users to share and compare their own analytics of the data.

The last output of the server will be notification regarding the status of the application. This will include information regarding the current online status of the servers, a notification of the loading of data, and a notification of the load on the servers, such as the number of users or requests at a current time.

This black box diagram represents a high live overview of how the application will work. As well, the black box diagram does not represent that application that will be present on phones and computers. If a black box diagram was created for the smart phone application, the outputs of the current black box, the server, will be regarded as the inputs for the application. The output of the black box would be visual content, like various charts, graphs, text articles, and images, along with sounds that might represent various notifications and alerts.

Function-Means Tree


The function-means analyzes the necessary functions needed in order for the system to satisfy the needs of the system. In order to make trade recommendations to the user the system needs to gather news, gather price, process the data, and publish the data.

For gathering news there is two alternative means. The system can either crawl websites or use paid subscription services. For crawling websites, we can either use available APIs or design and implement a HTML crawler that will surf the websites and gather any information it can. While this method can be cheap it might not be as reliable or fast as paid subscription services. The team will research and will try finding the optimum cost to performance combination to ensure the system is cost effective and also reliable at the same time.

For gathering price information, there are various alternatives available. The system can utilize subscriptions, websites and trading platforms. Unlike gathering news, there are few robust commercial platforms that can be utilized for information as they are very reliable and have extensive programming support. FXCM Strategy Trader platform supports C and can be programmed to do many functions to analyze and send price data. FXCM Strategy Trader is best suited for forex markets. TD thinkorswim is ideals for stock markets as its main focus is stock markets. It has excellent support and reliable information regarding stock price information. Meta trader serves as an alternative to the FXCM Strategy Trader with few advantages. Meta trader is supported by almost all brokers whereas Strategy Trader platform is exclusively offered by FXCM. It is also more widely supported online with more public documentation available regarding coding supported applications.

There are few steps involved in processing the data once it is gathered. First step is storing the collected data. The team can use Google’s Blobstore function to store the data in the same medium as the application which will significantly improve its performance and complexity of the project. However it will not be cost effective and can significantly affect the system’s budget overtime as historical data can take up a lot of hard disk space. Second alternative can be storing it externally in a server. This can prove to be more cost effective as there are offers in the market for unlimited storage in hosting companies that do not support apps but are adequate for data storage purposes. This will increase the complexity of the system and lower its performance but will much more cost effective versus the former.

Once the data is stored, the system needs to analyze it in multiple ways to make the best decision regarding trades. It needs to consider technical and fundamental analysis. Technical analysis is much easier to code in as it can be modeled in a mathematical way versus the latter. For technical analysis the system will analyze the historical price data and try to find a pattern in how the price moves. It can either be done by purely price data or it can utilize indicators that can improve its performance. Few available indicators that can be used by the system are RSI, Stochastic, MACD, CCI, and volume. RSI and Stochastic operate in a very similar way. They compare the average movement to the price and are oscillators. They are leading indicators which means they would usually indicate movements before the price action. MACD measures momentum of price movements and it can be used to find divergence between price and MACD to estimate price movements. Unlike RSI and Stochastic, MACD is a lagging indicator which means it changes after the price has moved. CCI is also an oscillator like RSI but the technology behind differs. The value of CCI is unlimited versus the RSI and Stochastic which can have a maximum value of 100 and minimum value of 0. Finding the optimum mathematical analysis of both price action and indicator values will be critical in the product’s success.

Once the best trades are determined, the program is going to publish the results to the front-end in many ways. The team plans to serve many platforms such as Windows, iOS, Android, and web. In order to make the integration flexible as possible, the back-end is going to offer multiple connection standards including HTML, XML, SOAP, REST. XML will be preferred for Android platform due to its built-in functions in Android API to process XMLs that will make it easy to show the information to the user. SOAP will be preferred for Windows Application for its seamless integration in Visual Studio that will make the programming much easier for the developers. HTML will be preferred for web clients as it’s supported globally by web browsers. REST will be used in iOS development because of easy HTML queries that can make C# coding easier. The connection between backend and frontend has to be ensured to be secure and reliable as any lost connection can cause delayed response which can affect decisions as markets move frequently.