This is an engine that enables traders to configure trading signals from markets' observable price actions, backtest trading signals/strategies, and eventually conduct/manage trades.
This project was born because I found it hard to
- constantly keep track of the entire market movements based on a set of configurable conditions/rules which is called
signal
. - quickly validate trading strategies with absolutely zero coding steps. When a beautiful strategy pops up in my head, just configure it, then execute a backtest request.
- trade the markets with configurable, validated & profitable strategies.
So if you find yourself suffering the same pains I had, give it a shot. I would love to hear your thoughts about this.
The easiest way is to pull the docker image phat/follow.markets:latest
from the docker hub, clone this project and update the configs/configs.json
file with your personal credentials and likings then run the docker command
git clone https://github.com/itsphat/follow.markets.git
cd follow.markets
docker pull phat/follow.markets:latest
docker run -d --rm --name follow.markets \
-p 6868:6868\
-v $(pwd)/configs/configs.json:/configs/configs.json \
-v $(pwd)/configs/results:/configs/results \
phat/follow.markets:latest
change the port flag, -p
, to match with your setting of server.port
in the configs/configs.json
file if needed.
If you use arm64-based machine or want to build it from the source code, run the bash scripts/build
to build docker image, it should build the image with dev
tag.
After the application deployment, you should be able to call to check on the watchlist via the watcher APIs. If you check the logs you should see this
2022/02/26 11:53:02 Datadog Tracer v1.34.0 INFO: DATADOG TRACER CONFIGURATION .......
172.17.0.1 - - [26/Feb/2022:11:53:04 +0000] "POST /evaluator/drop/sample HTTP/1.1" 200 0
INFO: 2022/02/26 11:53:06 watcher.go:147: [watcher] ETHUSDT: started watching
INFO: 2022/02/26 11:53:08 watcher.go:147: [watcher] ETHUSDTPERP: started watching
INFO: 2022/02/26 11:53:11 watcher.go:147: [watcher] BTCUSDT: started watching
INFO: 2022/02/26 11:53:14 watcher.go:147: [watcher] BTCUSDTPERP: started watching
This part discusses only the mandatory variables in the configs/configs.json
file. For more information, refer to the docs here.
- Market data provider:
market.provider.binance
. The application targets crypto market at the moment and consumes data provided by Binance. You need to have a Binance account and get the keys,api_key
andsecret_key
. - Market notifier bot:
market.notifier.telegram.bot_token
. Ask the BotFather for a telegrambot_token
if you don't know how to get it yet. Then start a conversation with your bot after deploying the system. If you know your tele accountchatID
, you can add it to themarket.notifier.telegram.chat_ids
in advance. Otherwise, you can obtain it from thebot
.market.notifier.telegram.bot_password
this password is to prevent others to access your bot. You can set it to anything, the bot will ask you for authorization when you start talking to it.
- Visit the signal configurator here to craft your own signals, or download some samples
- Market signal source path:
market.evaluator.source_path
. Place your signals into this directory before deployment. There is another way to add signals to the system, visit the evaluator docs for more information.
- Add more indicators.
- Add more brokers.
- Integrate with the stock market.
- Configuration
- The market components & APIs
- Other concepts
- Visit the configurator to see it for yourself.
- Some backtest samples. I'm using Notion option from the
database
configs. Here is the link to the notionDB template that you need to duplicate if you want to use notion. - Some real trades completed by the bot with one of the sample signals
- Telebot communications
Feel free to send PRs.
This software is for educational purposes only. Do not risk money which you are afraid to lose. USE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.