You are on page 1of 81

SAVITRIBAI PHULE PUNE UNIVERSITY

A PROJECT REPORT ON

Automated Algorithmic Trading System

SUBMITTED TOWARDS THE


PARTIAL FULFILLMENT OF THE REQUIREMENTS OF

BACHELOR OF ENGINEERING(Computer Engineering)


BY

Gaurav Narayane Exam No: 71909965L


Omkar Bhalerao Exam No:
Prassana Bhadange Exam No:

Under The Guidance of


Dr (Mr.) Govind Pole

DEPARTMENT OF COMPUTER ENGINEERING

Modern Education Society’s College of Engineering


19, Late Prin. V.K. Joag Path, Wadia College Campus, Pune- 411001

1
Modern Education Society’s College of Engineering,Pune-01

CERTIFICATE

This is to certify that the Project Entitled


Automated Algorithmic Trading System
Submitted by
Gaurav Narayane Exam No: 71909965L
Omkar Bhalerao Exam No:
Prassana Bhadange Exam No:

is a bonafide work carried out by Students under the supervision of


Dr.(Mr.) Govind Pole and it is submitted towards the partial ful-
fillment of the requirement of Bachelor of Engineering
(Computer Engineering).

Dr.(Mr.) G.Pole
Internal Guide
Dept. of Computer Engg.

Dr.(Mrs.) N. F. Shaikh Dr.S.S.Sarawade


H.O.D Principal
Dept. of Computer Engg. MESCOE Pune.

Sign of Internal Examiner Sign of External Examiner

2
Abstract

We examine algorithmic trades (AT) and their role in the price discovery process in
the S&P500 index and EUR/USD currency pair. AT liquidity demand represents 52%
of volume and AT supplies liquidity on 50% of volume. AT acts strategically by
monitoring the market for liquidity and deviations of price from fundamental value.
AT consume liquidity when it is cheap and supplies liquidity when it is expensive.
AT contribute more to the efficient price by placing more efficient quotes and AT
demands liquidity to move the prices towards the efficient price. In electronic
financial markets, algorithmic trading refers to the use of computer programs to
automate one or more stages of the trading process: pre-trade analysis (data
analysis), trading signal generation (buy and sell recommendations), and trade
execution. Trade execution is further divided into agency/broker execution (when a
system optimizes the execution of a trade on behalf of a client) and
principal/proprietary trading (where an institution trades on its own account). Each
stage of this trading process can be conducted by humans, by humans and
algorithms, or fully by algorithms.
In this research paper we will discuss about Algorithmic Trading and trading
strategies with Quantconnect platform, to create intelligent trading algorithms as
well as back testing them to see how they would perform on historical data. The set
of trading algorithms example includes strategies and how would it be helpful for
all the others and how we can utilize these strategies in real live trading to make
profit and most important to understand the market data.

MESCOE, Department of Computer Engineering 2021-22 1


Acknowledgment

It gives us great pleasure and satisfaction in presenting the final


project report on ‘Automated Algorithmic Trading System’.

We have furthermore to thank our Guide Dr.(Mr.) Govind Pole


and Computer Department HOD Dr.(Mrs.) N. F. Shaikh to en-
courage us to go ahead and for continuous guidance.

We would like to thank all those, who have directly or indirectly


helped us during of the work.

Gaurav Narayane
Omkar Bhalerao
Prassana Bhadange
(B.E. Computer Engg.)

MESCOE, Department of Computer Engineering 2021-22 2


Contents
1 Introduction 1
1.1 Project Title . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Project Option . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Internal Guide . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Problem Definition . . . . . . . . . . . . . . . . . . . . 2
1.5 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6 Goals and Objectives . . . . . . . . . . . . . . . . . . 3
1.7 Conferences/Journals where papers can be published 4

2 Literature Survey 5
2.1 Review of Conference/Journal Papers supporting Project
idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6

3 Software Requirement Specification 9


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.1 Purpose & Scope of Document . . . . . . . . 10
3.1.2 Scope of Project . . . . . . . . . . . . . . . . . 10
3.1.3 Usage Scenario . . . . . . . . . . . . . . . . . . 10
3.1.4 Assumption & Dependencies . . . . . . . . . 11
3.2 Functional Requirements . . . . . . . . . . . . . . . . 12

3
CONTENTS

3.2.1 User Interface . . . . . . . . . . . . . . . . . . 12


3.2.2 Model Training . . . . . . . . . . . . . . . . . 12
3.2.3 Application Programming Interface . . . . . 13
3.2.4 Frontend . . . . . . . . . . . . . . . . . . . . . 15
3.3 External Interface Requirements . . . . . . . . . . . 14
3.3.1 User Interfaces . . . . . . . . . . . . . . . . . . 15
3.3.2 Hardware Interfaces . . . . . . . . . . . . . . . 16
3.3.3 Software Interfaces . . . . . . . . . . . . . . . 16
3.3.4 Communication Interfaces . . . . . . . . . . . 17
3.4 Non Functional Requirements: . . . . . . . . . . . . . 16
3.4.1 Performance Requirement . . . . . . . . . . . 16
3.4.2 Safety Requirement . . . . . . . . . . . . . . . 16
3.4.3 Security Requirement . . . . . . . . . . . . . . 16
3.4.4 Software Quality Attributes: . . . . . . . . . . 17
3.5 System Requirements . . . . . . . . . . . . . . . . . . 18
3.5.1 Database Requirements . . . . . . . . . . . .
3.5.2 Software Requirements . . . . . . . . . . . . . 18
3.5.3 Hardware Requirements . . . . . . . . . . . . 18
3.6 Analysis Model . . . . . . . . . . . . . . . . . . . . . . 18
3.7 System Implementation Plan . . . . . . . . . . . . . . 19

4 System Design 20
4.1 System Architecture . . . . . . . . . . . . . . . . . . . 21
4.2 Data Flow Diagram . . . . . . . . . . . . . . . . . . . 21
4.3 UML Diagrams . . . . . . . . . . . . . . . . . . . . . . 23
4.3.1 Use Case Diagram . . . . . . . . . . . . . . . . 23
4.3.2 Class Diagram . . . . . . . . . . . . . . . . . . 24
4.3.3 Sequence Diagram . . . . . . . . . . . . . . . . 24

MESCOE, Department of Computer Engineering 2021-22 4


CONTENTS

4.3.4 State Transition Diagram . . . . . . . . . . . 25


4.3.5 Deployment Diagram . . . . . . . . . . . . . . 25
4.3.6 Activity Diagram . . . . . . . . . . . . . . . . 26

