Tags:

This strategy combines the bilateral trading signals of the TSI and improved CCI indicators, and adopts a hedging approach to frequently open and close positions, aiming to pursue more stable continuous profits. The key logic is the golden cross and dead cross of the fast and slow moving averages of the TSI indicator, combined with the buy and sell signals of the HMACCI indicator to determine market direction. Risks are controlled by limiting opening conditions, while stop loss and take profit logics are set.

The strategy is mainly based on the combination of the TSI and HMACCI indicators.

The TSI indicator contains a fast moving average and a slow one to determine trading signals. When the fast line breaks through the slow line upwards, it is a buy signal, and vice versa for sell signals. This can capture changes in market trends more sensitively.

The HMACCI indicator is based on the traditional CCI indicator using Hull Moving Average instead of price itself, which can filter out some noise and judge overbought and oversold zones. The overbought and oversold zones can further confirm the signal direction of the TSI indicator.

The key logic of the strategy is to combine the judgments of these two indicators and set certain additional conditions to filter out false signals, such as examining the previous bar’s closing price and maximum and minimum prices over multiple periods to control the quality of reversal signals.

For opening positions, if conditions are met, market orders are placed each time the bar closes, going both long and short. This can obtain more stable returns, but undertakes the risks of a hedging strategy.

For take profit and stop loss, floating stop loss and close all orders when reaching target profit are set. This can effectively control the risks of one-way trades.

This is a relatively stable and reliable high frequency hedging strategy. The main advantages are:

- Combination of dual indicators can effectively avoid false signals
- Frequent hedging operations every bar leads to more stable fluctuations in profit and loss
- Strict opening logic and stop loss conditions can control risks
- Combining trend and reversal judgments leads to higher fault tolerance
- No directional bias, suitable for various market conditions
- Large adjustable parameter space, can be optimized for different products

The main risks to note are:

- More fee loss caused by high frequency trading
- Impossibility to perfectly avoid being locked in a hedge
- Overly aggressive entry if parameters not set properly
- Difficulty to withstand one-way huge losses in short term

Risks can be reduced through:

- Adjust opening frequency appropriately to lower fee impact
- Optimize indicator parameters to ensure signal quality
- Increase stop loss amplitude but suffer more hedging losses
- Test parameters on different products

There is still large room for optimizing this strategy, mainly:

- Optimizing parameters like period, length etc. through testing
- Trying different indicator combinations e.g. MACD, BOLL etc.
- Modifying opening logic, setting stricter filters
- Optimizing take profit and stop loss strategies e.g. dynamic, breakout stops
- Using machine learning methods to find more stable parameter ranges
- Testing on different trading products and timeframes
- Combining trend detection to avoid overly aggressive trades in range-bound markets

Overall this strategy is a stable, reliable hedging strategy with high fault tolerance. It combines trend and reversal indicators, obtaining steady returns through frequent dual-directional trading. Also, the strategy itself has strong potential for optimization, and represents a worthwhile high frequency trading idea to research further.

