Grid for Spot trading
Update 03/18/2021: spotGrid is now natively available in Gunbot (from v21.6.2 preview). Use this autoconfig version if you need custom dca levels and amounts
Update 10/29/2020: add video instructions to import this bundle using Gunbot GUI
Update 10/16/2022: add config bundle with 10 preset BNB pairs on binance (courtesy of @coronabob)
Update 10/15/2020: fix problem with compounding trading limit
Grid for Spot trading + compounding
This config bundle is an application of the "advanced DCA" setup shared earlier on the marketplace, combined with dynamic trailing ranges and a compounding trading limit. The included strategy settings should easily survive / trade profitably on small to medium ranges. Time will tell about large ranges :)
Typical trades for this setup includes
- Ready made config bundle for 9 relatively high volume BTC pairs on Binance, with compounding
- Ready made config bundle for a single USDT-BTC pair on Binance, with compounding
- Default pair settings and strategy for usage on other exchanges.
- "Always in a position" strategy, emulating a "market maker grid" strategy
- 20 configurable DCA levels, based on support/resistance levels
- dynamic trailing ranges that work, no more endless trailing with ranges that are just too big
- trading limit compounding (on supported exchanges)
- should stay working in future versions unless major changes happen to how "double up" works in Gunbot
- This probably won't work great with really tiny buydown percentages, it could happen that multiple orders get counted as a single DCA round
- I've only tested this setup with market orders. Although the setup tries to identify open limit orders and wait for them to fill, unexpected behavior might occur
If you use one of the ready made bundles, you can just add your gunthy wallet address and exchange keys.
Using the settings import tool in the Gunbot interface (from v20 stable): https://www.youtube.com/watch?v=mcSx42yUqek
If you want more control, follow these steps:
- Add AutoConfig job Use the included autoconfig.json file if you don't use other jobs. If you have existing jobs in autoconfig.json, add both included jobs to your config.
- Set exchange Change the exchange in the job to the exchange name you want to use it on. By default it is set to "binance". Make sure to change every single occurence of the exchange name.
- Add strategy to config Add the strategy to your config.js file.
- Make sure each pair gets the same set of overrides Find the default overrides in the building blocks folder.
- Clean your account Make sure you only own base balance on the pairs you are planning to use this on.
- Done! No need to change anything else in the autoconfig job, All DCA settings are controlled with pair overrides
If you want to use it on multiple exchanges, add the job once for each exchange and give it a unique job name each time.
The full instructions for the DCA job are included as a separate text file.
How to change DCA buydowns
You can set different buydown levels for each DCA round, to do that change the line for the appropriate DCA round in the pair overrides. These overrides look like:
"AC_DCA_BUYDOWN_R1": " (((data.pair.R1 - data.pair.S1) / data.pair.Bid) * 100) * 0.18",
What this means is:
- R1 stands for DCA round 1
- 0.18 means: set DCA buydown to 18% of the distance between first support and first resistance levels. A value of 0.5 would set buydown right on the next support.
On supported exchanges you can use compounding, for example on Binance this works, on Nash it doesnt. You can check if it would work by searching for "globaltotalholding" in a pairs json state file. If it has a value above 0, it should work.
Compounding works with this line in the second job in autoconfig.json:
"TRADING_LIMIT": " Math.max(parseFloat(this.pair.globaltotalholding) / 150, 0.0014)"
What this means is
- set trading limit to 1/150th of the total btc equivalent wallet balance, or set 0.0014 at minimum
- 1/150th is just an example that should work well for the binance btc config. Of course you can set any value you want.
If you trade USDT pairs, use "globaltotalholdingUSD" instead, which is the USD equivalent value of your total spot wallet balance. Set it like this in the autoconfig job (with a minimum trading limit of 14 USDT):
"TRADING_LIMIT": " Math.max(parseFloat(this.pair.globaltotalholdingUSD) / 150, 14)"
Disclaimer It's not feasible for a free config example to test all possible things that could go wrong. Use with caution!
Enjoy! I’d appreciate it if you do not contact me through personal messages about this free config example. Thanks!