デュアル移動平均トレンドフォロー戦略


作成日: 2023-11-14 16:56:21 最終変更日: 2023-11-14 16:56:21
コピー: 0 クリック数: 618
1
フォロー
1617
フォロワー

デュアル移動平均トレンドフォロー戦略

概要

双移動均線トレンド追跡戦略は,価格の二重指数移動平均を計算して,快線と慢線を形成し,両線の交差形状に基づいて価格トレンドを判断し,トレンド追跡取引を実現する.この戦略は,トレンド追跡に基づく定量取引戦略の1つです.

戦略原則

この戦略は,まず,価格の双指数移動平均を計算し,快線と遅線を含む. 快線は4周期,遅線は8周期のパラメータを持つ. 2つの線が交差すると,買入と売却のシグナルが生じる. 快線が下から遅線を横切ると,買入のシグナルが生じる. 快線が上から下から遅線を横切ると,売却のシグナルが生じる.

優位分析

この戦略は,まず,価格の動向に従って取引することができ,トランザクションコストを回避する.次に,双移動均線は価格の部分的なノイズをフィルターし,価格の動向を順調に把握することができる.次に,この戦略のパラメータは,柔軟に最適化され,移動均線周期とMACDパラメータは,異なる品種とパラメータに適応して調整できる.最後に,戦略の論理は,シンプルで明確で,容易に理解し,実装され,取引を量化するためのアルゴリズム設計に適している.

リスク分析

この戦略はパラメータ最適化に依存し,パラメータ設定が不適切であれば,大量の誤信号が生じます.さらに,双移動均線は遅滞性があり,価格転換点を見逃す可能性があります.さらに,トレンド取引は,高を追いかけて下落を殺すパターンを形成しやすいため,一定のリスクがあります.さらに,取引品種の流動性および手数料は,戦略の収益にも影響を及ぼします.リスクを減らすために,パラメータを適切に最適化して,他の指標のフィルターシグナルと組み合わせて,ポジションサイズを制御できます.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 双移動平均線の周期パラメータを最適化して,最適なパラメータの組み合わせを探す

  2. RSI,KDなどの他の指標のフィルタリング信号を追加し,信号の質を向上させる

  3. トレンドが逆転したときに,一時的にストップするストップ・ストラテジーを増やす

  4. 市場状況に応じてポジションのサイズを動的に調整し,リスクをコントロールする

  5. 異なる取引品種のパラメータに最適化

  6. 機械学習などの高度な戦略を組み合わせて,戦略の効果を高める

要約する

この戦略は,全体として,双移動平均線に基づく簡単なトレンド追跡戦略である.戦略の考え方は明確で,実行しやすい.パラメータ調整は柔軟で,量化取引の入門戦略として適している.しかし,この戦略には,追尾の落下,信号の遅延などの問題があり,リスクを制御し,安定性を高めるためにさらに最適化する必要がある.全体として,この戦略は,初心者にとって学習アルゴリズム取引の良い機会を提供し,高度な戦略の基礎でもある.

ストラテジーソースコード
/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/11/2017
// 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.
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// WARNING:
// - For purpose educate only
////////////////////////////////////////////////////////////
strategy(title="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")
// hline(0, color=gray, linestyle=dashed)
// hline(TopBand, color=red, linestyle=line)
// hline(LowBand, color=green, linestyle=line)
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 < xSMI, -1,
	   iff(xEMA_SMI > xSMI, 1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )  
plot(xSMI, color=green, title="Ergotic SMI")
plot(xEMA_SMI, color=red, title="SigLin")