Strategi perdagangan callback terobosan mewujudkan perdagangan callback terobosan di bawah trend tertentu dengan mengira indeks kekuatan mutlak dan indeks harga MACD. Ia tergolong dalam strategi perdagangan jangka pendek. Strategi ini mengintegrasikan beberapa penunjuk untuk menilai trend utama, trend jangka sederhana dan trend jangka pendek. Ia menjalankan urus niaga penjejakan trend melalui isyarat pengesahan trend yang sejajar dan penambah tanda.
Strategi ini terutamanya bergantung pada indeks kekuatan mutlak dan indeks MACD harga untuk melaksanakan perdagangan callback terobosan. Pertama, ia mengira EMA harga 9 tempoh, 21 tempoh dan 50 tempoh untuk menilai arah trend utama; kemudian ia mengira indeks kekuatan mutlak harga untuk mencerminkan kekuatan penyesuaian jangka pendek; akhirnya ia mengira indeks MACD untuk menilai arah trend jangka pendek. Ia membeli apabila trend utama menaik dan terdapat penyesuaian jangka pendek; ia menjual apabila trend utama menurun dan terdapat pemulihan jangka pendek.
Secara khusus, trend menaik utama varieti memerlukan EMA 9 hari lebih tinggi daripada EMA 21 hari, dan EMA 21 hari lebih tinggi daripada EMA 50 hari. Kriteria untuk menilai penyesuaian jangka pendek adalah bahawa perbezaan indeks kekuatan mutlak adalah kurang daripada 0 dan MACDDIFF adalah kurang daripada 0.
Strategi ini mempunyai kelebihan berikut:
Strategi ini juga mempunyai beberapa risiko:
Sebagai tindak balas kepada risiko di atas, kaedah seperti mengoptimumkan parameter, menilai penunjuk kitaran yang berbeza, menyesuaikan peraturan kedudukan untuk mengawal kerugian tunggal, menggabungkan lebih banyak penunjuk untuk menapis isyarat, dan meningkatkan ketepatan boleh digunakan untuk meningkatkan strategi.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Ringkasnya, strategi perdagangan callback terobosan umumnya merupakan strategi perdagangan jangka pendek yang agak stabil. Ia menggabungkan penilaian trend pelbagai jangka masa untuk mengelakkan transaksi yang salah di pasaran berayun. Pada masa yang sama, penggunaan gabungan penunjuk juga meningkatkan ketepatan penilaian. Melalui ujian dan pengoptimuman berikutnya, strategi ini boleh menjadi strategi yang stabil yang patut 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)