5 Project Plan 27
5.1 Project Estimates . . . . . . . . . . . . . . . . . . . . 28
5.1.1 Reconciled Estimates . . . . . . . . . . . . . . 28
5.2 Risk Management w.r.t NP Hard analysis . . . . . . 28
5.2.1 Risk Identification . . . . . . . . . . . . . . . . 29
5.2.2 Risk Analysis . . . . . . . . . . . . . . . . . . . 30
5.3 Project Schedule . . . . . . . . . . . . . . . . . . . . . 31
5.3.1 Estimation Diagram . . . . . . . . . . . . . . . 31
5.3.2 Project task set . . . . . . . . . . . . . . . . . 31
5.4 Team Organization . . . . . . . . . . . . . . . . . . . . 32

6 Project Implementation 33
6.1 Overview of Project Modules . . . . . . . . . . . . . 34
6.1.1 Dataset Filtration Module . . . . . . . . . . . 34
6.1.2 Neural Network Module . . . . . . . . . . . . 34
6.1.3 Frontend Module . . . . . . . . . . . . . . . . 35
6.1.4 Integration Module . . . . . . . . . . . . . . . 35
6.2 Tools and Technologies Used . . . . . . . . . . . . . . 36
6.3 Algorithm Details . . . . . . . . . . . . . . . . . . . . 37
6.3.1 InceptionV3 . . . . . . . . . . . . . . . . . . . 37
6.3.2 BLEU Score . . . . . . . . . . . . . . . . . . . 38
6.3.3 Deep Learning Model . . . . . . . . . . . . . . 39
6.3.4 Beam Search . . . . . . . . . . . . . . . . . . . 40

MESCOE, Department of Computer Engineering 2021-22 5


CONTENTS

7 Software Testing 42
7.1 Types of Tests Performed . . . . . . . . . . . . . . . . 43
7.1.1 Unit Testing . . . . . . . . . . . . . . . . . . . 43
7.1.2 Integration Testing . . . . . . . . . . . . . . . 43
7.1.3 Stress Testing . . . . . . . . . . . . . . . . . . 43
7.1.4 GUI Testing . . . . . . . . . . . . . . . . . . . 44
7.1.5 Model Performance Testing . . . . . . . . . . 44
7.1.6 Regression Testing . . . . . . . . . . . . . . . 44
7.1.7 Compatibility Testing . . . . . . . . . . . . . . 44

8 Results 46
8.0.1 Training Epochs . . . . . . . . . . . . . . . . . 47
8.0.2 Loss vs Epoch Graph . . . . . . . . . . . . . . 47
8.0.3 Accuracy . . . . . . . . . . . . . . . . . . . . . 48
8.1 Screenshots . . . . . . . . . . . . . . . . . . . . . . . . 48

9 Other Specifications 50
9.1 Advantages . . . . . . . . . . . . . . . . . . . . . . . . 51
9.2 Limitations . . . . . . . . . . . . . . . . . . . . . . . . 51

10 Conclusions 52
10.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . 53
10.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . 53
10.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . 54

11 References 55

A Problem Statement Feasibility Assessment 61


A.1 Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

MESCOE, Department of Computer Engineering 2021-22 6


CONTENTS

A.1.1 NP-Hard problem . . . . . . . . . . . . . . . . 62


A.1.2 NP-Complete . . . . . . . . . . . . . . . . . . . 62
A.2 Mathematical Model . . . . . . . . . . . . . . . . . . . 63
A.2.1 Activation Function . . . . . . . . . . . . . . 63
A.2.2 Sigmoid Function . . . . . . . . . . . . . . . . 63
A.2.3 Relu Function . . . . . . . . . . . . . . . . . . 63
A.2.4 Softmax Function . . . . . . . . . . . . . . . . 63

B Details of Paper Publication 65


B.1 Paper 1: Review Paper . . . . . . . . . . . . . . . . . 66
B.2 Paper 2: Research Paper . . . . . . . . . . . . . . . . 66

C Plagiarism Report 67

MESCOE, Department of Computer Engineering 2021-22 7


List of Figures

3.1 Gantt Chart . . . . . . . . . . . . . . . . . . . . . . . . 19

4.1 Architecture diagram . . . . . . . . . . . . . . . . . . 21


4.2 DFD Level 0 Diagram . . . . . . . . . . . . . . . . . . 21
4.3 DFD Level 1 Diagram . . . . . . . . . . . . . . . . . . 22
4.4 DFD Level 2 Diagram . . . . . . . . . . . . . . . . . . 22
4.5 Use Case Diagram . . . . . . . . . . . . . . . . . . . . 23
4.6 Class Diagram . . . . . . . . . . . . . . . . . . . . . . 24
4.7 Sequence Diagram . . . . . . . . . . . . . . . . . . . . 24
4.8 State Transition Diagram . . . . . . . . . . . . . . . . 25
4.9 Deployment Diagram . . . . . . . . . . . . . . . . . . 25
4.10 Activity Diagram . . . . . . . . . . . . . . . . . . . . . 26

5.1 Estimation Diagram . . . . . . . . . . . . . . . . . . . 31

6.1 Inception V3 . . . . . . . . . . . . . . . . . . . . . . . 38
6.2 Bleu Score Formula . . . . . . . . . . . . . . . . . . . 39
6.3 Model Architecture . . . . . . . . . . . . . . . . . . . 40

8.1 Epochs Model . . . . . . . . . . . . . . . . . . . . . . . 47


8.2 Loss vs Epoch Graph . . . . . . . . . . . . . . . . . . 47
8.3 Bleu Accuracy . . . . . . . . . . . . . . . . . . . . . . 48

8
LIST OF FIGURES

8.4 Homepage of Web Application . . . . . . . . . . . . . 48


8.5 Selecting the Image . . . . . . . . . . . . . . . . . . . 49
8.6 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

A.1 Softmax Formula . . . . . . . . . . . . . . . . . . . . . 64

MESCOE, Department of Computer Engineering 2021-22 9


Chapter 1

Introduction

1
CHAPTER 1. INTRODUCTION

1.1 Project Title


Automated Algorithmic Trading System.

Technology has revolutionized the way financial markets function and the way
financial assets are traded. Two significant interrelated technological changes are
investors using computers to automate their trading processes and markets
reorganizing themselves so virtually all markets are now electronic limit order books
(Jain (2005)). The speed and quality of access to such markets encourage the use of
algorithmic trading (AT; AT denotes algorithmic traders as well), commonly defined
as the use of computer algorithms to automatically make trading decisions, submit
orders, and manage those orders after submission. Because the trading process is
central to efficient risk-sharing and price efficiency it is important to understand how
AT is used and its role in the price formation process. We examine these issues for
S&P 500 stocks & Euro/USD pairs and also in the Indian stock market with data to
identify whether or not each trade’s buyer and seller generated their order with an
algorithm and also back test the stratergies

MESCOE, Department of Computer Engineering 2021-22 2


CHAPTER 1. INTRODUCTION

1.2 Project Option


Internal project

1.3 Internal Guide


