L'idée de base de cette stratégie est de combiner la transformation aléatoire de Fisher et l'indicateur Temporary Stop Reverse STOCH pour prendre des décisions d'achat et de vente.
Cette stratégie calcule d'abord l'indicateur STOCH standard, puis effectue une transformation Fisher sur celui-ci pour obtenir l'INVLine. Lorsque l'INVLine franchit le seuil inférieur dl, un signal d'achat est généré. Lorsque l'INVLine franchit le seuil supérieur ul, un signal de vente est généré.
Plus précisément, la logique de base de cette stratégie est la suivante:
Les principaux avantages de cette stratégie sont les suivants:
Cette stratégie comporte également des risques:
Pour atténuer ces risques, il convient d'optimiser les aspects suivants:
Les principales orientations d'optimisation de cette stratégie sont les suivantes:
Cette stratégie combine la transformation aléatoire de Fisher et l'indicateur STOCH pour mettre en œuvre une stratégie quantitative à court terme simple et pratique. Son avantage réside dans la fréquence d'opération élevée, ce qui convient au trading quantitatif à haute fréquence actuellement populaire. En même temps, cette stratégie comporte également certains risques techniques communs. Les paramètres et les conditions de filtrage doivent être optimisés pour réduire les risques et améliorer la stabilité. En général, cette stratégie fournit une bonne idée pour le trading quantitatif simple et mérite une recherche plus approfondie.
/*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)