モメンタム長方形チャネルダブル移動平均取引戦略


作成日: 2024-02-27 14:54:07 最終変更日: 2024-02-27 14:54:07
コピー: 0 クリック数: 535
1
フォロー
1617
フォロワー

モメンタム長方形チャネルダブル移動平均取引戦略

概要

この戦略は,動量指標の矩形通路と双均線指標に基づいて,より完全な株式取引システムを実現している.戦略は,まず,高速EMAと遅いEMAを使用して双均線取引信号を構築している.その後,矩形通路指標と組み合わせて,取引信号をさらに検証し,より正確な入場を実現している.さらに,戦略は,トレンド方向を判断するのに補助的なSAR指標を使用している.

戦略原則

  1. 急速EMAの周期5日と遅いEMAの周期50日の平均線を計算する.急速EMAは最近の価格変化を反映し,遅いEMAは長期的な傾向を反映する.

  2. EMAをTEMAに変換し,TEMAの加重計算方法を利用し,曲線の感度を増やし,価格変化をより早く捉える.

  3. 急速TEMAの上を通過すると,買い信号が生じ,急速TEMA下を通過すると,売り信号が生じます.双均線交差原理は,量化取引に広く適用されます.

  4. 価格チャネルの幅を計算し,チャネルの領域を形成する.価格がチャネルを突破したときにのみ取引信号を発信することを考慮する.これは偽の信号をフィルターし,真のトレンドの始まりを検証する.

  5. SAR指標は,全体的なトレンドの方向を判断し,双均線取引シグナルと組み合わせて使用することで,不必要な逆操作を回避できます.

戦略的優位性

  1. 双均線交差は,チャネルブレイクと組み合わせて,トレンドの始まりを効果的に識別し,ノイズをフィルターし,買入シグナルをより正確かつ信頼性のあるものにします.

  2. TEMA曲線はEMA曲線よりもより敏感で,価格変化をより早く捉えることができる.

  3. 複数の指標の組み合わせを使用することで,指標間での検証機構を形成し,単一の指標の制限を回避し,戦略をより包括的かつ堅牢にすることができます.

  4. 戦略パラメータ設定の柔軟性,EMA周期,通路幅など,市場動向に応じて調整して最適化できる,適応性が強い。

戦略リスク

  1. 株価が短期的に急激に変動する可能性があり,ストップ・ロスを引き起こす可能性があります.

  2. 突発的な出来事により,株価に穴が開き,予想した価格で取引ができない.

  3. 双均線交差は偽信号の発生を完全に回避することはできず,ある程度の誤判率がある.

  4. パラメータを正しく設定しない場合,取引信号が頻度が高くなり,遅れてしまう可能性があります.

最適化の方向

  1. KD,MACDなどの多くの指標を組み合わせて検証することで,戦略をより全面的に信頼できます.

  2. ダイナミックなサイクルを設定し,市場の変動に応じてEMAと通路パラメータを調整し,戦略をより柔軟にすることができます.

  3. 機械学習モデルを構築し,大量の履歴データを訓練し,パラメータ設定を自動的に最適化し,人工介入を減らすことができます.

  4. 市場情勢を判断する文本分析や報道情緒を組み合わせて,重要なニュースを発表する際に無駄な取引を避ける.

要約する

この戦略は,TEMA均線交差を高速で形成し,価格チャネルとSAR指標を組み合わせて検証することで,株価トレンドの始まりを効果的に識別し,合理的な位置で買い物操作を行うことができる.複数の指標の組み合わせが互いに検証し,信号の信頼性を高め,より堅牢で高効率の株式取引戦略である.パラメータの設定を継続的に最適化し,新しい検証指標を追加するなどの手段によって,戦略の効果も継続的に改善することができる.

ストラテジーソースコード
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA_System_SAR", overlay=true)

//Collect inputs parameters

fastEmaPeriod = input(5, minval=1, title="Fast TEMA Period")
slowEmaPeriod = input(50, minval=1, title="Slow TEMA Periods")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 4, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 09, 15)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 15, 30)        // backtest finish window
window()  => true

fastEma = ema(close, fastEmaPeriod)
slowEma = ema(close, slowEmaPeriod)

//convert EMA into TEMA

ema1 = ema(close, fastEmaPeriod)
ema2 = ema(ema1, fastEmaPeriod)
ema3 = ema(ema2, fastEmaPeriod)

fastTEMA = 3 * (ema1 - ema2) + ema3

// convert EMA into TEMA

ema4 = ema(close, fastEmaPeriod)
ema5 = ema(ema1, fastEmaPeriod)
ema6 = ema(ema2, fastEmaPeriod)

slowTEMA = 3 * (ema4 - ema5) + ema6

buy  = close > fastTEMA
sell = close < fastTEMA

plot(fastTEMA, title = 'fast TEMA', linewidth=2, color=white)
plot(slowTEMA, title = 'slow TEMA', linewidth=2, color=yellow)

strategy.entry("long",strategy.long, when = window() and buy)
strategy.entry("short", strategy.short, when = window() and sell)