Dr. (Mr.) Govind Pole

1.4 Problem Definition

To create a trading system for users that can automatically place


trades using Deep Learning. Algo trading (AT) has various
applications in various markets all over the finance world such as
equity market, bond market, forex pairs, commodity market as well
as crypto market . Trades can be placed using market data received
from the exchange and various trading strategies . We examine the
problem of automated trading . We want to establish correlations
between regular retail trader and the market so that we can
provide algo trading service to each and every trader in the market.

MESCOE, Department of Computer Engineering 2021-22 3


CHAPTER 1. INTRODUCTION

1.5 Motivation
Due to the increase of traders in the financial market algo trading is
becoming more and more popular. Algorithmic trading makes use of
complex formulas, combined with mathematical models and human
oversight, to make decisions to buy or sell financial securities on an exchange.
Algorithmic traders often make use of high-frequency trading technology,
which can enable a firm to make tens of thousands of trades per second.
Hence It is a challenging task to study the market data and
classify and organize it in a way that allows the (AT) to use and
execute trade .The question is how to create a high performing
system that is user friendly to every retail trader .

1.6 Goals and Objectives


1. Downloading, Preprocessing market data.
2. Designing the model architecture, training the model and chang-
ing the architecture of the model based on the results.
3. Testing model and downloading it to deploy.
4. Creating and Deploying a web application/page to interact with
exchange using REST APIs.
5. The main objective of the project is to develop a system . With
the help of machine learning and Quantconnect platform this can
be done.

MESCOE, Department of Computer Engineering 2021-22 4


CHAPTER 1. INTRODUCTION

MESCOE, Department of Computer Engineering 2021-22 5


Chapter 2

Literature Survey

5
CHAPTER 2. LITERATURE SURVEY

2.1 Literature Survey of Quantconnect


Quantconnect is an algorithmic trading platform in browser. Write (or clone) an
algorithm; test it against 10 years of US stock data; paper trade it against live data;
and then trade the algorithm through your brokerage account. Quantconnect also
hosts a community where members can ask for help, share ideas, discuss code, and
share data. Members can learn from each other and work collaboratively.
Quantconnect’s community and back tester is free for everyone to use. There will
be a charge for connecting the algorithm to the brokerage. Pricing isn't finalized,
but they are considering a flat monthly fee. You own your algorithms. Algorithms
are kept secret. This is different than our project because Quantconnect is just a
framework that distinct algorithms can be integrated to[17] these type of projects
are closed.

MESCOE, Department of Computer Engineering 2021-22 7


CHAPTER 2. LITERATURE SURVEY
2.2 Review of Conference/Journal Papers
sup- porting Project idea

Title Author Publication Method Use Remarks

Algorithmic Terrence IDEI-R Algorithmic Examine these issues


Trading & Hendershott & Conference Trading. for DAX stocks (the 30
Information Ryan Riordan on Investment largest market
Banking and capitalisation stocks)
Financial traded on the
Markets. Deutsche Boerse.

Automated Pratik Mulay, International Automated Artificial Neural


Trading Nishant Poojary Research Trading Networks, Fuzzy logic,
System & Dr Pravin Journal of Systems Machine Learning,
Srinath Engineering Data Mining, Bid and
and offer price, HPC.
Technology
(IRJET)

Algo-Trading Penumatcha Blue Eyes Black-box Algorithmic Trading,


using Bharath Varma, Intelligence Trading. high-frequency trading,
Statistical Neeraj Engineering Machine learning,
Learning and Kasheety, and Sciences Statistical Learning.
Optimizing Hanumanula Publication
Sharpe Ratio Sravya,
and Chinthapalli
Drawdown Amarnath
Reddy, Jaypal
Medida

Successful Michael L. & Algorithmic QuantitativeTrading,


Algorithmic Halls-Moore Trading. high-frequency trading
Trading

MESCOE, Department of Computer Engineering 2021-22 8


Chapter 3

Software Requirement
Specification

9
CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

3.1 Introduction

3.1.1 Purpose & Scope of Document


A software requirements specification (SRS) is a document that is
created when a detailed description of all aspects of the software to
be built must be specified before the project is to commence. It is
important to note that a formal SRS is not always written. In fact,
there are many instances in which effort expended on a SRS might be
better spent in other software engineering activities.

3.1.2 Scope of Project


Due Algorithmic trading brings several benefits also to retail traders in the financial
markets. It is known to:
 Increase the speed of execution
 Discipline your trading decisions
 Increase your market reach
 Help make trading systematic
 Help with eliminating constant market monitoring
 To do real-time quantitative analysis

3.1.3 Usage Scenario


Investment banks, pension funds, mutual funds, and other buy-side (investor-driven)
institutional traders can use the software product of this project. Actually, anyone
who wants to evaluate his/her investment can take advantage of the project. The
stock exchange is considered a primary marketplace, especially BIST.

MESCOE, Department of Computer Engineering 2021-22 10


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

3.1.4 Assumption & Dependencies

The software assumes that the structure of received data through FIX protocol is
certain. Besides, the software should have capable of handling each received data
without missing. Poor performance of the dependency systems such as hardware or
software systems of computers could impact the performance of the proposed
algorithmic trading system. A non-exhaustive list of dependencies is shown below.  
 Risk management systems  
 Order management systems  
 Telecommunications networks and ISP’s  
 Accounting system

MESCOE, Department of Computer Engineering 2021-22 11


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

3.2 Functional Requirements


Functional Requirement

1. USER FUNCTIONS
1.1 LOGIN TO SYSTEM
When a user starts the application, he/she sees the login screen first. The user is
expected to enter a username and password. Login is completed if the username
and password are matched with the ones in the database.

1.2 DEFINE RUN BOT


After successful login the trader or the user can see the quantconnect paper trading
simulator. User need to decide which index to trade like dollar, stocks , crypto ,
forex etc. User also need to decide which broker to use in order to connect it to
Quantconnect platform . After deciding the broker user will need to click the run
bot button in order to deploy the bot. The Quantconnect platform will get
connected to the respective broker for further process. It will extract the data using
API keys of the user analyse it , backtest it and will execute weather to buy or sell
the asset during the ongoing market conditions.

3.2.1 Model Training


Description and Priority
1. Input – Market order
2. Priority - High

MESCOE, Department of Computer Engineering 2021-22 12


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

Stimulus/Response Sequence

1. Stimulus - Training of p r e - market and post-


market orders.

2. Response Sequence - Fully trained algo bot

Functional Requirement

1. Creation of the accurate RNN Model of Image


Captioning stored in .h5 file format

3.2.2 Application Programming Interface

Description and Priority

1. Input – market orders

2. Priority - High

Stimulus/Response Sequence

1. Stimulus - Machine Learning Model

2. Response Sequence – order execution

MESCOE, Department of Computer Engineering 2021-22 13


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

