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

移動平均回帰戦略

作者: リン・ハーンチャオチャン開催日:2023年12月19日 11:55:25
タグ:

img

概要

移動平均回帰戦略は,価格移動平均のクロスオーバーを追跡し,金色のクロスが発生すると反トレンド取引を行うための回帰機会を特定する.この戦略は,フィボナッチ回帰線を使用して,短期的な価格回帰を捕捉するためにエントリーとストップ損失/利益のレベルを設定する.

戦略の論理

この戦略の核心は,二つの移動平均値である14日間のEMAと56日間のSMAを含んでいる.14日間のEMAが下から56日間のSMAを超えると購入信号を誘発する.その後,ストラテジーは20日後を振り返り,サポートとしてスイングローを見つけます.クロスオーバーポイントの閉値と組み合わせると,フィボナッチのプルバックラインが描かれ,入口として1.272プルバックライン,出口として0.618があります.したがって,ストラテジーはゴールデンクロス後にショートに行く入口ポイントを設定し,価格が本当に0.618ラインに戻ると利益を得ます.

この戦略の主要なステップは次のとおりです.

  1. 14日間のEMAと56日間のSMAを計算する.
  2. EMAが SMAの黄金十字信号の上を横切っているかどうかを確認する.
  3. 後ろを振り返って 低いスイングで支えを求めます
  4. 低点と交差点とフィボナッチの引き戻し線をグラフ化します
  5. 1.272回転ラインで短縮入口を設定します.
  6. 0.618回転線で利益停止を設定する.

上記は,この引き下げ戦略の主な作業流程と論理を説明します.これは短期的に価格が逆転するときに機会を掴むことを目的としています.

利点

この移動平均の引き下げ戦略の主要な利点は以下の通りである.

  1. 戦略のアイデアは単純で理解が容易です
  2. フィボナッチ理論を活用して より良いリスク管理を図る
  3. 短期的な逆転機会を把握して良い利益を得ることができる
  4. 移動平均金色十字が入力を誘発します

概要すると,これは短期間の平均逆転スタイル取引に非常に適しています. 利益を得るための引き下げ機会を把握します. 戦略は単純で実行が簡単です.

リスク

この戦略には 利点にも関わらず リスクもいくつかあります

  1. 長期保持は巨額の損失を招く 逆トレンドショート
  2. 引き戻し幅は小すぎて 利益を得られない
  3. 攻撃的な 引き戻しライン設定

リスクを軽減するために,損失を制御するための短いストップ・ロスの時間枠を設定し,合理的な利益目標を目指すため,引き戻しラインの範囲を最適化することができます.

増進 の 機会

この移動平均の引き下げ戦略を最適化するには まだ多くの余地があります

  1. 移動平均期,見直し日,フィボナッチ倍数などの項目に異なるパラメータ設定をテストして最適値を見つけます.

  2. ストップ・ロスのメカニズム (複数ストップやトライリング・ストップなど) を追加してリスクをより良くコントロールする.

  3. 不適切な市場条件を避けるため,他の指標をフィルターとして導入する.

  4. ポジションサイズとリスク管理のルールを最適化する.

厳格なテストと最適化によって この取引戦略に 重要な改善が達成できます

結論

移動平均引き戻し戦略は,非常に実践的な短期的取引戦略である. 短期的に価格が引き戻すときに平均引き戻し機会を捕獲する. 戦略の考え方はシンプルで理解しやすい. 最適化とリスク管理を通じて対処する必要があるリスクはまだあります. 全体的にこれはさらなる研究と適用に値する有望な定量戦略です.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MAC Pullback", overlay=true)

// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)

stopPeriodYear = input(2035, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)

// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)

// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)


// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28


// Locate Swing Lows
leftBars = input(20)
rightBars=input(20)
swinglow = pivotlow(close, leftBars, rightBars)
plot(swinglow, style=cross, linewidth=8, color=#00FF00, offset=-rightBars)

if goLong == true and time >= testPeriodStart and time <= testPeriodStop
    // We try to make sure that we're catching the first Pullback after the crossover
    if ema14[12] < sma56[12] 
        pivotpoint = lowest(40)[0] //lowest value of the month as our swing low
        
        // We calculate a Fib 1.272 extension (from the previous swing low to 
        // the crossover long entry's open) and use this as our entry target to short the Pullback
        extensiontarget = ((close[1] - pivotpoint) * 1.27) + pivotpoint
        shorttarget = ((close[1] - pivotpoint) * 0.618) + pivotpoint        
        
        strategy.order("Pullback", strategy.short, 5.0, limit=extensiontarget)
        // I would like to use a trailing stop but for know we just hope to get 
        // filled if the pullback reaches all the way down to the 0.618.
        // We also place a tight stop loss since we trying to short an uptrend
        strategy.exit("Pullback Exit", "Pullback", limit=shorttarget, loss=400)

もっと