双方向のトレンドキャプチャ・フュージョン戦略

作者: リン・ハーンチャオチャン,日付: 2023年11月6日 11:49:41
タグ:

img

概要

この戦略は123リバースとSMAエルゴジックオシレーターサブ戦略を融合して,二重軌跡信号フィルタリングによるトレンド追跡戦略を形成する.123リバース戦略はキャンドルスティックパターンを介して潜在的なターニングポイントを判断する.SMAエルゴジックオシレーターは移動平均値を使用してトレンド方向を決定する.それらは相互に検証して二重確認メカニズムを形成し,誤った信号を効果的にフィルタリングし,トレンドトラッキング取引のための比較的強いトレンド方向を捉える.

戦略の論理

  1. 123 逆転戦略

この戦略は,ウルフ・ジェンセンの著書"How I Tripled My Money in the Futures Market"のp183のシステムから得られたものです.逆転型に属します.閉店価格が2日連続で前回の閉店よりも高く,9日ストキャストのスローラインが50を下回ると,ロング;閉店価格が2日連続で前回の閉店よりも低く,9日ストキャストの高速ラインが50を超えると,ショートします.

  1. SMA エルゴジックオシレーター

この指標は,SMAオシレーターにはシグナルラインが含まれていることを除いて,ウィリアム・ブラウによって開発されたTSIに類似している.SMAエルゴジック指標は,前回の価格をマイナスした価格の二重移動平均値を使用し,SMIのEMAをシグナルラインとしてプロットし,取引シグナルを誘発する.パラメータは最適化のために調整できる.

双重確認: 123 リバースとSMA エルゴディックが同じ方向に信号を出している場合にのみポジションを開く.信号方向が不一致しているときは平らに保持する.

利点

  1. 複数の指標を統合することで 双重確認メカニズムが形成され 誤った信号を効果的にフィルタリングできます

  2. 123 逆転戦略は,キャンドルスタイクパターンを介して潜在的な逆転点を判断する. SMA エルゴジックオシレーターは,トレンド判断に基づいてシグナルを発信する.単一の指標の限界を克服するために互いを補完する.

  3. SMA エルゴジックオシレーターのパラメータは,異なる製品とタイムフレームで最適化するために調整可能である.柔軟である.

  4. 傾向を追跡する戦略として 継続的に傾向を追跡し 強い勢いを掴むことができます

リスク

  1. 逆転戦略とトレンド戦略の統合とバランスは 継続的な最適化が必要です そうでなければ ターニングポイントを見逃したり 大きな損失を引き起こす可能性があります

  2. 逆転戦略には,偽取引リスクが固有である.失敗率を減らすためにパラメータを調整する必要があります.

  3. 純粋なトレンドフォロー戦略は,逆転を判断することはできません.潜在的な損失リスクがあります.リスクを避けるために,ポジションサイズを時間内に削減する必要があります.

  4. パラメータは,異なる製品やタイムフレームに対して繰り返し最適化とテストが必要です.直接適用しないでください.

改良

  1. 123 リバースメントのパラメータを調整して 誤った取引の頻度を減らす

  2. SMA エルゴジックオシレーターのパラメータを調整し,インジケーターの感度を最適化します.

  3. ストップ・ロスの戦略を追加して,取引毎の損失を制限します.

  4. 他の指標を組み込み,潜在的な逆転を判断し,ポジションサイズを時間とともに削減する.

  5. 耐久性を向上させるため,異なる製品でテストするパラメータ

概要

この戦略は,二重確認メカニズムを通じて逆転とトレンド戦略の利点を統合し,強力なトレンド追跡効果を形成する. 効果的にノイズをフィルタリングし,トレンドをフォローし,高品質のトレンド機会を継続的に捕捉することができます. 一方,特定の引き下げリスクがあります. ストップロスを使用してパラメータを継続的に最適化し,リスクを制御する必要があります. 鍵は逆転とトレンド,プラスストップロスをバランスすることです. 長期追跡のためにより良い効果があります. 全体的に,この戦略は実用的な価値があり,戦略ポートフォリオの一部として,または独立して使用できます.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/07/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by 
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages 
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the 
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine 
// tune these signals. The user may change the input (close), method (EMA), period lengths 
// and guide values.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand) =>
    pos = 0.0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
    xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
    xSMI = xSMA_R / xSMA_aR
    xEMA_SMI = ema(xSMI, SmthLen)
    pos:= iff(xEMA_SMI < LowBand, -1,
    	   iff(xEMA_SMI > TopBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & SMI Ergodic Oscillator", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- SMI Ergodic Oscillator ----")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSMI_Erg = SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSMI_Erg == 1 , 1,
	   iff(posReversal123 == -1 and posSMI_Erg == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

もっと