MACD Valley Detector戦略は,MACD指標に基づいた取引戦略である.この戦略は,MACD指標内の谷を検出することによって買い信号を生成する.MACD指標が谷を形成すると,MACD値は -0.4未満またはそれと同等で,MACDとその信号線の差は0未満である.この戦略は買い信号を発し,取利益価格を設定する.
MACD Valley Detector戦略の核心は,潜在的な逆転機会を把握するためにMACD指標を使用することです.MACD指標は,価格の勢力の変化を反映する2つの指数関数移動平均値 (EMA) の違いによって計算されます.MACD指標が谷を形成すると,価格の下向きの勢力が弱まり,逆転の可能性があることを示唆します.
この戦略は,MACDバレーを決定するために以下の条件を使用します.
上記条件が同時に満たされた場合,戦略はそれをMACDバレーとみなし,購入信号を発行します.同時に,戦略は固定得益価格を設定します.これは購入価格と固定価格差 (takeProfitValue) です.
MACDバレー検出器戦略は,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)