Functional Requirement

1. Creating an API with market data as Input which is analysing market


data is based on the Machine Learning Mode

MESCOE, Department of Computer Engineering 2021-22 14


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

3.2.3 Frontend

Description and Priority

1. Input - User Interaction

2. Priority - High

Stimulus/Response Sequence

1. Stimulus - API

2. Response Sequence - Display Market Data

Functional Requirement

1. Creating a User Interface to Interact with the API and the Model , with
Upload Image Functionality and Display Caption for the Uploaded
Image.

3.3 External Interface Requirements

3.3.1 System Interface

Algorithm operates independently from the platform and any other program, the
software has only a system interface with the operating system which is connected
invisibly by means of Python and Python Libraries.
3.3.1 User Interfaces

As this project is a GUI Web Application there will be an option to


provide input (Upload) to user, this input will be passed to the
backend and backend will perform the necessary computations on it

MESCOE, Department of Computer Engineering 2021-22 15


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

and give the desired caption output which will be passed back to the
frontend. The Frontend will now display the output received from the
backend in a visually formatted manner.

3.3.2 Hardware Interface

Algorithm must operate over the network to fulfil requirements and to


receive or send financial data from/to AIPs. Besides, a cabled internet
connection is highly recommended rather than a wireless connection. This is
because algorithm requires the highest network connection speed to be able
to complete transactions in the most efficient and fast way. Therefore,
computers with the fastest processors and cable internet connection which
has high bandwidth, as much as possible, are strongly recommended. 

3.3.3 Software Interface

Algorithm and its all subsystems are desktop base applications; therefore, the
software is expected to operate in Windows 7 and upper versions (Windows
8 and 8.1) of Microsoft Windows operating system initially. After completing
the Microsoft Windows version, the software will be integrated into Linux
Ubuntu 12.04 LTS and upper versions of Ubuntu and Mac OS X 10.8 and
upper versions of Mac OS. The source code is aimed to have a single copy to
operate on all targeted operating systems and their versions. If this is not
possible, this aim will be to get closer by the least modifications on source
code versions running different operating systems. Python 3.6, TensorFlow
2.0, QuantConnect.
MESCOE, Department of Computer Engineering 2021-22 16
CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

3.3.5 Communication Interface

Sockets will be used to create communication between the client-side and


server-side. In addition to this, the Transmission control protocol (TCP) and
XYZ Broker protocol will be used to take data from the stock market to the
program server and vice versa.

MESCOE, Department of Computer Engineering 2021-22 17


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

MESCOE, Department of Computer Engineering 2021-22 18


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

3.1 Non Functional Requirements:

3.1.1 Performance Requirement


Trading software architecture needs to achieve a very high degree of performance.
This would largely depend on the holding periods in the trading strategies being
used by the data analysis in algorithm. This is because processed data amount and
algorithm types differs according to trade constraints. The aim of the software is to
send faster buy/sell requests than other opponent buy/sell requests.
The software requires to handle big amount of data in possible shortest time while
running of algorithms. For this reason, software uses huge amount of memory.
These above explained reasons can be summarized in first two entries, and
alternative performance necessities can be mentioned as following entries:
Extremely high speed CPUs are required.

MESCOE, Department of Computer Engineering 2021-22 19


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

1. High capacity of RAM (at least 4GB) is required.


2. Cables which are fiber optic and network connection with high bandwidth are
required.
3. There will be only one user in one working application.
4. User can start trades as many as he/she wants. (multithreading)
5. Software should update graphic of selected trade for each 0.5 second.
6. Logs should be recorded to database for each action during execution of
program. Note that no action should be missed even if failure.

3.1.2 Safety Requirement

The application is designed in modules where image


gen- erated is detected in stages of the deep learning
algorithm. This makes it easier to install and update new
functionality if required.
3.1.3 Security Requirement

The application is totally secured.

3.1.4 Modifiability

Business logic for trading strategies must be modifiable. Maximizing the ease
with which new algorithmic trading strategies can be added to the system
represents a competitive advantage. The processors interpret whatever
strategy they are presented and analyze the data they received according to
that strategy.

MESCOE, Department of Computer Engineering 2021-22 20


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

This allows the organization to adapt faster to changing market


conditions and increase revenues as a result.
3.1.5

All data will be pre-processed smoothly with

precision and the necessary feature extraction is

done accurately so that the output of the

algorithm shows accuracy.

3.1.6 Data input streams must be


scalable

The number of data inputs streams must be scalable so as to support:


Additional securities markets being added e.g. Stocks, Bonds etc.
Additional exchanges being added e.g. Nasdaq, NYSE, BSE, JSE, etc

MESCOE, Department of Computer Engineering 2021-22 21


CHAPTER 3. SOFTWARE REQUIREMENT SPECIFICATION

Our software has many quality attribute that are given

below:-

1.Adaptability: This software is adaptable by all users. 2.Availability: This


software is freely available to all users. The availability of the software
is easy for everyone.
3.Maintainability: After the deployment of the project if any error
occurs then it can be easily maintained by the software developer.

4.Reliability: The performance of the software is better which will


increase the reliability of the Software.

5.User Friendliness: : Since, the software is a GUI application; the output


generated is much user friendly in its behavior.

6.Integrity: Integrity refers to the extent to which access to software by


unauthorized persons can be controlled.

7.Testability: The software will be tested considering all the aspects.

MESCOE, Department of Computer Engineering 2021-22 22


Chapter 4

System

Design

20
CHAPTER 4. SYSTEM DESIGN

4.1 System Architecture


During the Training Phase, the System will retrieve the
market data and the appropriate input logic from the
dataset. This dataset will then be used to train our deep
learning model to execute operation.

Figure 4.1: Architecture diagram

4.2 Data Flow Diagram


Level 0 Data Flow Diagram

Figure 4.2: DFD Level 0 Diagram

MESCOE, Department of Computer Engineering 2021-22 21


CHAPTER 4. SYSTEM DESIGN

Level 1 Data Flow Diagram

Figure 4.3: DFD Level 1 Diagram

Level 2 Data Flow Diagram

Figure 4.4: DFD Level 2 Diagram

MESCOE, Department of Computer Engineering 2021-22 22


CHAPTER 4. SYSTEM DESIGN

4.3 UML Diagrams

4.3.1 Use Case Diagram

Figure 4.5: Use Case Diagram

MESCOE, Department of Computer Engineering 2021-22 23


CHAPTER 4. SYSTEM DESIGN

4.3.2 Class Diagram

Figure 4.6: Class Diagram

MESCOE, Department of Computer Engineering 2021-22 24


CHAPTER 4. SYSTEM DESIGN

4.3.3 State Transition Diagram

Figure 4.8: State Transition Diagram

4.3.4 Deployment Diagram

Figure 4.9: Deployment Diagram

