Strategi perdagangan callback terobosan mewujudkan perdagangan callback terobosan di bawah tren tertentu dengan menghitung indeks kekuatan absolut dan indeks MACD harga. Ini termasuk dalam strategi perdagangan jangka pendek. Strategi ini mengintegrasikan beberapa indikator untuk menilai tren utama, tren jangka menengah dan tren jangka pendek.
Strategi ini terutama mengandalkan indeks kekuatan mutlak dan indeks MACD harga untuk menerapkan perdagangan callback terobosan. Pertama, menghitung EMA harga 9 periode, 21 periode dan 50 periode untuk menilai arah tren utama; kemudian menghitung indeks kekuatan mutlak harga untuk mencerminkan kekuatan penyesuaian jangka pendek; akhirnya menghitung indeks MACD untuk menilai arah tren jangka pendek.
Secara khusus, tren kenaikan utama varietas membutuhkan EMA 9 hari lebih tinggi dari EMA 21 hari, dan EMA 21 hari lebih tinggi dari EMA 50 hari. Kriteria untuk menilai penyesuaian jangka pendek adalah bahwa perbedaan indeks kekuatan absolut kurang dari 0 dan MACDDIFF kurang dari 0.
Strategi ini memiliki keuntungan berikut:
Strategi ini juga memiliki beberapa risiko:
Menanggapi risiko di atas, metode seperti mengoptimalkan parameter, menilai indikator siklus yang berbeda, menyesuaikan aturan posisi untuk mengendalikan kerugian tunggal, menggabungkan lebih banyak indikator untuk menyaring sinyal, dan meningkatkan akurasi dapat digunakan untuk meningkatkan strategi.
Strategi dapat dioptimalkan dalam aspek berikut:
Ringkasnya, strategi perdagangan callback terobosan umumnya merupakan strategi perdagangan jangka pendek yang relatif stabil. Strategi ini menggabungkan penilaian tren multi-frame timeframe untuk menghindari transaksi yang salah di pasar yang berosilasi. Pada saat yang sama, penggunaan indikator yang dikombinasikan juga meningkatkan keakuratan penilaian. Melalui pengujian dan pengoptimalan berikutnya, strategi ini dapat menjadi strategi yang stabil yang layak dipegang untuk jangka panjang.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Divergence Scalper [30MIN]", overlay=true , commission_value=0.04 ) message_long_entry = input("long entry message") message_long_exit = input("long exit message") message_short_entry = input("short entry message") message_short_exit = input("short exit message") //3x ema out9 = ta.ema(close,9) out21 = ta.ema(close,21) out50 = ta.ema(close,50) //abs absolute_str_formula( ) => top=0.0 bottom=0.0 if(close>close[1]) top:= nz(top[1])+(close/close[1]) else top:=nz(top[1]) if(close<=close[1]) bottom:= nz(bottom[1])+(close[1]/close) else bottom:=nz(bottom[1]) if (top+bottom/2>=0) 1-1/(1+(top/2)/(bottom/2)) abs_partial=absolute_str_formula() abs_final = abs_partial - ta.sma(abs_partial,50) //macd fast_length = input(title="Fast Length", defval=23) slow_length = input(title="Slow Length", defval=11) src = input(title="Source", defval=open) signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 6) sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) sma_signal = input.string(title="Signal Line MA Type", defval="SMA", options=["SMA", "EMA"]) // Calculating fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) hist = macd - signal long= abs_final > 0 and hist <0 and out9<out21 and out21<out50 short = abs_final <0 and hist >0 and out9>out21 and out21>out50 long_exit = abs_final <0 and hist >0 and out9>out21 and out21>out50 short_exit = abs_final > 0 and hist <0 and out9<out21 and out21<out50 strategy.entry("long", strategy.long, when = long and barstate.isconfirmed, alert_message = message_long_entry) strategy.entry("short", strategy.short, when = short and barstate.isconfirmed, alert_message = message_short_entry) strategy.close("long", when = long_exit and barstate.isconfirmed, alert_message = message_long_exit) strategy.close("short", when = short_exit and barstate.isconfirmed, alert_message = message_short_exit)