Основная идея этой стратегии заключается в сочетании Random Fisher Transform и индикатора Temporary Stop Reverse STOCH для принятия решений о покупке и продаже.
Эта стратегия сначала рассчитывает стандартный индикатор STOCH, а затем выполняет преобразование Фишера на нем, чтобы получить INVLine. Когда INVLine пересекает нижний порог dl, генерируется сигнал покупки. Когда INVLine пересекает верхний порог ul, генерируется сигнал продажи. В то же время эта стратегия также устанавливает механизм остановки для блокировки прибыли и снижения потерь.
В частности, основной логикой этой стратегии является:
Основными преимуществами этой стратегии являются:
Эта стратегия также сопряжена с некоторыми рисками:
Для смягчения этих рисков следует рассмотреть возможность оптимизации следующих аспектов:
К основным направлениям оптимизации этой стратегии относятся:
Эта стратегия сочетает в себе случайную трансформацию Фишера и индикатор STOCH для реализации простой и практичной краткосрочной количественной стратегии. Ее преимущество заключается в высокой частоте операции, которая подходит для популярной в настоящее время высокочастотной количественной торговли. В то же время эта стратегия также имеет некоторые общие риски технической стратегии индикатора. Параметры и условия фильтрации должны быть оптимизированы для снижения рисков и улучшения стабильности. В целом эта стратегия дает хорошую идею для простой количественной торговли и стоит дальнейшего углубленного исследования.
/*backtest start: 2022-12-26 00:00:00 end: 2024-01-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("IFT Stochastic + Trailing Stop", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type = strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) //INPUTS stochlength=input(19, "STOCH Length") wmalength=input(4, title="Smooth") ul = input(0.64,step=0.01, title="UP line") dl = input(-0.62,step=0.01, title="DOWN line") uts = input(true, title="Use trailing stop") tsi = input(title="trailing stop actiation pips",defval=245) tso = input(title="trailing stop offset pips",defval=20) //CALCULATIONS v1=0.1*(stoch(close, high, low, stochlength)-50) v2=wma(v1, wmalength) INVLine=(exp(2*v2)-1)/(exp(2*v2)+1) //CONDITIONS sell = crossunder(INVLine,ul)? 1 : 0 buy = crossover(INVLine,dl)? 1 : 0 //PLOTS plot(INVLine, color=aqua, linewidth=1, title="STOCH") hline(ul, color=red) hline(dl, color=green) bgcolor(sell==1? red : na, transp=30, title = "sell signal") bgcolor(buy==1? lime : na, transp=30, title = "buy signal") plotchar(buy==1, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0) plotchar(sell==1, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0) //STRATEGY strategy.entry("BUY", strategy.long, when = buy==1) strategy.entry("SELL", strategy.short, when = sell==1) if (uts) strategy.entry("BUY", strategy.long, when = buy) strategy.entry("SELL", strategy.short, when = sell) strategy.exit("Close BUY with TS","BUY", trail_points = tsi, trail_offset = tso) strategy.exit("Close SELL with TS","SELL", trail_points = tsi, trail_offset = tso)