MESCOE, Department of Computer Engineering 2021-22 25


CHAPTER 4. SYSTEM DESIGN

4.3.5 Activity Diagram

Figure 4.10: Activity Diagram

MESCOE, Department of Computer Engineering 2021-22 26


Chapter 5

Project Plan

27
CHAPTER 5. PROJECT PLAN

5.1 Project Estimates

5.1.1 Reconciled Estimates

Compare estimate of software size with estimate of effort time.


Bridging the gap between the two is called reconciliation of esti-
mates.

Time Estimates
2 hrs/day for approx. 3 months

5.2 Risk Management w.r.t NP Hard analy-


sis
There are lot of programs that dont run in polynomial time on regu-
lar computer but do run in polynomial time on a non-deterministic
Turing machine. These programs solve problems in NP, which
stands for Non-Deterministic Polynomial time. If a problem is
NP-Hard this means it can reduce any problem in NP to that
problem. This means if I can solve that problem I can easily solve
any problem in NP.
There are three types of classes provided for this are follows:
(a) NP-Hard (b) NP-Complete Class

A decision problem is in NP class if there is known as polyno-


mial time algorithm for a non-deterministic machine to get the

MESCOE, Department of Computer Engineering 2021-22 28


CHAPTER 5. PROJECT PLAN

answer. Problems known to be in P are trivially in NP the non-


deterministic machine just never troubles itself to fork another pro-
cess and acts just like a deterministic one. A problem is NP-hard
if solving it in polynomial time would make it possible to solve
all problems in class NP in polynomial time. Some NP-hard
problems are also in NP (these are called NP-complete), some
are not. If you could reduce an NP problem to an NP-hard
problem and then solve it in polynomial time, you could solve all
NP problems. Also, there are decision problems in NP-hard but
are not NP-complete, such as the infamous halting problem.

5.2.1 Risk Identification

Project Risk Management includes the processes of conducting risk


management Planning, identification, analysis, response planning,
and controlling risk on a project. The objectives of project risk
management are to increase the likelihood and impact of positive
events, and decrease the likelihood and impact of negative events
in the project. Project Risk identification is the most important
process in the Risk Management Planning. Risk identification de-
termines which risks might affect the project and documents their
characteristics. However, we should not spend too much time in
identifying risks. After the list is made, qualitative and quanti-
tative analysis is done to figure out which risks you spend time
and/or money on. In our project the requirements of end user is
fully understood which minimizes the risk. To develop the software
the development team is skilled and have appropriate knowledge

MESCOE, Department of Computer Engineering 2021-22 29


CHAPTER 5. PROJECT PLAN

about the tools which we are using to develop the software. Each
team member is equally involved in the development of project
in each stage. The number of peoples required for developing are
sufficient. The requirement gathered is constant or stable which
minimizes the risk of developing an inaccurate system.

5.2.2 Risk Analysis

The risks for the Project can be analyzed within the constraints of
time and quality. Software Risk analysis a very important aspect
of risk management. In this phase the risk is identified and then
categorized. After the categorization of risk, the level, likelihood
(percentage) and impact of the risk is analyzed. Likelihood is de-
fined in percentage after exa mining what are the chances of risk to
occur due to various technical conditions.

MESCOE, Department of Computer Engineering 2021-22 30


CHAPTER 5. PROJECT PLAN

5.3 Project Schedule

5.3.1 Estimation Diagram

Figure 5.1: Estimation Diagram

5.3.2 Project task set

Major Tasks in the Project stages are:

• Task 1: Choosing Project Area and Planning.

• Task 2: Selecting paper and literature survey

• Task 3: Project designing

• Task 4: Implementation

• Task 5: Execution and Testing

MESCOE, Department of Computer Engineering 2021-22 31


CHAPTER 5. PROJECT PLAN

5.4 Team Organization


Team consists of 3 members and proper planning mechanism are
used and roles of each member are defined.

Distribution was as follows:

• Gaurav: Strategy and Algorithm development.

• Omkar: Model Testing and Frontend Designing.

• Prassana: Model Building and Training

MESCOE, Department of Computer Engineering 2021-22 32


Chapter 6

Project Implementation

33
CHAPTER 6. PROJECT IMPLEMENTATION

6.1 Overview of used software tools

6.1.1 API Keys

• An application programming interface (API) is a way for two or


more computers to communicate with each other

• It is a type of software interface offering a service to other pieces of software.

• A document or standard that describes how to build or use such a


connection or interface is called an API specification
•A computer system that meets this standard is said
to implement or expose an API

6.1.2 QuantConnect

• QuantConnect is an opensource clous based algorithmic trading


and back testing software for equities, FX, futures, options,
derivatives and cryptocurrencies.

• Quantconnect serves over 100,000 quants from various countries


with customers including hedge funds and brokers as well as
individuals such as engineers, mathematicians, scientists, quant,
students, traders, and programmers.
• Quantconnect supports python and C# but also supports other
languages through its opensource projects, the Lean Algorithmic
Trading Engine (LEAN) that allows user to do the same algorithm
design, back testing, and trading that they can do on the website.
Once user code an algorithm, they can run a backtest on historical
data which provides a full breakdown on how it could have
performed in the market in the past.

MESCOE, Department of Computer Engineering 2021-22 34


CHAPTER 6. PROJECT IMPLEMENTATION

6.1.3 Trading view

• Trading view is like a social network for traders


• Its key feature include stock, futures and foreign exchange
forex charting and trading
• It also provides stock, forex , cryptocurrency screeners
• The Trading view software is one of the most powerful tool for
doing technical analysis and doing research on market.

6.2 Tools and Technologies Used


• Google Colab: It is an online Jupyter Notebook like environ-
ment for executing Python code in the browser. Its biggest
advantage is that it requires no setup and runs completely in
the cloud. Colab uses GPUs and TPUs in the backend for
running the Python code hence it is completely suitable for
data intensive ML, Deep Learning and Data Science appli-
cations. And the best part of it all is that Colab is totally
free.

• Tensorflow: TensorFlow is a free and open-source software li-


brary for machine learning and artificial intelligence. It can
be used across a range of tasks but has a particular focus on
training and inference of deep neural networks.TensorFlow
was developed by the Google Brain team for internal Google
use in research and production. The initial version was re-

MESCOE, Department of Computer Engineering 2021-22 35


CHAPTER 6. PROJECT IMPLEMENTATION
leased under the Apache License 2.0 in 2015

Keras: It contains numerous implementations of commonly used


