The core idea of this strategy is to combine the Random Fisher Transform and the Temporary Stop Reverse STOCH indicator to make buy and sell decisions. This strategy is suitable for medium-term operations and can generate decent returns in stable market conditions.
This strategy first calculates the standard STOCH indicator, then performs a Fisher transform on it to obtain INVLine. When INVLine crosses above the lower threshold dl, a buy signal is generated. When INVLine crosses below the upper threshold ul, a sell signal is generated. At the same time, this strategy also sets a trailing stop mechanism to lock in profits and reduce losses.
Specifically, the core logic of this strategy is:
The main advantages of this strategy are:
This strategy also has some risks:
To mitigate these risks, consider optimizing the following aspects:
The main directions for optimizing this strategy include:
This strategy combines the Random Fisher Transform and the STOCH indicator to implement a simple and practical short-term quantitative strategy. Its advantage lies in the high operation frequency, which is suitable for the currently popular high-frequency quantitative trading. At the same time, this strategy also has some common technical indicator strategy risks. Parameters and filter conditions need to be optimized to reduce risks and improve stability. In general, this strategy provides a good idea for simple quantitative trading and is worth further in-depth research.
/*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)