[Share] RSI-BB-ADX with candlebatcher - Printable Version +- Gekko Forum (https://forum.gekko.wizb.it) +-- Forum: Gekko (https://forum.gekko.wizb.it/forum-13.html) +--- Forum: Strategy Development (https://forum.gekko.wizb.it/forum-12.html) +--- Thread: [Share] RSI-BB-ADX with candlebatcher (/thread-57778.html) |
[Share] RSI-BB-ADX with candlebatcher - Gryphon - 11-27-2018 This is more a share of the method I'm using for candle batching than of the strategy, but as Tommies RSI strat is rather excellent and so widely known it seemed a good demonstrator. This strategy runs on 1 minute candles and batches them in the update function. The less obvious bit is that instead of keeping one copy of each indicator, it keeps an array of each indicator as long as the candle size for that indicator. Each new minute candle, the next indicator in the array is updated and read. The upshot of this is that each minute there is an up to date result of the longer term indicator, allowing far more accurate entry and exit points checked every minute, instead of every 5, 10, 30, 60 etc minutes. This also makes a strategy less sensitive to start time - although it still makes more of a difference than I'd expect! The timeframe for each indicator is also independent so different candle sizes can be used for bear and bull market indicators - however the indicator candle size and indicator period do become a little interchangeable as they're both changing the amount of time that the indicator is watching the market over. Other benefits of running at 1 minute is that any stop losses or take profits that you might add can be checked that much more frequently, so are that much more useful at catching quick market movements. Downsides: > As with any strategy running on very short timeframes trying to tune it with GA style optimisers can results in huge profits with hundreds of trades per day that will perform absolutely miserably if ran live as the orders simply can't be filled. Tuning requires a little more understanding of what the strategy is doing and inputting sensible parameters. > Gekko currently has a limitation on the number of candles it can pre-seed a strategy with of around 4000. When running at 1 minute, this is 2.7 days of history so you need to shrink those long SMAs So - here's a quick example backtest from 6 months history on an alt, with Tommie's original strategy first, candlebatched second. Both have exactly the same parameters, as in the TOML file below. Original: Candlebatched: Paper trading settings are at their defaults. These two are purely intended as a relative comparison. I obviously can't promise any results but hope it shows that there is potential! I'm sharing this under the same CC-BY-SA 4.0 license that Tommie shared his under - I learnt a lot from that bit of code, so hopefully giving a little back. Run the strategy in 1 minute candles in gekko and specify the candle sizes you want each indicator to run at with the timeframe parameter in the TOML. TOML: Github Code: # SMA INDICATOR Strategy: Github Code: /* RE: [Share] RSI-BB-ADX with candlebatcher - Henry151 - 11-27-2018 Great stuff Gryphon! Definite going to implement this in my setup. Thanks for the share. RE: [Share] RSI-BB-ADX with candlebatcher - R4nD00m - 12-02-2018 Dear Gryphon, thank you for your efforts and time you put into this strategy and especially for sharing this well-thought trough strategy with us. From what I've seen and understood, this strategy has some advantages:
Settings: I've made some simulations with some 20-50 alts. These are my current "best" performing settings usually better performing than market with 0.3% fees set. Making huge gains in bull market and not too hard losses in bearmarkets. Need some improvements siedways, any ideas ? Please let me know your thoughts and post or PM your settings if you find these useful or have made improvements based on mine. Quote:# SMA INDICATOR RE: [Share] RSI-BB-ADX with candlebatcher - R4nD00m - 12-02-2018 Dear Gryphon, thank you for your efforts and time you put into this strategy and especially for sharing this well-thought trough strategy with us. From what I've seen and understood, this strategy has some advantages:
Settings: I've made some simulations with some 20-50 alts. The one below is my current "best" performing setting, usually better performing than market with 0.3% fees set. Sometimes making huge losses like 10-15% on a trade and I can't figure how to smooth this out. Please let me know your thoughts and post or PM your settings if you find these useful or have made improvements based on mine. Quote:# SMA INDICATOR RE: [Share] RSI-BB-ADX with candlebatcher - ankasem - 12-02-2018 Thank you RE: [Share] RSI-BB-ADX with candlebatcher - Kris191 - 12-03-2018 Gryphon, great work as always, i'm gonna throw this one on paper trader and see what happens throughout December i think. Are you looking to add the trailing stop into this? Based on the strat logic, backtests never showed any benefit on adding the SL, but on live market i can only see this being a benefit. RE: [Share] RSI-BB-ADX with candlebatcher - R4nD00m - 12-03-2018 So I took Gryphons work, grabbed kris191 idea, got into coding this piece and : Added STOP-LOSS (You really would want to get out at a certain % loss ) Added a minimum short spread (Think of all the fees, you might not want to trade .0003698 against .0003699) https://github.com/R4nd0/Gekko-Strategies RE: [Share] RSI-BB-ADX with candlebatcher - Gryphon - 12-04-2018 Nice to see people experimenting with it already The strategy itself and the trading logic is exactly the same as Tommie's original strategy - I'd say that this has the same strengths and weaknesses, just that it checks the market that much more regularly that entry and exit points are caught sooner, which generally results in it making more trades. The large losses that it can make on trades when the market dips sharply is a result of trading with the RSI indicator crossing thresholds. It could help to take a buy signal as the RSI value passing back up through the RSI_Low threshold, which is more likely to signal the market beginning to rise. When I tried this with the original strategy it didn't work well as due to the infrequent checks, the good buy in point was often long gone by the time the strategy had realised the RSI was above the threshold again. With this checking it every minute it proved far more successful. I like stop losses in a strategy. In my view, if adding a stop loss kills a strategy in back testing, then the strategy is picking the wrong time to buy in. Of course this is much easier said than done, but I've had more success with this candle batching than other strategies. I've yet to try it, but Gekko's new inbuilt trailing stop loss should be the way to go for stop losses as it acts on tick data rather than candle. RE: [Share] RSI-BB-ADX with candlebatcher - xelixes - 12-05-2018 Guys; I am experimenting with this - and would really love to fire it up on live trade (for testing) - As I have "0" experience coding Unfortunately I am failing to create the config file (for running on CLI). Could someone help ? I was getting cannot set property 'batchsize' of undefined; and when I removed the backtesting part (lines 31); I get another error of cannot find module of undefined errors ... RE: [Share] RSI-BB-ADX with candlebatcher - xelixes - 12-05-2018 (12-05-2018, 10:40 AM)xelixes Wrote: Guys; this the error I am getting (note I cant start live trading on GUI either!): ====== /xx/pi/gekko/strategies/RSI_BULL_BEAR_ADX_CB_SGLGL.js:43 config.backtest.batchSize = 10000; // increase performance ^ TypeError: Cannot set property 'batchSize' of undefined at Base.init (/xx/pi/gekko/strategies/RSI_BULL_BEAR_ADX_CB_SGLGL.js:43:31) at Base.bound [as init] (/xx/pi/gekko/node_modules/lodash/dist/lodash.js:729:21) at new Base (/xx/pi/gekko/plugins/tradingAdvisor/baseTradingMethod.js:70:8) at Actor.setupStrategy (/xx/pi/gekko/plugins/tradingAdvisor/tradingAdvisor.js:61:19) at Actor.bound [as setupStrategy] (/xx/pi/gekko/node_modules/lodash/dist/lodash.js:729:21) at new Actor (/xx/pi/gekko/plugins/tradingAdvisor/tradingAdvisor.js:23:8) at load (/xx/pi/gekko/core/pluginUtil.js:98:22) at /xx/pi/gekko/node_modules/async/dist/async.js:1156:9 at replenish (/xx/pi/gekko/node_modules/async/dist/async.js:1030:17) at iterateeCallback (/xx/pi/gekko/node_modules/async/dist/async.js:1015:17) ======= after removing batchsize thing from js file, I am getting: 2018-12-05 17:26:18 (INFO): Make sure your warmup period matches SMA_long and that Gekko downloads data if needed module.js:550 throw err; ^ Error: Cannot find module '/xx/pi/gekko/core/../plugins/undefined/reader' at Function.Module._resolveFilename (module.js:548:15) at Function.Module._load (module.js:475:25) at Module.require (module.js:597:17) at require (internal/module.js:11:18) at Stitcher.prepareHistoricalData (/xx/pi/gekko/core/tools/dataStitcher.js:50:16) at new Actor (/xx/pi/gekko/plugins/tradingAdvisor/tradingAdvisor.js:34:14) at load (/xx/pi/gekko/core/pluginUtil.js:98:22) at /xx/pi/gekko/node_modules/async/dist/async.js:1156:9 at replenish (/xx/pi/gekko/node_modules/async/dist/async.js:1030:17) at iterateeCallback (/xx/pi/gekko/node_modules/async/dist/async.js:1015:17) |