A ideia central desta estratégia é combinar o Random Fisher Transform e o indicador Temporary Stop Reverse STOCH para tomar decisões de compra e venda.
Esta estratégia primeiro calcula o indicador padrão STOCH, em seguida, executa uma transformação de Fisher sobre ele para obter o INVLine. Quando o INVLine cruza acima do limiar inferior dl, um sinal de compra é gerado. Quando o INVLine cruza abaixo do limiar superior ul, um sinal de venda é gerado. Ao mesmo tempo, esta estratégia também define um mecanismo de parada de atraso para bloquear lucros e reduzir perdas.
Especificamente, a lógica central desta estratégia é a seguinte:
As principais vantagens desta estratégia são:
Esta estratégia tem também alguns riscos:
Para mitigar estes riscos, considerar a otimização dos seguintes aspectos:
As principais direcções para otimizar esta estratégia incluem:
Esta estratégia combina a Transformação aleatória de Fisher e o indicador STOCH para implementar uma estratégia quantitativa de curto prazo simples e prática. Sua vantagem reside na alta frequência de operação, que é adequada para a negociação quantitativa de alta frequência atualmente popular. Ao mesmo tempo, esta estratégia também tem alguns riscos comuns de estratégia de indicadores técnicos. Parâmetros e condições de filtro precisam ser otimizados para reduzir riscos e melhorar a estabilidade.
/*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)