移動平均回帰戦略は,価格移動平均のクロスオーバーを追跡し,金色のクロスが発生すると反トレンド取引を行うための回帰機会を特定する.この戦略は,フィボナッチ回帰線を使用して,短期的な価格回帰を捕捉するためにエントリーとストップ損失/利益のレベルを設定する.
この戦略の核心は,二つの移動平均値である14日間のEMAと56日間のSMAを含んでいる.14日間のEMAが下から56日間のSMAを超えると購入信号を誘発する.その後,ストラテジーは20日後を振り返り,サポートとしてスイングローを見つけます.クロスオーバーポイントの閉値と組み合わせると,フィボナッチのプルバックラインが描かれ,入口として1.272プルバックライン,出口として0.618があります.したがって,ストラテジーはゴールデンクロス後にショートに行く入口ポイントを設定し,価格が本当に0.618ラインに戻ると利益を得ます.
この戦略の主要なステップは次のとおりです.
上記は,この引き下げ戦略の主な作業流程と論理を説明します.これは短期的に価格が逆転するときに機会を掴むことを目的としています.
この移動平均の引き下げ戦略の主要な利点は以下の通りである.
概要すると,これは短期間の平均逆転スタイル取引に非常に適しています. 利益を得るための引き下げ機会を把握します. 戦略は単純で実行が簡単です.
この戦略には 利点にも関わらず リスクもいくつかあります
リスクを軽減するために,損失を制御するための短いストップ・ロスの時間枠を設定し,合理的な利益目標を目指すため,引き戻しラインの範囲を最適化することができます.
この移動平均の引き下げ戦略を最適化するには まだ多くの余地があります
移動平均期,見直し日,フィボナッチ倍数などの項目に異なるパラメータ設定をテストして最適値を見つけます.
ストップ・ロスのメカニズム (複数ストップやトライリング・ストップなど) を追加してリスクをより良くコントロールする.
不適切な市場条件を避けるため,他の指標をフィルターとして導入する.
ポジションサイズとリスク管理のルールを最適化する.
厳格なテストと最適化によって この取引戦略に 重要な改善が達成できます
移動平均引き戻し戦略は,非常に実践的な短期的取引戦略である. 短期的に価格が引き戻すときに平均引き戻し機会を捕獲する. 戦略の考え方はシンプルで理解しやすい. 最適化とリスク管理を通じて対処する必要があるリスクはまだあります. 全体的にこれはさらなる研究と適用に値する有望な定量戦略です.
/*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)