
L’idée centrale de cette stratégie est de prendre des décisions d’achat et de vente en combinant la transformation aléatoire de Fisher et l’indicateur de stop temporaire inverse STOCH. Cette stratégie s’applique aux opérations à court et moyen terme et permet de réaliser de bons rendements dans des conditions de stabilité.
La stratégie commence par calculer le STOCH standard, puis la transformation de Fisher en INVLine. Lorsqu’il traverse la ligne d’indice d’une marge inférieure dl sur l’INVLine, un signal d’achat est généré. Lorsqu’il traverse la ligne d’indice supérieure ul, un signal de vente est généré.
Plus précisément, la logique centrale de cette stratégie est la suivante:
Les principaux avantages de cette stratégie sont les suivants:
Cette stratégie présente aussi des risques:
Pour réduire ces risques, il est possible d’envisager d’optimiser les aspects suivants:
Cette stratégie peut être optimisée principalement dans les directions suivantes:
Cette stratégie utilise une combinaison de variations aléatoires de Fisher et d’indicateurs STOCH pour réaliser une stratégie de quantification de ligne courte simple et pratique. Son avantage réside dans sa fréquence d’opération élevée, adaptée aux transactions de quantification de haute fréquence plus populaires ces derniers temps.
/*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)