/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the suns bipolarity //©SeaSide420 //@version=4 strategy(title="TSI HMA CCI", default_qty_type=strategy.cash,default_qty_value=1000,commission_type=strategy.commission.percent,commission_value=0.001) long = input(title="TSI Long Length", type=input.integer, defval=25) short = input(title="TSI Short Length", type=input.integer, defval=25) signal = input(title="TSI Signal Length", type=input.integer, defval=13) length = input(33, minval=1, title="HMACCI Length") src = input(open, title="Price Source") ld = input(50, minval=1, title="Line Distance") CandlesBack = input(8,minval=1,title="Candles Look Back") StopLoss= input(3000,minval=1, title="Stop Loss") TargetProfitAll= input(3000,minval=1, title="Target Profit Close All") FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12) FromDay=input(defval=1,title="FromDay",minval=1,maxval=31) FromYear=input(defval=2020,title="FromYear",minval=2020) ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12) ToDay=input(defval=1,title="ToDay",minval=1,maxval=31) ToYear=input(defval=9999,title="ToYear",minval=2017) start=timestamp(FromYear,FromMonth,FromDay,00,00) finish=timestamp(ToYear,ToMonth,ToDay,23,59) window()=>true ul = (ld) ll = (ld-ld*2) ma = hma(src, length) cci = (src - ma) / (0.015 * dev(src, length)) price = close double_smooth(src, long, short) => fist_smooth = ema(src, long) ema(fist_smooth, short) pc = change(price) double_smoothed_pc = double_smooth(pc, long, short) double_smoothed_abs_pc = double_smooth(abs(pc), long, short) tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)*10 tsi_value2=ema(tsi_value/10, signal)*10 cc = color.white ct = color.new(color.gray, 90) if cci<ll or cci[1]<ll cc:=color.red if cci>ul or cci[1]>ul cc:=color.green if cci<ul and cci>ll cc:=color.new(color.yellow, 90) ccc = color.white if cci>ul ccc:=color.green if cci<cci[1] and cci<ul and cci>ll ccc:=color.red if cci<ll ccc:=color.red if cci>cci[1] and cci>ll and cci<ul ccc:=color.green tsiplot= plot(tsi_value, color=color.lime) tsiplot2=plot(tsi_value2, color=color.red) colorchange2 =tsi_value>tsi_value2?color.lime:color.orange fill(tsiplot, tsiplot2, color=colorchange2, title="TSIBackground", transp=50) band1 = hline(ul, "Upper Band 1", color=ct, linestyle=hline.style_dashed) band0 = hline(ll, "Lower Band 1", color=ct, linestyle=hline.style_dashed) fill(band1, band0, color=cc, title="MidBandBackground", transp=0) band2 = hline(ul, "Upper Band 2", color=ct, linestyle=hline.style_dashed) band3 = hline(ll, "Lower Band 2", color=ct, linestyle=hline.style_dashed) cciplot2 = plot(cci, "CCIvHMA 2", color=color.black, transp=0, linewidth=5) cciplot = plot(cci, "CCIvHMA", color=ccc, transp=0, linewidth=3) hline(0, title="Zero") hline(420, title="420") hline(-420, title="-420") fill(cciplot, cciplot2, color=ccc, title="CCIBackground", transp=0) LongCondition=cci>cci[1] and cci>ll and src>src[CandlesBack] and tsi_value>tsi_value2 ShortCondition=cci<cci[1] and cci<ul and src<src[CandlesBack] and tsi_value<tsi_value2 plotshape(LongCondition, title="BUY", style=shape.circle, location=location.top, color=color.green) plotshape(ShortCondition, title="SELL", style=shape.circle, location=location.top, color=color.red) if strategy.openprofit>TargetProfitAll strategy.close_all(when=window(),comment="close all profit target") if LongCondition and strategy.openprofit>-1 strategy.order("BUY", strategy.long,when=window()) if ShortCondition and strategy.openprofit>-1 strategy.order("SELL", strategy.short,when=window()) strategy.exit("SL exit a sell", "SELL", loss = StopLoss,when=window()) strategy.exit("SL exit a buy", "BUY", loss = StopLoss,when=window())

- Momentum and Fear Index Crossover Strategy
- Automatic Long/Short Trading Strategy Based on Daily Pivot Points
- Triple Moving Average Quantitative Trading Strategy
- A Momentum Crossover Strategy Based on Exponential Moving Average
- Adaptive Moving Average and Weighted Moving Average Crossover Trading Strategy
- Aggregated Multi-timeframe MACD RSI CCI StochRSI MA Linear Trading Strategy
- Multi-timeframe MACD Trend Following Strategy
- Trend Following Trading Strategy Based on MACD and RSI
- An ATR Channel Breakout Quantitative Trading Strategy
- Adaptive ATR and RSI Trend Following Strategy with Trailing Stop Loss
- Dual Moving Average Crossover MACD Trend Following Strategy
- Dual Moving Average Golden Cross Algorithm
- Quantitative Trading Strategy Based on Ichimoku and ADX Indicators
- Golden Cross Death Cross Long-term Multi-factor Strategy
- RSI Divergence Trading Strategy
- Quant Trading Strategy Based on Moving Average Crossover
- Multi Timeframe Trend Following Strategy
- Dynamic Grid Trading Strategy
- A Dual Moving Average Confirmation Advantage Line Strategy
- Crypto RSI Mini-Sniper Quick Response Trend Following Strategy