La idea central de esta estrategia es combinar el Random Fisher Transform y el indicador Temporary Stop Reverse STOCH para tomar decisiones de compra y venta.
Esta estrategia primero calcula el indicador estándar de STOCH, luego realiza una transformación de Fisher en él para obtener INVLine. Cuando INVLine cruza por encima del umbral inferior dl, se genera una señal de compra. Cuando INVLine cruza por debajo del umbral superior ul, se genera una señal de venta. Al mismo tiempo, esta estrategia también establece un mecanismo de parada para bloquear las ganancias y reducir las pérdidas.
En concreto, la lógica central de esta estrategia es la siguiente:
Las principales ventajas de esta estrategia son las siguientes:
Esta estrategia también tiene algunos riesgos:
Para mitigar estos riesgos, considere optimizar los siguientes aspectos:
Las principales direcciones para optimizar esta estrategia incluyen:
Esta estrategia combina la Transformación aleatoria de Fisher y el indicador STOCH para implementar una estrategia cuantitativa a corto plazo simple y práctica. Su ventaja radica en la alta frecuencia de operación, que es adecuada para el comercio cuantitativo de alta frecuencia actualmente popular. Al mismo tiempo, esta estrategia también tiene algunos riesgos comunes de la estrategia de indicadores técnicos. Los parámetros y las condiciones de filtro deben optimizarse para reducir los riesgos y mejorar la estabilidad. En general, esta estrategia proporciona una buena idea para el comercio cuantitativo simple y merece una investigación más profunda.
/*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)