
MACDバレー検出器戦略は,MACD指数に基づく取引戦略である.この戦略は,MACD指数の谷底を検出することによって買い信号を生成する.MACD指数が谷底を形成し,MACD値は−0.4より小さい場合,MACDと信号ラインの間の差が0より小さい場合,戦略は買い信号を発信し,同時にストップ価格を設定する.
MACDバレー検出器の策略の核心は, MACD指標を使用して,潜在的な反転の機会を捉えることです. MACD指標は,2つの指標の移動平均 ((EMA) の差から計算され,価格の動力の変化を反映しています. MACD指標が谷底を形成するときに,価格の下降動きが弱まる可能性があり,反転の可能性があることを示すものです.
この戦略は,MACDの谷底を判断するために以下の条件を使用します.
上記の条件が同時に満たされると,戦略はMACDの谷底が現れたと考え,買入シグナルを発する.同時に,戦略は,買入価格に加え固定価格差値 ((takeProfitValue) を加えた固定ストップ価格を設定する.
MACDバレー検出器戦略は,MACD指標の谷底を検出した取引戦略である. MACD指標の谷底をキャプチャすることによって,戦略は潜在的な反転機会を見つけ出し,購入しようとします. 戦略は,信号を確認するために複数の条件を使用し,固定ストップ価格を設定します. この戦略には,広く使用されているMACD指標と複数の条件の確認を使用するなどの利点があるにもかかわらず,いくつかのリスクと制限があります.
/*backtest
start: 2024-03-12 00:00:00
end: 2024-04-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © freditansari
//@version=5
//@version=5
strategy("MACD Valley Detector", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
rsi = ta.rsi(close, 14)
atr = ta.atr(14)
qty=1
takeProfitValue =7
// stopLossValue = 1
// close[0] < close[1] and close[1] > close[2]
is_valley= delta[0] > delta[1] and delta[1]<delta[2]? 1:0
// plot(is_valley , "valley?")
if(is_valley==1 and MACD<=-0.4 and delta <0)
takeProfit = close +takeProfitValue
action = "buy"
// strategy.entry("long", strategy.long, qty=qty)
// // strategy.exit("exit", "long", stop=stopLoss, limit=takeProfit)
// strategy.exit("exit", "long", limit=takeProfit)
alert('{"TICKER":"'+syminfo.ticker+'","ACTION":"'+action+'","PRICE":"'+str.tostring(close)+'","TAKEPROFIT":"'+str.tostring(takeProfit)+'","QTY":"'+str.tostring(qty)+'"}')
if (ta.crossover(delta, 0))
stopLoss = low -0.3
takeProfit = high +0.3
strategy.entry("MacdLE", strategy.long,qty=qty, comment="MacdLE")
strategy.exit("exit long", "MacdLE", limit=takeProfit)
// strategy.exit("exit long", "MacdLE", stop=stopLoss, limit=takeProfit)
if (ta.crossunder(delta, 0))
stopLoss = high + 0.3
takeProfit = low - 0.3
strategy.entry("MacdSE", strategy.short,qty=qty, comment="MacdSE")
strategy.exit("exit long", "MacdLE", limit=takeProfit)
// strategy.exit("exit short", "MacdSE", stop=stopLoss, limit=takeProfit)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)