Project Proposal

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

OOP-based Trading Bot using

MetaTrader Platform
2023

Muhammad Bin Aslam


22L-7928
1

Problem Statement
Trading in financial markets requires a systematic and disciplined approach to investing.
Unfortunately, many retail investors are prone to making hasty decisions based on
emotions, limited knowledge of the markets, and personal biases resulting in significant
losses. The proposed project aims to solve this challenge by developing an automated
trading bot that follows a preset strategy, minimizing the emotional component of trading
and resulting in more effective investment decisions.

Features
1. The proposed trading bot will be a software program that allows traders to invest in
financial markets automatically. The bot application will contain the following
features:
2. User-Friendly Interface: The bot will include a graphical user interface(GUI) that will
be easy to use and enable efficient operations.
3. Customizable Strategies: The bot will allow users to customize their trading strategy
settings to personalize their trading approaches based on their preferences.
4. Security and Stability: The bot will be secure, and will undergo meticulous coding
and testing to ensure stability.
5. Backtesting and Optimization: The application will present an option for traders to
backtest historical data, thereby helping them make better-informed decisions and
optimize trading strategies.
6. Alerts and Notifications: The bot will generate alerts and notifications when trading
opportunities arise or trades have been executed.
2

UML Diagram
+---------------------------------------+
| Trading Bot |
+---------------------------------------+
| - strategy : TradingStrategy |
| - security : Security |
| - stability : Stability |
| - userInterface : GUI |
+---------------------------------------+
| + securityCheck() : bool |
| + stabilityCheck() : bool |
| + tradeExecutor() : void |
| + strategyBacktest() : BacktestResult |
| + alertNotification() : void |
| + customization() : void |
+---------------------------------------+

Abstract class TradingStrategy:


+---------------------------------------+
| TradingStrategy |
+---------------------------------------+
| - strategyName : string |
+---------------------------------------+
| + checkSignal() : bool |
+---------------------------------------+

Class MACDStrategy (TradingStrategy):


+---------------------------------------+
3

| MACDStrategy |
+---------------------------------------+
| - MACD : double[] |
| - MACD_Signal : double[] |
| - MACD_Hist : double[] |
+---------------------------------------+
| + checkSignal() : bool |
+---------------------------------------+

Class Security:
+---------------------------------------+
| Security |
+---------------------------------------+
| - account : AccountInfo |
| - login : string |
| - password : string |
| - server : string |
| - symbol : string |
+---------------------------------------+
| + getAccountInfo() : AccountInfo |
| + setLogin() : void |
| + setPassword() : void |
| + setServer() : void |
| + setSymbol() : void |
+---------------------------------------+

Class Stability:
+---------------------------------------+
| Stability |
4

+---------------------------------------+
| - historicData : MarketData[] |
+---------------------------------------+
| + check() : bool |
+---------------------------------------+

Class GUI:
+---------------------------------------+
| GUI |
+---------------------------------------+
| - settings : Settings |
+---------------------------------------+
| - logs : Log[] |
+---------------------------------------+
| - status : string |
+---------------------------------------+
| + displaySettings() : void |
| + displayLogs() : void |
| + displayStatus() : void |
+---------------------------------------+

Class BacktestResult:
+---------------------------------------+
| BacktestResult |
+---------------------------------------+
| - profit : double |
| - winRate : double |
+---------------------------------------+
| + getProfit() : double |
5

| + getWinRate() : double |
+---------------------------------------+

You might also like