MACDに基づく長期戦略


作成日: 2024-01-12 11:02:06 最終変更日: 2024-01-12 11:02:06
コピー: 0 クリック数: 639
1
フォロー
1617
フォロワー

MACDに基づく長期戦略

概要

この戦略は,MACD指数と長線平和ポジションラインに基づいて,通貨ペアの長線取引を実現する.MACD指数ラインが長線を横切るときにポジションを開く,MACD指数ラインが平線を横切るときに平線を横切る.同時に,ストップ損失戦略を設定する.

戦略原則

この策略は,MACD指標の快線と慢線を使用する.快線は12日EMA,慢線は26日EMAである.両均線間の差はMACD柱状図である.また,9日EMAを信号線として計算する.MACD柱状図上を0.04穿越すると多し,下を0.015穿越すると平らである.また,5%のストップロスを設定する.

具体的には,戦略はまずMACD指標の快線,慢線,信号線を計算する.その後,長線を−0.04,平線を0.015に設定する.現在のMACD柱状図が長線より大きい場合は,多行し,現在のMACD柱状図が平線より小さい場合は,多行する.さらに,スタンプ・ロスの線を開設価格の95%に設定する.

優位分析

この戦略の利点は以下の通りです.

  1. MACD指標を用いて市場動向を判断し,高い精度
  2. 長い線と線を二重フィルタリングして誤信号を回避する.
  3. ストップ・ロスの戦略を設定し,リスクを効果的にコントロールする
  4. シンプルで明快で 論理的で 分かりやすく実行できます
  5. MACDの指標のみで,リソースが少ない

リスク分析

この戦略にはリスクもあります.

  1. MACDは後退しており,ショートラインの機会を逃している可能性があります.
  2. ストップ・ロースの設定は保守的で,長線トレンドを継続的に追跡できない
  3. パラメータの設定は,反復テストで最適化される必要があり,そうでないと過適合する可能性があります.
  4. 他の通貨の有効性は疑わしい

適切なパラメータの調整,他の指標の組み合わせなどの方法によって最適化および改善することができます.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 異なるMACDパラメータの組み合わせをテストし,より優れたパラメータを探します.

短線,遅線,信号線の長さを試して 合っているものを探すことができます

  1. 他の指標をテストする

RSIやKDなどの指標は,まったく異なる効果をもたらす可能性があります.

  1. 長線とポジション線のパラメータを最適化

長期平衡のパラメータは,データを反復測定してより適切なパラメータを見つけることができます.

  1. ストップ・ロスの策略の調整

ストップダメージを動的に追跡するために,トレイルストップなどの方法を考えることができます.

  1. 複数の通貨ペアのテスト

戦略を他の通貨ペアにも適用し,効果を調べる

要約する

この戦略overallは,非常にシンプルで直感的な長線取引戦略である。 MACD指標を使用して状況を判断し,二重フィルタリング条件を設定して誤取引を減らす。同時に,リスクを制御するためにストップを配置している。この戦略は,論理が明確で,リソースが占められず,理解し,実行しやすいので,推奨に値する。もちろん,パラメータ最適化,指標調整などの手段によって,この戦略には,大きな改善の余地があり,効果をさらに優れたものにすることができる。

ストラテジーソースコード
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "GBPJPY MACD", title = "GBPJPY MACD")
fastMA = input(title="Fast moving average",  defval = 12, minval = 7)
slowMA = input(title="Slow moving average",  defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)

//MACD
// Getting inputs
fast_length = input(title="Fast Length",  defval=12)
slow_length = input(title="Slow Length",  defval=26)
src = input(title="Source",  defval=close)
signal_length = input(title="Signal Smoothing",  minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

//plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
///END OF MACD

//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.04)
linesell = input(title="Close Long", type=float, defval=0.015)

//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)


//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100


//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, linesell)
stop_level = strategy.position_avg_price * (1 - sl_inp)


//Order Entries
strategy.entry("long", strategy.long,  when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)