
この戦略は,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%に設定する.
この戦略の利点は以下の通りです.
この戦略にはリスクもあります.
適切なパラメータの調整,他の指標の組み合わせなどの方法によって最適化および改善することができます.
この戦略は以下の点で最適化できます.
短線,遅線,信号線の長さを試して 合っているものを探すことができます
RSIやKDなどの指標は,まったく異なる効果をもたらす可能性があります.
長期平衡のパラメータは,データを反復測定してより適切なパラメータを見つけることができます.
ストップダメージを動的に追跡するために,トレイルストップなどの方法を考えることができます.
戦略を他の通貨ペアにも適用し,効果を調べる
この戦略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)