MACD ゴールデンクロス ストラテジーをフォローする 200日間の移動平均トレンドでブレイク

作者: リン・ハーンチャオチャン, 日時: 2023-12-13 16:13:33
タグ:

img

概要

この戦略は,MACD指標を組み合わせて短期トレンドと200日移動平均を組み合わせて長期トレンドを決定する.MACDゴールデンクロスは低水準で発生し,価格が200日移動平均を突破した場合,ストップロスの後押しでロングポジションが確立される.この戦略は主にMACD指標の黄金クロスと死亡クロスと200日移動平均との関係を活用して潜在的な機会を特定する.

戦略の論理

この戦略は主にMACD指標と200日移動平均値に基づいて判断され,具体的な論理は以下です.

  1. MACD指標の高速線,スロー線,MACD線を計算します.高速線パラメータは12日,スローラインパラメータは26日,信号ラインパラメータは9日です.

  2. 200日間指数関数移動平均値 (EMA) を計算する.

  3. MACDの速い線がスローライン (ゴールデンクロス) を横切ると,MACD線がマイナス (低水準で走っている) で,閉じる価格は200日線以上で,ロングする.

  4. ポジションに入ると,ストップ・ロスの価格をエントリー価格の0.5%と,ターゲット価格をエントリー価格の1%に設定します.

  5. 価格がストップ・ロストまたはターゲット価格に触れたら,ストップ・ロストまたは利益を得てポジションを終了します.

  6. 日々の閉店前には15時15分までに 強制的に平坦化します

  7. 取引時間は毎日9時から15時15分までです

MACD指標で短期トレンド方向と勢いを判断し,200日移動平均値で長期トレンド方向を決定することで,操作後のトレンドを実現することができる.ストップロスは小さく設定され,ターゲット価格は利益を最大化するために大きく設定される.強制的な日々の出口は1日間のリスクを制御することができる.

戦略 の 利点

この戦略には以下の利点があります.

  1. 複数の指標を組み合わせることで,信号判断がより正確になります.MACDは短期的なトレンドと勢いを判断し,200日間のMAは主要なトレンド方向を判断します.

  2. ストップ・ロスは0.5%で,中期トレンドを追跡するのに便利です.

  3. 高い利益目標により,より多くの利益余地が与えられます. 目標はエントリー価格の1%であり,トレンド戦略の利益最大化に対応します.

  4. 強制的な日々の休息は,一晩で巨大な価格変動のリスクを避けるのに役立ちます.これは全体的なリスクを制御します.

  5. 戦略の論理はシンプルで明快で 理解し複製しやすいし 初心者でも学ぶのに適しています

戦略 の リスク

この戦略にはいくつかのリスクもあります:

  1. 疲労リスク.急上昇後,価格が急落し,損失を間に合わずに巨額の損失を引き起こす可能性があります.トレーラーストップ損失は,ストップ損失価格をリアルタイムで調整するために使用できます.

  2. トレンド決定の失敗リスク.MACDと移動平均値は誤った信号を与え,トレンドではない市場で損失を引き起こす可能性があります.トレンド加速段階でのみ入力することを確保するために,フィルタリングのために取引量指標を組み合わせることを検討してください.

  3. 日常的な緩和メカニズムにもかかわらず,一夜間の変動リスクは依然として存在します.これは,全体的なポジションサイズを制御しながら,ある程度のリスクに耐えることを要求します.

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

戦略は,次の側面でも最適化できます.

  1. 実際の動向を特定するために取引量指標を組み合わせ,不安定な統合中に誤ったエントリーを避ける.例えば,取引量が前期より10%増加するようにエントリールールを設定します.

  2. ダイナミックなストップ・ロスのメカニズムを設定します. 価格動きに基づいてエントリー後にストップ・ロスの価格を継続的に調整して,より多くの利益を追跡します.

  3. MACD パラメータの組み合わせとテストの有効性をさまざまな市場で最適化する. パラメータは信号の感受性に影響する.

  4. 他の移動平均値 例えば100日線や150日線をテストして どちらがトレンドに合っているか見てみましょう

  5. 再入口メカニズムを追加します. 日々の強制出口は次のトレンドを見逃す可能性がありますので,再入口信号は次の日に位置を維持することができます.

結論

この戦略は,シグナル判断のためにMACDと200日MAを統合している.短期指標が持続的なシグナルを与えるときに,ストップ損失と利益のメカニズムで,条件付きにトレンドに入ります.義務的な日々の休憩は,一夜間のリスクを制御します.この論理は,初心者が操作し,他の戦略に統合することは簡単です.しかし,トレンド決定失敗リスクと疲労リスクもあります.次のステップは,ストップ損失方法,パラメータ,取引量フィルターなどの側面を最適化して,全体的な利益因子を改善することができます.


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

//@version=4
strategy("MACD and 200 EMA Long Strategy", shorttitle="MACD200EMALong", overlay=true)

// Input parameters
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
ema200Length = input(200, title="200 EMA Length")
stopLossPercentage = input(0.5, title="Stop Loss Percentage")
targetPercentage = input(1, title="Target Percentage")

// Trading session
startHour = input(09, title="Start Hour", minval=0, maxval=23)
startMinute = input(00, title="Start Minute", minval=0, maxval=59)
endHour = input(15, title="End Hour", minval=0, maxval=23)
endMinute = input(15, title="End Minute", minval=0, maxval=59)

// Calculate MACD
[macdLine, signalLine, _] = macd(close, fastLength, slowLength, signalLength)

// Calculate 200-period EMA
ema200 = ema(close, ema200Length)

// Conditions for entering a long position
longCondition = crossover(macdLine, signalLine) and macdLine < 0 and close > ema200 and hour < 13

// Calculate stop loss and target levels only once at the entry
var float stopLossLevel = na
var float targetLevel = na

if (longCondition)
    stopLossLevel := close * (1 + stopLossPercentage / 100)


    targetLevel := close * (1 + targetPercentage / 100)

// Trading session condition
intradayCondition = true

// Strategy logic
strategy.entry("Long", strategy.long, when=longCondition and intradayCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=targetLevel)

// Force exit if the current close is below the stop loss level
if (not na(stopLossLevel) and close < stopLossLevel)
    strategy.close("Long")

// Exit the trade if the current close is greater than or equal to the target level
if (not na(targetLevel) and close >= targetLevel)
    strategy.close("Long")

// Manually force exit at 3:15 PM
if (hour == 15 and minute == 15)
    strategy.close("Long")

// Plotting the EMA, target, and stop loss on the chart
plot(ema200, color=color.blue, title="200 EMA")
plot(stopLossLevel, color=color.red, title="Stop Loss", linewidth=2)
plot(targetLevel, color=color.green, title="Target", linewidth=2)

// Plot entry arrow
plotshape(series=longCondition and intradayCondition, title="Long Entry", color=color.green, style=shape.triangleup, location=location.belowbar)


もっと