tradeo


Nametradeo JSON
Version 0.20.0 PyPI version JSON
download
home_pageNone
SummaryThis library contains a series of tools to create a trading bot for Forex trading using Metatrader.
upload_time2024-11-16 09:50:18
maintainerNone
docs_urlNone
authorCayetano Romero Vargas
requires_python<4.0.0,>=3.9.0
licenseMIT
keywords trading forex metatrader bot investment finance trading-bot trading-strategy
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # TRADEO - A forex trading framework using MetaTrader
![Logo](docs/images/logo.PNG "Title")

This library contains a series of tools to create a trading bot for Forex trading. It uses the [DWX Connect](https://github.com/darwinex/dwxconnect/) (modified) to send commands and receive information of MetaTrader.
This library is created **based on a linux installation of MetaTrader**.

![Test](https://github.com/sorul/tradeo/actions/workflows/testing_coverage.yml/badge.svg?branch=master)
![codecov.io](https://codecov.io/github/sorul/tradeo/coverage.svg?branch=master)

## Installation

### Install the library

#### PIP
```shell
pip install tradeo
```

#### POETRY
```shell
poetry add tradeo
```

Or you can add manually in *pyproject.toml* file if you want download it from a specific branch:

```shell
tradeo = { git = "git@github.com:sorul/tradeo.git", branch = "develop" }
```


### Configure Metatrader

It is necessary to download the [mt_tb_expert.ex5](https://github.com/sorul/tradeo/raw/refs/heads/master/docs/files/mt_tb_expert.ex5) file and put it in the proper directory. This directory is usually: *MetaTrader/MQL5/Experts/Advisors/mt_tb_expert.ex5*.

We add the currency pairs in the timeframe we are going to use (in my case it would be 5 minutes). There is the option for the bot to open them automatically, but I do not recommend it.

Activate the expert in any symbol chart, it does not matter which chart you use. But only in one of them.


## Usage

- You can create strategies inheriting *tradeo.strategies.strategy.Strategy* class. An example of this it would be [basic_strategy.py](tradeo/strategies/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](tradeo/event_handlers/basic_event_handler.py)

- An example of a main script using this library would be [basic_forex.py](tradeo/tradeo/executable/basic_forex.py) that inheriting *tradeo.executable.executable.Executable*.

> [!NOTE]  
> A real project that imports this wonderful library and you can watch for inspiration is [sorul_tradingbot](https://github.com/sorul/sorul_tradingbot)



## Execution of your project if you import this library

It's necessary to export certain environment variables before running the bot.

```bash
# 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/Program Files/MetaTrader/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=43931

# 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=-999999999
```

The 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*
```makefile
run_forex:
	source .env && ~/.local/bin/poetry run run_forex
```

Edit the crontab (crontab -e):

```console
@reboot cd <path_to_your_project> && make start_metatrader

*/5 * * * 0-5  cd <path_to_your_project> && make run_forex
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "tradeo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0.0,>=3.9.0",
    "maintainer_email": null,
    "keywords": "trading, forex, metatrader, bot, investment, finance, trading-bot, trading-strategy",
    "author": "Cayetano Romero Vargas",
    "author_email": "cromerovargas2d@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/8b/6b/1000ce5343e21896ae1d794041c80761e04133fce5bf77aae6cfb2c9f53b/tradeo-0.20.0.tar.gz",
    "platform": null,
    "description": "# TRADEO - A forex trading framework using MetaTrader\n![Logo](docs/images/logo.PNG \"Title\")\n\nThis library contains a series of tools to create a trading bot for Forex trading. It uses the [DWX Connect](https://github.com/darwinex/dwxconnect/) (modified) to send commands and receive information of MetaTrader.\nThis library is created **based on a linux installation of MetaTrader**.\n\n![Test](https://github.com/sorul/tradeo/actions/workflows/testing_coverage.yml/badge.svg?branch=master)\n![codecov.io](https://codecov.io/github/sorul/tradeo/coverage.svg?branch=master)\n\n## Installation\n\n### Install the library\n\n#### PIP\n```shell\npip install tradeo\n```\n\n#### POETRY\n```shell\npoetry add tradeo\n```\n\nOr you can add manually in *pyproject.toml* file if you want download it from a specific branch:\n\n```shell\ntradeo = { git = \"git@github.com:sorul/tradeo.git\", branch = \"develop\" }\n```\n\n\n### Configure Metatrader\n\nIt is necessary to download the [mt_tb_expert.ex5](https://github.com/sorul/tradeo/raw/refs/heads/master/docs/files/mt_tb_expert.ex5) file and put it in the proper directory. This directory is usually: *MetaTrader/MQL5/Experts/Advisors/mt_tb_expert.ex5*.\n\nWe add the currency pairs in the timeframe we are going to use (in my case it would be 5 minutes). There is the option for the bot to open them automatically, but I do not recommend it.\n\nActivate the expert in any symbol chart, it does not matter which chart you use. But only in one of them.\n\n\n## Usage\n\n- You can create strategies inheriting *tradeo.strategies.strategy.Strategy* class. An example of this it would be [basic_strategy.py](tradeo/strategies/basic_strategy.py)\n\n- 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](tradeo/event_handlers/basic_event_handler.py)\n\n- An example of a main script using this library would be [basic_forex.py](tradeo/tradeo/executable/basic_forex.py) that inheriting *tradeo.executable.executable.Executable*.\n\n> [!NOTE]  \n> A real project that imports this wonderful library and you can watch for inspiration is [sorul_tradingbot](https://github.com/sorul/sorul_tradingbot)\n\n\n\n## Execution of your project if you import this library\n\nIt's necessary to export certain environment variables before running the bot.\n\n```bash\n# Timezone configuration\nexport TB_LOCAL_TIMEZONE=Europe/Madrid\nexport TB_BROKER_TIMEZONE=Etc/GMT-2\n\n# Trading configuration\nexport TB_SYMBOLS=EURUSD,USDCAD,USDCHF\nexport TB_ACCOUNT_CURRENCY=EUR\nexport TB_TIMEFRAME=M5\nexport TB_LOOKBACK_DAYS=10\n\n# Forex-Client configuration\nexport TB_CHECK_MESSAGES_THREAD=true\nexport TB_CHECK_MARKET_DATA_THREAD=false\nexport TB_CHECK_BAR_DATA_THREAD=false\nexport TB_CHECK_OPEN_ORDERS_THREAD=true\nexport TB_CHECK_HISTORICAL_DATA_THREAD=true\nexport TB_CHECK_HISTORICAL_TRADES_THREAD=false\n\n# Metatrader configuration\nexport TB_WINE_HOME=\"${HOME}/.wine\"\nexport TB_MT_FILES_PATH=\"${TB_WINE_HOME}/drive_c/Program Files/MetaTrader/MQL5/Files\"\n\n# Logging configuration\nexport TB_ACTIVATE_SYSLOG=false\nexport TB_LOG_LEVEL=INFO\nexport TB_SYSLOG_ADDRESS=logs2.papertrailapp.com\nexport TB_SYSLOG_PORT=43931\n\n# Telegram configuration\nexport TB_ACTIVATE_TELEGRAM=false\nexport TB_TG_LOG_LEVEL=INFO\nexport TB_TG_FOREX_TOKEN=0000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nexport TB_TG_FOREX_CHAT_ID=-999999999\n```\n\nThe different possibilities for exporting environment variables depend on\nthe user's preference. For example, we can place all the variables in a\n\".env\" file and then execute the command using a Makefile and poetry:\n\n*Makefile*\n```makefile\nrun_forex:\n\tsource .env && ~/.local/bin/poetry run run_forex\n```\n\nEdit the crontab (crontab -e):\n\n```console\n@reboot cd <path_to_your_project> && make start_metatrader\n\n*/5 * * * 0-5  cd <path_to_your_project> && make run_forex\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "This library contains a series of tools to create a trading bot for Forex trading using Metatrader.",
    "version": "0.20.0",
    "project_urls": null,
    "split_keywords": [
        "trading",
        " forex",
        " metatrader",
        " bot",
        " investment",
        " finance",
        " trading-bot",
        " trading-strategy"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6311957af5f285a3424d69f1d547d17abe9c78d7584998789c3956801bf4925a",
                "md5": "5ac8412f60f3046341e0ed80501d7ebf",
                "sha256": "a9e1aa332f24b0a3acb0ee7b6c51269e2363de503b1472626e8f07f39a8346ae"
            },
            "downloads": -1,
            "filename": "tradeo-0.20.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5ac8412f60f3046341e0ed80501d7ebf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0.0,>=3.9.0",
            "size": 40333,
            "upload_time": "2024-11-16T09:50:17",
            "upload_time_iso_8601": "2024-11-16T09:50:17.155442Z",
            "url": "https://files.pythonhosted.org/packages/63/11/957af5f285a3424d69f1d547d17abe9c78d7584998789c3956801bf4925a/tradeo-0.20.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8b6b1000ce5343e21896ae1d794041c80761e04133fce5bf77aae6cfb2c9f53b",
                "md5": "a0baa7806c6d7f4a227997bbc3c04164",
                "sha256": "c73496ec283a5cc7f263b06ee639cf8aa7f3665b602f85106453bf8927eafec3"
            },
            "downloads": -1,
            "filename": "tradeo-0.20.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a0baa7806c6d7f4a227997bbc3c04164",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0.0,>=3.9.0",
            "size": 34398,
            "upload_time": "2024-11-16T09:50:18",
            "upload_time_iso_8601": "2024-11-16T09:50:18.207187Z",
            "url": "https://files.pythonhosted.org/packages/8b/6b/1000ce5343e21896ae1d794041c80761e04133fce5bf77aae6cfb2c9f53b/tradeo-0.20.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-16 09:50:18",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "tradeo"
}
        
Elapsed time: 1.38692s