Join My public Discord Server & Follow The Twitter
- Comes with 11 pre-built strategies found in TradingStrats.py
- See Documentation below to implement your TA strategies.
- If you enjoy the repo please share it around to friends & tweet about it using the tweet button above 😃
or Buy me a Coffee - Utilizes python-Binance Client to execute orders and pull data from Binance
- Utilizes ta library for Technical indicators
- Utilizes plotly for generating interactive Trade graphs.
- Set up windows to sync time once a day if you don't do this binance will eventually reject orders with a timestamp error.
Strategies are implemented in Bot_Class as functions in Make_decision()
Make_decision()
must returnTrade_Direction, stop_loss_val, take_profit_val
for the strategy to work properly- You might draw inspiration for a strategy from one of the samples in TradingStrats.py
Create Custom Strategies
Create Custom TP/SL functions
- Create a Binance Account (This link uses my referral which gives you 5% kickback on trades & would be greatly appreciated)
- Enable Two-factor Authentication in the security section to keep your crypto safe.
- Create a new API key under the API Management section.
- [✓] Read Info [✓] Enable Trading [✓] Enable Futures [X] Enable Withdrawals
- Whitelist your IP address to further secure your account, and so that your API keys don't expire after 3 months.
- Fill in your api keys into api_secret and api_key in Config_File.py
For running Bot with cloud provider, Run directly from Live_Bot.py as you can't use the GUI through ssh
Run strategies at your own risk I am not responsible for your trading decisions, futures are risky and proper risk management should be adhered to at all times, always have a stoploss
python3 Live_Bot.py
- Settings are in Config_File.py
- Trade a single position at a time by setting
Number_Of_Trades = 1
, to trade multiple coins just increment this value. leverage
andorder_Size
should be changed according to your preferencesymbol[]
is a list of the symbols you wish to trade, If you wish to trade all symbols setTrade_All_Coins = True
.- Trailing stop: set
use_trailing_stop = 1
and changetrailing_stop_percent
to suit your strategy to use the trailing stop (Min val .001 i.e .1%, Max 5 i.e. 5%). The trailing stop will be placed when the take profit value margin of increase/decrease is reached from your strategy. - To close a trade based off a condition check_close_pos() must return a close_pos flag.
strategy
is the name of the strategy you want to use, see below for adding your own custom strategies.- There are 11 default strategies to choose from: StochRSIMACD, tripleEMAStochasticRSIATR, tripleEMA, breakout, stochBB, goldenCross, candle_wick, fibMACD, EMA_cross, heikin_ashi_ema2 & heikin_ashi_ema
TP_SL_choice
correspond to the type of SL/TP seen in the dropdowns in the GUI see below for adding custom ones.SL_mult
andTP_mult
correspond to the numbers preceding the TP and SL choice dropdowns.- Choose the
Interval
you want to trade and thebuffer
of candlesticks your strategy will need this will be dependent on indicators you need to ensure you have a sufficient buffer, or you will get errors. - Buffer sizes should be about 5 times the length of your largest EMA. In TradingStrats.py you'll find all the strategies, taking
tripleEMAStochasticRSIATR
as an example:
That strategy has a 50EMA as its largest EMA, so you need at least 250 candles. If you're trading the:- 1m timeframe this would be 250 minutes buffer
- 3m timeframe would be 750 minutes buffer
- 5m timeframe would be 1250 minutes buffer
etc...
(not sure that this is valid buffer input but you can convert these amounts to hours/ days)
Docker container creation:
- Navigate to the project directory in your terminal window
- Run the following Command this will create a docker image with the current state of your Config.py and choice of strategy in Bot_Class.py:
Sample docker commands that I use, note yours may be different (sudo
may not be needed for you, I am on Linux):
sudo docker build --tag live_bot .
sudo docker run -it live_bot
- Run
app.py
to get the GUI
python3 app.py
Backtests are displayed in the terminal while running, the results are then saved to a csv file in the Backtests directory along with a graph image and trades taken graphs (see below).
- Otherwise run a backtest from the
Backtester.py
Script by configuring the inputs found in:
__name__ == "__main__":
Backtests are saved in a folder named backtests on completion of a backtest, along with a csv file of the trades taken. An interactive html file is generated for each trade (using plotly), so you can do analysis on winning and losing trades.
Silicon Trader | Trade Pro | Strategy Testing | Trading Journal | The Moving Average
- Prioritise your Trello ticket with a one time payment
- Get Custom Strategies made to your specifications by reaching out to me on discord for a quote price.
- If you have any queries about anything, or need me to explain any blocks of code please reach out to me on Discord.
- If you have any suggestions or requests please reach out to me as well. Join My public Discord Server & Follow The Twitter