This library contains a series of tools to create a trading bot for Forex trading. It uses the DWX Connect (modified) to send commands and receive information of MetaTrader. This library is created based on a linux installation of MetaTrader.
pip install tradeopoetry add tradeoOr you can add manually in pyproject.toml file if you want download it from a specific branch:
tradeo = { git = "[email protected]:sorul/tradeo.git", branch = "develop" }-
You can create strategies inheriting tradeo.strategies.strategy.Strategy class. An example of this it would be basic_strategy.py
-
You can customize the handler of metatrader responses inheriting tradeo.event_handlers.event_handler.EventHandler class. An example of this it would be basic_handler.py
-
An example of a main script using this library would be basic_forex.py that inheriting tradeo.executable.executable.Executable.
Note
The configuration of Metatrader is necessary for the functioning of Tradeo. There is an example of both the configuration and the use of the library in a real project: sorul_tradingbot
It's necessary to export certain environment variables before running the bot.
# Timezone configuration
export TB_LOCAL_TIMEZONE=Europe/Madrid
export TB_BROKER_TIMEZONE=Etc/GMT-2
# Trading configuration
export TB_SYMBOLS=EURUSD,USDCAD,USDCHF
export TB_ACCOUNT_CURRENCY=EUR
export TB_TIMEFRAME=M5
export TB_LOOKBACK_DAYS=10
# Forex-Client configuration
export TB_CHECK_MESSAGES_THREAD=true
export TB_CHECK_MARKET_DATA_THREAD=false
export TB_CHECK_BAR_DATA_THREAD=false
export TB_CHECK_OPEN_ORDERS_THREAD=true
export TB_CHECK_HISTORICAL_DATA_THREAD=true
export TB_CHECK_HISTORICAL_TRADES_THREAD=false
# Metatrader configuration
export TB_WINE_HOME="${HOME}/.wine"
export TB_MT_FILES_PATH="${TB_WINE_HOME}/drive_c/.../MQL5/Files"
# Logging configuration
export TB_ACTIVATE_SYSLOG=false
export TB_LOG_LEVEL=INFO
export TB_SYSLOG_ADDRESS=logs2.papertrailapp.com
export TB_SYSLOG_PORT=12345
# Telegram configuration
export TB_ACTIVATE_TELEGRAM=false
export TB_TG_LOG_LEVEL=INFO
export TB_TG_FOREX_TOKEN=0000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
export TB_TG_FOREX_CHAT_ID=-999999999The different possibilities for exporting environment variables depend on the user's preference. For example, we can place all the variables in a ".env" file and then execute the command using a Makefile and poetry:
Makefile
run_forex:
source .env && ~/.local/bin/poetry run run_forexEdit the crontab (crontab -e):
@reboot cd <path_to_your_project> && make start_metatrader
*/5 * * * 0-5 cd <path_to_your_project> && make run_forex