アダプティブ・ムービング・メアダと重度のムービング・メアダのクロスオーバー・トレーディング戦略

作者: リン・ハーンチャオチャン開催日:2024年1月23日 14:13:55
タグ:

img

概要

この戦略は,シミュレートされた動向平均指標 (AIOMA) と重量化動向平均指標 (WMA) をベースに取引信号を生成する.AIOMAとWMAのクロスオーバーに基づいて購入・売却信号を生成する.

戦略名

AIOMA-WMA 適応型クロスオーバー戦略

戦略の論理

戦略には以下の主要な要素が含まれます.

  1. AIOMA 指標の計算

    • 指定された長さの指数関数移動平均値 (EMA) の連続を計算する
    • これらの EMA を連鎖して平らな値を作成する
    • 最終的なAIOMAは,最後の滑らかな値のEMAです.
  2. WMA指標の計算

    • 指定された長さのWMAを計算する
  3. シグナル生成

    • WMAがAIOMAを横切るときに信号を購入する
    • WMAがAIOMAを下回るときに売り信号
  4. 取引の論理

    • 買い信号でロングポジションを入力します.
    • 売りシグナルでショートポジションを入力
    • 逆交差信号の接近位置

利点

  1. 2種類の異なる移動平均値を使用することで,信号の精度が向上します
  2. AIOMAは複数の指数式滑らかによって 偽信号を減らす
  3. 主要指標としてWMAは,価格変動に早く反応し,傾向を早期に把握します.
  4. シンプルな取引論理,理解し実行しやすい

リスク

  1. EMAの多重調整による過度な遅れ
  2. WMAは短期価格変動による誤った信号を受けやすい
  3. ストップ損失の論理がない場合,大きな損失につながる可能性があります

パラメータの最適化,ストップ・ロスの追加,他の指標のフィルタリングなどによってリスクを減らすことができます.

強化 分野

  1. 最適値を見つけるために異なるパラメータの組み合わせをテスト
  2. トリガー・ストップ・ロスト・オーダーとエントリー・シグナル
  3. 波動性指標を用いたシグナルをフィルタリングする
  4. ポジションサイズ戦略を組み込む

結論

この戦略は,取引信号を生成するためにクロスオーバーを使用することで,AIOMAとWMAの強みを組み合わせます.単一の移動平均値と比較して,信号品質を改善します.パラメータ最適化,ストップ損失戦略,変動フィルタリングなどのさらなる改良により,強力な取引システムになります.


/*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 Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SDTA

//@version=5
strategy("AIOMA-WMA Strategy", overlay=true)

// Parametreler
aioma_length = input(14, "AIOMA Length")
wma_length = input(21, "WMA Length")

// AIOMA hesaplama
length1 = aioma_length
ema1 = ta.ema(close, length1)
length2 = aioma_length
ema2 = ta.ema(ema1, length2)
length3 = aioma_length
ema3 = ta.ema(ema2, length3)
length4 = aioma_length
ema4 = ta.ema(ema3, length4)
aioma = ta.ema(ema4, aioma_length)

// WMA hesaplama
wma = ta.wma(close, wma_length)

// Kesişim kontrolü
cross_up = ta.crossover(wma, aioma)
cross_down = ta.crossunder(wma, aioma)

// İşlem fonksiyonu
enterTrade(dir, price, signalText, color) =>
    if dir
        strategy.entry("Enter", strategy.long)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_up, size = size.small, tooltip = "Entry Signal")
    else if not dir
        strategy.entry("Exit", strategy.short)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_down, size = size.small, tooltip = "Exit Signal")

// Long pozisyon girişi
if cross_up
    enterTrade(true, low, "Buy Signal", color.green)

// Short pozisyon girişi
if cross_down
    enterTrade(false, high, "Sell Signal", color.red)

// Pozisyon kapatma
if cross_up and strategy.position_size > 0
    strategy.close("Enter")
if cross_down and strategy.position_size < 0
    strategy.close("Exit")

// Grafiğe plot
plot(aioma, color=color.blue, linewidth=2, title="AIOMA")
plot(wma, color=color.red, linewidth=2, title="WMA")


もっと