neural-network building blocks such as layers, objectives,
activation functions, optimizers, and a host of tools to make
working with image and text data easier to simplify the coding
necessary for writing deep neural network code. In addition to
standard neural networks, Keras has support for convolutional and
recurrent neural networks. It supports other common utility layers
like dropout, batch normalization, and pooling. Keras allows users
to productize deep models on smartphones, on the web, or on the
JVM. It also allows use of distributed training of deep-learning
models on clusters of GPU and TPU.
Matplotlib : It is a Python library used for plotting 2D structures like
graph, charts , histogram, scatter plots etc. Along with other libraries
which are used for c o mp u ti n g, i t b ec o mes ne c ess ary to u s e
ma tp l ot t o re p rese nt th e d at a i n a gra p hi c a l forma t u si n g
c h a rts a n d grap h s. Fe w o f th e f un cti o n s of ma tp l o tl i b
i n c l u d e sc att er , pi e , sta c k pl o t, c ol o rb ar

6.3 Algorithm and Trading engines


Details

6.3.1 Lean Engine

Inception Lean Engine is an open source algorithmic trading engine


built for easy strategy research, baktesting and live trading. The
core of Lean Engine is written in C# but it operates seamlessly on

MESCOE, Department of Computer Engineering 2021-22 36


CHAPTER 6. PROJECT IMPLEMENTATION
linux , Mac and Windows operating

system. It supports algorithm written in python3.6 or C#. Lean


drives the web-based algorithm trading platform.The engine
is broken into many modular pieces which can be extended
without touching other files. The modules are configured in
config.json as set “environment”. Through these environment
you can LEAN to operate in the mode required.
The most important plugins are :
1) Result Processing
2) Datafeed Sourcing
3) Transaction Processing
4) Realtime Event Management
5) Algorithm State Setup

AGILE SOFTWARE DEVELOPMENT METHOD REPRESENTATION

MESCOE, Department of Computer Engineering 2021-22 37


CHAPTER 6. PROJECT IMPLEMENTATION

1) Result Processing
Handle all messages from the algorithmic trading engine. Decide what should be sent,
and where the messages should go. The result processing system can send messages to
a local GUI, or the web interface.

2) Datafeed Sourcing 

Connect and download the data required for the algorithmic trading engine. For
backtesting this sources files from the disk, for live trading, it connects to a stream and
generates the data objects.

3)Transaction Processing
Process new order requests; either using the fill models provided by the algorithm or
with an actual brokerage. Send the processed orders back to the algorithm's portfolio to
be filled.

4) Realtime Event Management


Generate real-time events - such as the end of day events. Trigger callbacks to real-time
event handlers. For backtesting, this is mocked-up a works on simulated time.

5) Algorithm State Setup


Configure the algorithm cash, portfolio and data requested. Initialize all state
parameters required.

MESCOE, Department of Computer Engineering 2021-22 38


CHAPTER 6. PROJECT IMPLEMENTATION

6.4 Quantconnect interface information

The live result page shows your algorithm live trading performance. Reviewing result
page lets us know how our algorithm has performed and can investigate to improve its
performamce
The live results page automatically displays when you deploy a live algorithm. The
page presents the algorithm's equity curve, holdings, trades, logs, server statistics, and
much more information.

MESCOE, Department of Computer Engineering 2021-22 39


CHAPTER 6. PROJECT IMPLEMENTATION

The following table describes the default runtime statistics:

Equity The total portfolio value if all of the holdings were sold
at current market rates.

Fees The total quantity of fees paid for all the transactions.

Net Profit The dollar-value return across the entire trading period.

PSR The probability that the estimated Sharpe ratio of an


algorithm is greater than a benchmark.

Return The rate of return across the entire trading period.

Unrealized The amount of profit a portfolio would capture if it


liquidated all open positions and paid the fees for
transacting and crossing the spread.

Volume The total value of assets traded for all of an algorithm's


transactions.

Holdings The absolute sum of the items in the portfolio.

MESCOE, Department of Computer Engineering 2021-22 40


CHAPTER 6. PROJECT IMPLEMENTATION

6.5 Pseudo code

6.5.1 forex code

#region imports
from AlgorithmImports import *
#endregion
from System.Drawing import Color

class ForexBollingerBandBot(QCAlgorithm):

def Initialize(self):
self.SetStartDate(2015, 1, 1)
self.SetEndDate(2022, 1, 1)
self.SetCash(100000)
self.pair = self.AddForex("EURUSD", Resolution.Daily,
Market.Oanda).Symbol
self.bb = self.BB(self.pair, 20, 2)

stockPlot = Chart('Trade Plot')


stockPlot.AddSeries(Series('Buy', SeriesType.Scatter, '$',
Color.Green, ScatterMarkerSymbol.Triangle))
stockPlot.AddSeries(Series('Sell', SeriesType.Scatter, '$',
Color.Red, ScatterMarkerSymbol.TriangleDown))
stockPlot.AddSeries(Series('Liquidate', SeriesType.Scatter, '$',
Color.Blue, ScatterMarkerSymbol.Diamond))
self.AddChart(stockPlot)

def OnData(self, data):


if not self.bb.IsReady:
return

price = data[self.pair].Price
MESCOE, Department of Computer Engineering 2021-22 41
CHAPTER 6. PROJECT IMPLEMENTATION

self.Plot("Trade Plot", "Price", price)


self.Plot("Trade Plot", "MiddleBand", self.bb.MiddleBand.Current.Value)
self.Plot("Trade Plot", "UpperBand", self.bb.UpperBand.Current.Value)
self.Plot("Trade Plot", "LowerBand", self.bb.LowerBand.Current.Value)

if not self.Portfolio.Invested:
if self.bb.LowerBand.Current.Value > price:
self.SetHoldings(self.pair, 1)
self.Plot("Trade Plot", "Buy", price)
elif self.bb.UpperBand.Current.Value < price:
self.SetHoldings(self.pair, -1)
self.Plot("Trade Plot", "Sell", price)
else:
if self.Portfolio[self.pair].IsLong:
if self.bb.MiddleBand.Current.Value < price:
self.Liquidate()
self.Plot("Trade Plot", "Liquidate", price)
elif self.bb.MiddleBand.Current.Value > price:
self.Liquidate()
self.Plot("Trade Plot", "Liquidate", price)

MESCOE, Department of Computer Engineering 2021-22 42


CHAPTER 6. PROJECT IMPLEMENTATION

6.5.2 Backtesting

#region imports
from AlgorithmImports import *
#endregion
import numpy as np

class SimpleBreakoutExample(QCAlgorithm):

def Initialize(self):
# Set the cash for backtest
self.SetCash(100000)

# Start and end dates for backtest


self.SetStartDate(2017,9,1)
self.SetEndDate(2022,9,1)

# Add asset
self.symbol = self.AddEquity("SPY", Resolution.Daily).Symbol

# Lookback length for b/o (in days)


self.lookback = 20

# Upper/lower limit for lookback length


self.ceiling, self.floor = 30, 10

# Price offset for stop order


self.initialStopRisk = 0.98
self.trailingStopRisk = 0.9

