資源の読み込みに... 荷物...

二重移動平均勢力の追跡量的な戦略

作者: リン・ハーンチャオチャン開催日:2024年11月27日15時06分57秒
タグ:マルチSMAエイマSMMARMAWMAVWMA

img

概要

この戦略は,二重移動平均クロスオーバーシグナルに基づいた定量的な取引戦略である.この戦略は,2つの移動平均を採用しており,一つはメイン信号ライン,もう一つはスムージング信号ラインである.スムージング信号ラインで価格クロスオーバーをモニタリングすることによって取引信号を生成し,市場のトレンドを把握し,モメントを追跡することを可能にします.この戦略の核心強みは,シンプルで効果的な信号生成メカニズムと柔軟なパラメータ構成オプションにあります.

戦略原則

この戦略は,移動平均計算の2つのレベルを利用している.まずは基本的な移動平均 (デフォルト期9),次に二次的なスムージングプロセス (デフォルト期5). 戦略は,単純な移動平均 (SMA),指数的な移動平均 (EMA),スムージングムービング平均 (SMMA),重量移動平均 (WMA),ボリューム重量移動平均 (VWMA) など様々な移動平均計算方法を提供しています. 閉値がスムージング信号線を超えるとロング信号が生成され,閉値がその下を横切るとショート信号が生成されます.

戦略 の 利点

  1. わかりやすく,単純で,理解し実行しやすい信号生成メカニズム
  2. 二次滑らかによって誤信号を効果的に減少させる
  3. 異なる市場特性に利用可能な複数の移動平均計算方法
  4. 異なる市場サイクルのための柔軟なパラメータ構成
  5. 明確なコード構造,維持・拡張が簡単
  6. 強い傾向を追跡する能力

戦略リスク

  1. 振動する市場で頻繁に取引信号を生成し,取引コストを増加させる
  2. 市場の動きの始まりを逃す可能性があります
  3. 市場が急激に逆転する際に 重要な引き上げの可能性
  4. 市場環境の評価がない 単一技術指標戦略
  5. 過剰なパラメータ最適化による過剰なフィットメントのリスク

戦略の最適化方向

  1. 異なるパラメータ構成の市場環境評価メカニズムを導入する
  2. リスク管理のためのストップ・ロストとテイク・プロフィートのメカニズムを追加
  3. 低流動性環境での取引を避けるため,ボリュームフィルターを導入する
  4. 確認信号として追加的な技術指標を組み込む
  5. ダイナミックな市場調整のための適応パラメータメカニズムを開発する
  6. より柔軟な位置制御のために位置管理モジュールを追加

概要

この戦略は,二層移動平均設計を通じてシンプルさを維持しながら安定性を向上させる古典的なトレンドフォロー戦略の改良版である.この戦略は,パラメータ最適化と機能拡張を通じて異なる市場環境に適応できる良好なスケーラビリティと柔軟性を提供している.しかし,ユーザーは取引コスト制御とリスク管理に注意を払う必要がある.そして,ライブ取引の前に徹底的なバックテストを行うことが推奨される.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average 1.0 Strategy", overlay=true)

// Input for Moving Average Length
len = input.int(9, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)

// Calculate the Moving Average
out = ta.sma(src, len)

// Plot the Moving Average
plot(out, color=color.blue, title="MA", offset=offset)

// Function to choose the type of moving average
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// Input for Smoothing Method and Length
typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing")

// Calculate the Smoothing Line
smoothingLine = ma(out, smoothingLength, typeMA)

// Plot the Smoothing Line
plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset)

// Strategy Logic
if (ta.crossover(close, smoothingLine))
    strategy.entry("Buy", strategy.long)

if (ta.crossunder(close, smoothingLine))
    strategy.entry("Sell", strategy.short)





関連性

もっと