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

戦略をフォローする多動平均傾向 - EMAとSMA指標に基づく長期投資シグナルシステム

作者: リン・ハーンチャオチャン,日付: 2024年12月13日 10:28:02
タグ:エイマSMA

img

概要

この戦略は,複数の移動平均値の組み合わせに基づいたトレンドフォローシステムであり,主に,週EMA20,日々のSMA100,日々のSMA50,日々のEMA20の間のクロスオーバーとポジション関係を活用して,中長期投資機会を把握する.この戦略は,期間要件と組み合わせた価格と移動平均値の関係を観察することによって,潜在的なロングエントリーポイントを特定する.

戦略の原則

戦略の基本論理は次の主要な条件に基づいています

  1. 主要トレンドインジケーターとして20期間の週指数関数移動平均値 (EMA1W20) を使用する.
  2. 中央トレンド確認のための100日単一移動平均値 (SMA1D100) と組み合わせる
  3. 中期トレンド基準として50日間の単純な移動平均値 (SMA1D50) を使用する.
  4. 短期トレンド確認のために20日間指数関数移動平均値 (EMA1D20) を利用する. このシステムは,価格が14日連続でEMA1W20とSMA1D100を上回り,SMA1D50を下回るとロングシグナルを生成する.このデザインは,複数のタイムフレームでトレンド確認を組み合わせ,シグナル信頼性を高める.

戦略 の 利点

  1. 複数のタイムフレームの検証: より包括的なトレンド評価のために,週間の移動平均と日々の移動平均を組み合わせます.
  2. 厳格なエントリー条件: 価格が十分な期間,主要な移動平均値以上を維持することを要求し,誤った信号を効果的にフィルタリングする
  3. 合理的なリスク管理: 明確なリスク境界線のために複数の移動平均のクロスオーバーとポジションを使用する.
  4. 高い適応性: 戦略パラメータは,異なる市場環境に調整できます
  5. 明確な実行: 取引信号は明確に定義され,プログラム実行に適しています.

戦略リスク

  1. 遅延リスク: 移動平均値は本質的に遅延があるため,遅延したエントリを引き起こす可能性があります.
  2. 横向的な市場リスク: 変動する市場で頻繁に誤ったブレイクシグナルを生む可能性があります.
  3. パラメータ感度: 適正なパラメータは,異なる市場環境で異なる可能性があります.
  4. 引き上げリスク: 急激なトレンド逆転の際に大きな引き上げが発生する可能性があります.
  5. 実行リスク: 信号喪失や実行遅延を避けるため,安定したシステム運用が必要です.

戦略の最適化方向

  1. 音量指標を組み込む: 信号の信頼性を向上させるために音量確認メカニズムを追加する
  2. パラメータ調整を最適化する: ダイナミックなパラメータ調整メカニズムを開発する
  3. フィルタリング条件を追加:市場環境指標を追加することを検討する
  4. ストップ・ロスのメカニズムの改善: ストップ・ロスの詳細なルールと利益の取り決めを設計する
  5. 信号確認を強化する:補助確認のための他の技術指標を追加することを検討する.

概要

この戦略は,中期から長期投資家に適した複数の移動平均の組み合わせを通じて,比較的包括的なトレンドフォローシステムを確立する.特定の遅延およびパラメータ感度リスクがある一方で,適切なリスク制御と継続的な最適化により戦略は実用的な価値を持っています.投資家はリスクの好みや市場状況に基づいて適切な調整を行うことをお勧めします.


/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 1h
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/
// © petitepupu

//@version=5

ema20wTemp = ta.ema(close, 20)
ema20w = request.security(syminfo.tickerid, "1W", ema20wTemp, barmerge.gaps_on, barmerge.lookahead_off)
sma100d = ta.sma(close, 100)
sma50d = ta.sma(close, 50)
ema20d = ta.ema(close, 20)
daysAbove = input.int(14, title="Days", minval=1)
plot(ema20w, color=color.blue)
plot(sma100d, color=color.yellow)
plot(sma50d, color=color.red)
plot(ema20d, color=color.green)

longCondition = true
clean = true
for i = 0 to daysAbove
    if close[i] < ema20w or close[i] < sma100d or close > sma50d
        longCondition := false
        clean := false
        break

//TODO: 
if clean != true
    longCondition := true
    for i = 0 to daysAbove
        if close[i] > ema20w or close[i] > sma100d or close >= ema20d or -100 * (close - ema20d)/ema20d < 5.9
            longCondition := false
            break


// plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal", size = size.small)

if (longCondition)
    strategy.entry("Long", strategy.long)

    
strategy(title="LT Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=800)

関連性

もっと