# Schedule function 20 minutes after every market open


MESCOE, Department of Computer Engineering 2021-22 43
CHAPTER 6. PROJECT IMPLEMENTATION
self.Schedule.On(self.DateRules.EveryDay(self.symbol), \

self.TimeRules.AfterMarketOpen(self.symbol, 20), \
Action(self.EveryMarketOpen))

def OnData(self, data):


# Plot security's price
self.Plot("Data Chart", self.symbol, self.Securities[self.symbol].Close)

def EveryMarketOpen(self):
# Dynamically determine lookback length based on 30 day volatility change
rate
close = self.History(self.symbol, 31, Resolution.Daily)["close"]
todayvol = np.std(close[1:31])
yesterdayvol = np.std(close[0:30])
deltavol = (todayvol - yesterdayvol) / todayvol
self.lookback = round(self.lookback * (1 + deltavol))

# Account for upper/lower limit of lockback length


if self.lookback > self.ceiling:
self.lookback = self.ceiling
elif self.lookback < self.floor:
self.lookback = self.floor

# List of daily highs


self.high = self.History(self.symbol, self.lookback, Resolution.Daily)["high"]

# Buy in case of breakout


if not self.Securities[self.symbol].Invested and \
self.Securities[self.symbol].Close >= max(self.high[:-1]):
self.SetHoldings(self.symbol, 1)
self.breakoutlvl = max(self.high[:-1])
self.highestPrice = self.breakoutlvl
MESCOE, Department of Computer Engineering 2021-22 44
CHAPTER 6. PROJECT IMPLEMENTATION

# Create trailing stop loss if invested


if self.Securities[self.symbol].Invested:

# If no order exists, send stop-loss


if not self.Transactions.GetOpenOrders(self.symbol):
self.stopMarketTicket = self.StopMarketOrder(self.symbol, \
-self.Portfolio[self.symbol].Quantity, \
self.initialStopRisk * self.breakoutlvl)

# Check if the asset's price is higher than highestPrice & trailing stop price
not below initial stop price
if self.Securities[self.symbol].Close > self.highestPrice and \
self.initialStopRisk * self.breakoutlvl <
self.Securities[self.symbol].Close * self.trailingStopRisk:
# Save the new high to highestPrice
self.highestPrice = self.Securities[self.symbol].Close
# Update the stop price
updateFields = UpdateOrderFields()
updateFields.StopPrice = self.Securities[self.symbol].Close *
self.trailingStopRisk
self.stopMarketTicket.Update(updateFields)

# Print the new stop price with Debug()


self.Debug(updateFields.StopPrice)

# Plot trailing stop's price


self.Plot("Data Chart", "Stop Price",
self.stopMarketTicket.Get(OrderField.StopPrice))

MESCOE, Department of Computer Engineering 2021-22 45


CHAPTER 6. PROJECT IMPLEMENTATION

MESCOE, Department of Computer Engineering 2021-22 46


Chapter 7

Software Testing

42
CHAPTER 7. SOFTWARE TESTING

7.1 Types of Tests Performed

– Unit Testing

– Integration Testing

– Stress Testing

– GUI Testing

– Performance Testing

– Regression Testing

– Compatibility Testing

7.1.1 Unit Testing

Individually, the Model Component, the Frontend, and the


Backend were tested to ensure that everything worked as
planned.

7.1.2 Integration Testing

The individual functional modules in the unit tests are inte-


grated and tested as one.The NLP and Deep Learning Model,
Flask Server, Frontend and Processing modules are integrated
and tested as a single complete web application to verify that
it works as expected.

7.1.3 Stress Testing

The System is tested under workload. The


speed,responsiveness and stability of a computer, network,

MESCOE, Department of Computer Engineering 2021-22 43


CHAPTER 7. SOFTWARE TESTING
software program or de-

MESCOE, Department of Computer Engineering 2021-22 44


CHAPTER 7. SOFTWARE TESTING

vice is determined.

7.1.4 GUI Testing

The Frontend is tested to see if it displays all the components


properly or not. All components were found to be working
properly and GUI Test was declared successful.

7.1.5 Model Performance Testing

Testing model performance is about testing the models with the


test data/ unknown data and comparing the model per-
formance in terms of parameters such as accuracy/recall/F1- Score
etc., to that of predetermined accuracy with the model already
built and moved into production.

7.1.6 Regression Testing

All modules and the final system were regression tested by


introducing small changes in the code and then checking it’s effect.
No effects were found and therefore, the regression testing was
declared as successful.

7.1.7 Compatibility Testing

Compatibility testing is a non-functional test to ensure our web


application’s compatibility within different environments such as
various Operating Systems (Windows, Linux) and

MESCOE, Department of Computer Engineering 2021-22 45


CHAPTER 7. SOFTWARE TESTING

their various versions.Project is tested on various OS like Ma-


cOS,Ubuntu and browsers such as Firefox,Chrome.

Serial
Test Input Expected Output Pass/Fail
No.
Quantconnect interface will
Login into appear
1 Pass
quantconnet account

Click the algorithm for eg for


Algorithm coded in text
2 crypto , currency pairs or stocks Pass
editor will appear

Select the rang ( time


period) for the algorithm Time period is changed
3 Pass
to test or run

Submit the API key of the The Data is collected in


4 Pass
desired broker quantconnect with API key

Test result including charts


Select run to run the algorithm
5 and desired output of Pass
using market data
stratergy is displayed
Table 7.1: Test Cases

MESCOE, Department of Computer Engineering 2021-22 46


Chapter 8

Results

46
CHAPTER 8. RESULTS

8.0.1 Buy Sell order

Figure 8.1: Epochs Model

8.0.2 Candle stick Graph

Figure 8.2: Loss vs Epoch Graph

MESCOE, Department of Computer Engineering 2021-22 47


CHAPTER 8. RESULTS

8.0.3 Accuracy

We can see the accuracy ( 18.38%)

Figure 8.3: Bleu Accuracy

8.1 Screenshots

Figure 8.4: Homepage of Web Application

MESCOE, Department of Computer Engineering 2021-22 48


CHAPTER 8. RESULTS

Figure 8.5: Selecting the Bot

Figure 8.6: Output

MESCOE, Department of Computer Engineering 2021-22 49


Chapter 9

Other Specifications

50
CHAPTER 9. OTHER SPECIFICATIONS

9.1 Advantages

1. Increases speed : One of the most significant advantages of algo


trading is the speed it offers. The algorithms have the capability to
analyze a variety of parameters and technical indicators in a split
second and execute the trade immediately.

2. More Accuracy : Another significant benefit of algo trading


is that here is minimum human intervention. This means that
the possibility of errors goes down drastically.

3. Decreases cost : Algo trading enables that exexution of large


volume of trade in a short period of time. Due to this, multiple trades
are processed and the transaction cost becomes reduced.

