週間の EMA に基づく日々の取引戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-20 17:11:52
タグ:

概要

この戦略の主な目的は,週間の時間枠から日々の取引までの EMA指標をマッピングすることであり,長期的なトレンドから支持を得,日々の取引決定を導くことです.

戦略原則

この戦略は,まず日表上の6日,12日,26日,52日 EMAと,週間のEMAパラメータ設定に対応する42日,84日,182日,364日 EMAを計算する.

次に,42日間のEMAと84日間のEMAの交差値が長期トレンドを決定するために使用され,84日間のEMAと182日間のEMAの交差値が中期トレンドを決定するために使用されます.

短期間 EMA が長期間 EMA を越えるときは,ロング;短期間 EMA が長期間 EMA を越えるときは,閉じる.

このマッピング方法によって 日々の取引で 週間のレベル EMA インジケーターからサポートを得ます 雑音をフィルターし より大きなトレンド機会を捉えるのに役立ちます

利点分析

この戦略は,日々の取引の柔軟性と週間のEMAの安定性を組み合わせ,以下の利点があります.

  1. 週間の EMA は,市場騒音を効果的にフィルターし,実際のトレンド動きを識別できます.日々のトレードでは,日々の形成に基づいてより正確なエントリを選択できます.

  2. 週間の EMA パラメータはより安定し,短期的な価格変動の影響は少なくなります.同時に,日々の形成とトレンド判断は,より迅速な出口をもたらします.

  3. EMAクロスは周期的なトレンド逆転点を明確に識別できます. 日常取引を通じてそれらを利用することで,比較的高い勝率を得ることができます.

  4. 異なる期間の EMA の組み合わせは,長期,中期,短期間のトレンド機会を把握します.

  5. この戦略は,取引頻度が低く,長期保有に適しています.過剰な取引によるスライプコストを削減します.

リスク分析

この戦略の主なリスクは,

  1. 週間のEMAエントリーシグナルが遅れており,最早の価格変動タイミングを把握できなくなります.

  2. エクシットは EMA 交差値に依存し,形状,変動等を考慮せずに,早期の退出につながる可能性があります.

  3. EMAの交差値が少ない場合,一方的な保有が長引く傾向があります.

  4. ストップ・ロスは不要で 引き上げリスクが高く 人工的な管理が必要です

  5. 粗いパラメータ調節,異なるコインで最適なパフォーマンスのために調整する必要があります.

リスクは以下によって軽減できます.

  1. 他の指標でエントリー形成を特定し EMA信号より先を行く

  2. オーバーホールディングを避けるために ストップ・ロスト,利益を取ることなど

  3. EMA期間を最適化し 異なるコインに適した期間コンボをテストします

  4. 多層取引,各階層のポジションのEMAが異なる,一方的な保有リスクが低い.

オプティマイゼーションの方向性

この戦略は,次の側面においてさらに最適化することができる.

  1. 雑音をフィルタリングするために,日々の入力に関するルール,例えば構成,音量などを追加します.

  2. ストックとMACDを組み合わせて 買い過ぎ/売過ぎを判断して より良い入口/出口をします

  3. ストップ・ロスを加え 利益を取って 引き下げを減らして 利益を固定します

  4. EMA期間を最適化し 異なる期間をテストします

  5. DEMA,TEMAのような EMAを試して 順調なパラメータを測ります

  6. 異なるEMA信号に基づいて位置サイズを追加します.

  7. 異なる取引対の調査パラメータ

  8. ダイナミック EMA 最適化のための機械学習方法を探求する.

結論

これは,長期保有に適した優れたトレンドフォロー戦略です. 週間のトレンド判断と日々の実行を巧みに組み合わせます. 適切な強化により,非常に実用的なマルチタイムフレーム取引システムになることができます.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=1

strategy("Investing Weekly mapped to Daily", overlay=true,  pyramiding=100)


// === PLOTTING EMA ===

plot(ema(close, 6), color=aqua, transp=0, linewidth=2, title="ema6")
plot(ema(close, 12), color=white, transp=0, linewidth=2, title="ema12")
plot(ema(close, 26), color=#9802FF, transp=0, linewidth=2, title="ema26")
plot(ema(close, 52), color=orange, transp=0, linewidth=2, title="ema52")
plot(ema(close, 42), color=aqua, transp=0, linewidth=5, title="W-ema6")
plot(ema(close, 84), color=white, transp=0, linewidth=5, title="W-ema12")
plot(ema(close, 182), color=#9802FF, transp=0, linewidth=5, title="W-ema26")
plot(ema(close, 364), color=orange, transp=0, linewidth=5, title="W-ema52")


// === INPUT BACKTEST RANGE ===

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2017, title = "From Year", minval = 2017)
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 = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


// === STRATEGY FOR CRYPTO ===

ema42= ema(close, 42)
ema84= ema(close, 84)
ema182= ema(close, 182)

enterLong1 = cross(ema42, ema84) and ema42 > ema84
exitLong1 = cross(ema42, ema84) and ema42 < ema84

enterLong2 = cross(ema84, ema182) and ema84 > ema182
exitLong2 = cross(ema84, ema182) and ema84 < ema182


strategy.entry(id="Entry_1", long=true, when=enterLong1)
strategy.entry(id="Entry_2", long=true, when=enterLong2)
strategy.entry(id="Exit_1", long=false, when=exitLong1)
strategy.entry(id="Exit_2", long=false, when=exitLong2)


もっと