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

EMAの二重移動平均のクロスオーバー戦略

作者: リン・ハーンチャオチャン, 日付: 2024-06-07 15:58:15
タグ:エイママルチ

img

概要

この戦略は,価格動向の変化を把握するために2つの指数関数移動平均値 (EMA) を使用する.短期EMAが下から長期EMAを超えると,購入信号が生成され,短期EMAが上から長期EMAを下に突破すると,販売信号が生成される.この戦略は,単日損失と利益を制御するために,毎日ストップ・ロストとテイク・プロフィートの制限を設定する.

戦略の原則

  1. 短期EMA (デフォルト期間の9) と長期EMA (デフォルト期間の21) を計算する.
  2. 短期EMAが長期EMAを上回る時,ロングポジションを開く.短期EMAが長期EMAを下回る時,ショートポジションを開く.
  3. 各取引日の開始時に口座の自己資本を記録し,現在口座の自己資本と開始資本,すなわち日々の利益と損失の違いを計算する.
  4. 日当たりの損失が最大許容される損失を上回る場合 (初期口座資金の0.25%),すべてのポジションを閉じる.
  5. 日々の利益が最大許容される利益 (2% の初期口座資金) を超えると,すべてのポジションを閉じる.

戦略 の 利点

  1. シンプルで理解しやすい: 戦略の論理は明確で,取引信号を生成するために2つの移動平均のみを使用し,理解し実行するのが簡単です.
  2. トレンドフォロー: 急速なEMAと遅いEMAのクロスオーバーを使用することで,この戦略は価格動向の変化を比較的うまく把握し,トレンド市場での使用に適しています.
  3. リスク管理: 日々のストップ・ロストとテイク・プロフィートの制限は,一日の損失と利益を効果的に制御し,口座の過度の変動を防ぐことができます.

戦略リスク

  1. パラメータ最適化:戦略のパフォーマンスは,EMA期間選択に大きく依存し,異なるパラメータ設定が大きく異なる結果をもたらす可能性があります.したがって,パラメータ最適化とバックテストは,異なる市場環境で実行する必要があります.
  2. 不安定な市場: 不安定な市場では,価格が EMA の上下で変動し,多くの誤った信号を生成し,頻繁な取引と資本の侵食につながる可能性があります.
  3. トレンドの逆転:市場のトレンドが逆転すると,戦略は入場または退場を遅らせ,最高の取引機会を逃す可能性があります.

戦略の最適化方向

  1. RSIやMACDなどの他の技術指標を導入し,トレンド強さと方向性を判断し,信号の精度を向上させる.
  2. ストップ・ロストとテイク・プロフィートのルールを最適化し,トラッキング・ストップやダイナミック・テイク・プロフィートのレベルを用いることで,利益をより良く保護し,リスクを制御する.
  3. 市場変動に基づいて EMA 期間を動的に調整し,異なる市場状態に適応します.
  4. 経済データや主要なイベントなどの基本的分析を組み合わせて,取引信号をフィルタリングし確認します.

概要

EMAのダブル移動平均クロスオーバー戦略は,トレンド市場に適したシンプルで理解しやすい取引戦略である.高速および遅い移動平均のクロスオーバーを使用して,価格動向の変化を比較的うまく把握することができる.同時に,日々のストップ・ロストとテイク・プロフィート設定はリスクを効果的に制御することができる.しかし,戦略は不安定な市場またはトレンド逆転中に劣悪なパフォーマンスを発揮し,他の技術指標と分析方法を組み合わせることで最適化および改善する必要がある.


/*backtest
start: 2023-06-01 00:00:00
end: 2024-06-06 00:00:00
period: 1d
basePeriod: 1h
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/
// © DD173838

//@version=5
strategy("Moving Average Strategy with Daily Limits", overlay=true)

// Moving Average settings
shortMaLength = input.int(9, title="Short MA Length")
longMaLength = input.int(21, title="Long MA Length")

// Calculate MAs
shortMa = ta.ema(close, shortMaLength)
longMa = ta.ema(close, longMaLength)

// Plot MAs
plot(shortMa, title="9 EMA", color=color.blue)
plot(longMa, title="21 EMA", color=color.red)

// Strategy conditions
crossUp = ta.crossover(shortMa, longMa)
crossDown = ta.crossunder(shortMa, longMa)

// Debug plots to check cross conditions
plotshape(series=crossUp, title="Cross Up", location=location.belowbar, color=color.green, style=shape.labelup, text="UP")
plotshape(series=crossDown, title="Cross Down", location=location.abovebar, color=color.red, style=shape.labeldown, text="DOWN")

// Entry at cross signals
if (crossUp)
    strategy.entry("Long", strategy.long)

if (crossDown)
    strategy.entry("Short", strategy.short)

// Daily drawdown and profit limits
var float startOfDayEquity = na
if (na(startOfDayEquity) or ta.change(time('D')) != 0)
    startOfDayEquity := strategy.equity

maxDailyLoss = 50000 * 0.0025
maxDailyProfit = 50000 * 0.02
currentDailyPL = strategy.equity - startOfDayEquity

if (currentDailyPL <= -maxDailyLoss)
    strategy.close_all(comment="Max Daily Loss Reached")

if (currentDailyPL >= maxDailyProfit)
    strategy.close_all(comment="Max Daily Profit Reached")


関連性

もっと