4. Improves order entry speed

9.2 Limitations

1. The biggest con of algo trading is its immense dependence


on technology.The trade orders in many cases reside on the
computer and not on the server.

2. Algo trading is completely automated. The humans are not


left with the room for making any discretionary choices.
Hence sometimes it is difficult to conttol the trades.

MESCOE, Department of Computer Engineering 2021-22


Chapter 10

Conclusions

52
CHAPTER 10. CONCLUSIONS

10.1 Conclusions

Algorithmic trading system architectures are complicated because of the strict


quality requirements of the system. Also, the wide range of regulatory and
compliance requirements which manage automated trading makes the design of this
software harder. Because of these complexities, careful attention should be paid to
the design and implementation of the system architecture. This software
requirements specification document has been created through the help of various
researches. In this document, the general information about product description,
data elements that the product deals with, specific requirements like product's
interfaces and the functions that will be implemented are provided. However, some
specifications are prone to be changed in the future.

10.2 Future Work

The faster one receives the data the faster one can make a decision. The volume of
data available from all markets is continuously increasing hence it is important to
analyze the data. For example, major exchanges were not able to handle and the
information flow with the rise in transactions carried out by automated systems on
the electronic market over the past few years. Automation is everywhere, from
booking travel tickets to self-driven vehicles, drones delivering the food and the
financial sector is not an exception here. Development of Technology provides an
edge people becoming more and more educated, more and more automation &
tools

MESCOE, Department of Computer Engineering 2021-22 53


CHAPTER 10. CONCLUSIONS

will continue to come as better solutions for better pricing not just for large

companies, but also for retail investors. Algorithmic Trading is a method of buying
and selling back securities on a predetermined collection of rules. For backtesting,
the said rules are subject to historical data. Algo trading is associated with many
names such as automated trading, Black box trading. The approach is based on
analyzing different market conditions from which it can generate profits. Then
applying these particular strategies corresponding to a particular situation,
automate, and manage the trade. The overall benefit is that you do not need to keep
an eye on the market. Thus creating the profits out of rising or fall in the market
while reducing the volatility of the overall portfolio at the same time. The program
makes all-important work such as searching, timing, and trading for the user
mechanically. It also removes the biasness, as no humans are involved and faster
than manual trading.

10.3 Applications

MESCOE, Department of Computer Engineering 2021-22 54


Chapter 11

References

55
CHAPTER 11. REFERENCES

[1] IEEE. IEEE STD 830-1998 IEEE Recommended Practice for Software
Requirements Specifications. IEEE Computer Society, 1998

[2] Hull, J. (2009). Options, futures, and other derivatives; seventh edition (7th
edition). Upper Saddle River, N.J.: Prentice Hall
[3] Using Genetic Algorithms To Forecast Financial Markets. (n.d.). Retrieved
November 30, 2014, from http://www.investopedia.com/articles/financial-
theory/11/using-genetic-algorithms-forecast-financial-markets.asp

[4] Binary option. (2014, November 29). Retrieved November 30, 2014, from
http://en.wikipedia.org/wiki/Binary_option

[5] FIX Trading Community. (n.d.). Retrieved November 30, 2014, from
http://www.fixtradingcommunity.org/

[6] Bond option. (2014, November 29). Retrieved November 30, 2014, from
http://en.wikipedia.org/wiki/Bond_option

[7] Bond Option Definition | Investopedia. (n.d.). Retrieved November 30,


2014, from http://www.investopedia.com/terms/b/bondoption.asp.

[8] Agile and Scalable. (n.d.). Retrieved November 30, 2014, from
http://www.mongodb.org/

[9] FIX Protokolü Sıkça Sorulan Sorular. (2014, November 30). Retrieved

MESCOE, Department of Computer Engineering 2021-22 56


CHAPTER 11. REFERENCES

November 30, 2014, from


http://borsaistanbul.com/uyeozel/SoftwareAndDocuments/pay-.

[10] QuickFIX. (n.d.). Retrieved November 30, 2014, from


http://www.quickfixengine.org/

[11] QuantLib: A free/open-source library for quantitative finance. (n.d.).


Retrieved November 30, 2014 from http://quantlib.org/index.shtml

[12] K. Cho, B. van Merrienboer, D. Bahdanau, and Y. Ben- gio,


“On the properties of neural machine translation: encoder- decoder
approaches,” 2014, http://arxiv.org/abs/1409.1259 Computer
Science.

[13] D. Bahdanau, K. Cho, and Y. Bengio, “Neural machine


translation by jointly learning to align and translate,” 2014,
http://arxiv.org/abs/1409.0473 Computer Science.

[14] FIX Protokolü Sıkça Sorulan Sorular. (2014, November 30). Retrieved
November

[15] https://www.kundankishore.in/blog/what-is-the-future-
of-algorithmic-trading

[16] QuantLib: A free/open-source library for quantitative finance. (n.d.).


Retrieved November 30, 2014 from http://quantlib.org/index.shtml

MESCOE, Department of Computer Engineering 2021-22 57


CHAPTER 11. REFERENCES

[17] Quantopian | Algorithmic Investing | Algorithmic Trading. (n.d.).


Retrieved November 30, 2014, from https://www.quantopian.com/

[18] QuantLib: A free/open-source library for quantitative finance.


(n.d.). Retrieved November 30, 2014 from
http://quantlib.org/index.shtml

[19] W. Hinoshita, T. Ogata, H. Kozima, H. Kanda, T. Taka-


hashi, and H. G. Okuno, “Emergence of evolutionary interac-
tion with voice and motion between two robots using RNN In-
telligent robots and systems,” in Proceedings of the
IEEE/RSJ International Conference on Intelligent Robots
and Systems, pp. 4186–4192, St. Louis, MO, USA, October
2009.

[20] Z. Wu, X. Wang, Y.-G. Jiang, H. Ye, and X. Xue, “Multi-


stream multiclass fusion of deep networks for video classifica-
tion,” in Proceedings of the 2016 ACM on Multimedia Confer-
ence, pp. 791–800, Amsterdam, Netherlands, October 2016.

[21] https://en.wikipedia.org/w/index.php?
search=&title=Special%3ASearch&go=Go

[22] https://therobusttrader.com/pros-and-cons-of-algo-trading/

[23] O. Vinyals, T. Alexander, S. Bengio, and D. Erhan, “Show


and tell: a neural image caption generator,” in Proceedings of
the IEEE Conference on Computer Vision and Pattern

MESCOE, Department of Computer Engineering 2021-22 58


CHAPTER 11. REFERENCES
Recog- nition, pp. 3156–3164, Columbus, OH, USA, June
2014.

MESCOE, Department of Computer Engineering 2021-22 59


Appendix A
No appendix

Problem Statement
Feasibility Assessment

61

You might also like