Strategi Penjejakan Dua Hala Momentum Breakout


Tarikh penciptaan: 2023-12-18 10:47:46 Akhirnya diubah suai: 2023-12-18 10:47:46
Salin: 0 Bilangan klik: 625
1
fokus pada
1621
Pengikut

Strategi Penjejakan Dua Hala Momentum Breakout

Gambaran keseluruhan

Strategi ini menggabungkan penggunaan penunjuk momentum dan penunjuk pengesanan dua hala untuk menangkap isyarat pecah dalam trend yang kuat, untuk mencapai trend. Apabila harga pecah ke atas, lakukan lebih banyak, dan apabila harga pecah ke bawah, lakukan kosong.

Prinsip Strategi

  1. Menggunakan indikator aktivator HiLo untuk mengira harga pertengahan, indikator ini mengambil titik pertengahan antara harga tertinggi dan terendah sebagai harga pertengahan. Ia menghasilkan isyarat beli apabila harga naik menembusi harga pertengahan, dan menghasilkan isyarat jual apabila harga turun menembusi harga pertengahan.

  2. Indeks trend rata-rata ADX digunakan untuk menilai kekuatan trend. Nilai ADX yang lebih besar menunjukkan trend yang lebih kuat. Strategi ini bekerjasama dengan menggunakan ADX yang mempunyai nilai terendah untuk memfilter isyarat, dan hanya menghasilkan isyarat jika trend cukup kuat.

  3. Penunjuk pelbagai arah DI+ dan DI- masing-masing menunjukkan kekuatan multihead dan kekuatan kosong. Strategi ini bekerja dengan DI+ dan DI- dengan nilai terhad tertentu untuk mengesahkan kekuatan multihead dan kosong, untuk mengelakkan isyarat yang salah.

  4. Isyarat beli dihasilkan apabila harga naik menerobos harga pertengahan, ADX lebih tinggi daripada penurunan nilai, DI + lebih tinggi daripada penurunan nilai; isyarat jual dihasilkan apabila harga turun menerobos harga pertengahan, ADX lebih tinggi daripada penurunan nilai, DI - lebih tinggi daripada penurunan nilai.

Analisis kelebihan

Strategi ini menggabungkan kelebihan penunjuk momentum dan penunjuk trend, yang dapat menangkap penembusan harga pada awal perkembangan trend, sehingga dapat berjalan dengan ketat. Pada masa yang sama, syarat penapisan trend ketat, yang membantu mengelakkan isyarat salah di pasaran konsolidasi dan pasaran goyah.

Berbanding dengan menggunakan penunjuk momentum secara tunggal, strategi ini menambah penghakiman terhadap kekuatan trend semasa menghasilkan isyarat, dapat mengurangkan isyarat salah, meningkatkan kebarangkalian keuntungan. Berbanding dengan menggunakan penunjuk penjejakan trend secara tunggal, strategi ini menghasilkan isyarat dengan menerobos, dapat memasuki trend lebih awal.

Secara keseluruhannya, strategi ini dapat menjejaki trend dengan lancar, masuk dan keluar tepat pada masanya, dan mengelakkan kekacauan; dan juga dapat mengurangkan kerugian akibat pembalikan trend.

Analisis risiko

Terdapat risiko whipsaw tertentu dalam strategi ini, iaitu harga mungkin mengalami beberapa penyesuaian yang akan menghasilkan isyarat pembalikan. Di samping itu, penggunaan syarat penapis ADX dan DI mungkin akan kehilangan sebahagian peluang awal operasi.

Untuk mengurangkan risiko whipsaw, parameter aktivator HiLo boleh diselaraskan dengan betul untuk meningkatkan ketumpatan penembusan. Untuk mendapatkan lebih banyak peluang, anda boleh mengurangkan keperluan ADX dan DI, tetapi anda perlu mengimbangi kualiti isyarat.

Di samping itu, pengguna perlu memberi perhatian kepada perbezaan dalam pengaturan parameter dalam pelbagai jenis dan keadaan pasaran. Secara amnya, komoditi memerlukan tetapan nilai yang lebih tinggi; saham dan forex boleh menggunakan nilai yang lebih rendah.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan menyesuaikan tetapan parameter. Arahan pengoptimuman utama termasuk:

  1. Menyesuaikan kitaran pengaktif HiLo dan amplitudo pemicu, mengimbangi risiko whipsaw dan masa masuk.

  2. Menyesuaikan keperluan kitaran dan nilai ADX untuk menyeimbangkan kualiti isyarat dan frekuensi masuk.

  3. Menyesuaikan nilai terhad untuk DI berbilang dan kosong, untuk membezakan antara perbezaan persekitaran berbilang dan kosong.

  4. Tambah strategi berhenti-rugi, menetapkan titik berhenti-rugi untuk mengawal kerugian tunggal.

  5. Mengoptimumkan, dalam kombinasi dengan penunjuk tambahan, untuk meningkatkan kestabilan keseluruhan strategi.

ringkaskan

Strategi ini mengambil kira indikator momentum dan indikator trend secara menyeluruh, menghasilkan isyarat beli dan jual dalam trend yang kuat. Ia mempunyai ciri-ciri trend yang ketat, sesuai untuk menangkap peluang awal trend. Pada masa yang sama, ia juga mempunyai keupayaan kawalan risiko tertentu, yang dapat mengurangkan isyarat yang salah dan kerugian yang disebabkan oleh whipsaw. Dengan penambahan strategi penyesuaian parameter dan hentikan kerugian, strategi ini dapat memperoleh prestasi yang stabil secara berterusan.

Kod sumber strategi
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("HiLo Activator with ADX", shorttitle="HASB_ADX", overlay=true)

// Parameters for the HiLo Activator
length_ha = input(14, title="HiLo Activator Period")
offset_ha = input(0, title="Offset")
trigger_ha = input(1, title="Trigger for Buy/Sell")

// Parameters for ADX
adx_length = input(14, title="ADX Period", minval=1)
adx_threshold = input(25, title="ADX Threshold")
di_threshold = input(50, title="DI Threshold")

// Parameter for choosing the number of candles for backtest
backtest_candles = input(1000, title="Number of Candles for Backtest", minval=1)

// Function to get backtest data
getBacktestData() =>
    var float data = na
    if bar_index >= backtest_candles
        data := security(syminfo.tickerid, "D", close[backtest_candles])
    data

// HiLo Activator calculations
ha = (highest(high, length_ha) + lowest(low, length_ha)) / 2

// ADX calculations
trh = high - high[1]
trl = low[1] - low
tr = max(trh, trl)
atr = sma(tr, adx_length)
plus_dm = high - high[1] > low[1] - low ? max(high - high[1], 0) : 0
minus_dm = low[1] - low > high - high[1] ? max(low[1] - low, 0) : 0
smoothed_plus_dm = sma(plus_dm, adx_length)
smoothed_minus_dm = sma(minus_dm, adx_length)
di_plus = 100 * (smoothed_plus_dm / atr)
di_minus = 100 * (smoothed_minus_dm / atr)
dx = 100 * abs(di_plus - di_minus) / (di_plus + di_minus)
adx = sma(dx, adx_length)

// Buy and Sell signals based on HiLo Activator and ADX
signalLong = crossover(close, ha) and adx > adx_threshold and di_plus > di_threshold
signalShort = crossunder(close, ha) and adx > adx_threshold and di_minus > di_threshold

// Plot HiLo Activator and ADX
plot(ha, color=color.blue, title="HiLo Activator")
plot(offset_ha, color=color.red, style=plot.style_histogram, title="Offset")
plot(adx, color=color.purple, title="ADX")

// Backtest strategy
strategy.entry("Buy", strategy.long, when = signalLong)
strategy.entry("Sell", strategy.short, when = signalShort)
strategy.close("Buy", when = signalShort)
strategy.close("Sell", when = signalLong)

// Accuracy percentage
var accuracy = 0.0
var totalTrades = 0
var winningTrades = 0

if (signalLong or signalShort)
    totalTrades := totalTrades + 1

if (signalLong and (not na(signalLong[1]) and (not signalLong[1])))
    winningTrades := winningTrades + 1

if (signalShort and (not na(signalShort[1]) and (not signalShort[1])))
    winningTrades := winningTrades + 1

accuracy := totalTrades > 0 ? (winningTrades / totalTrades) * 100 : 0

// Plot accuracy percentage on the chart
plot(accuracy, title="Accuracy Percentage", color=color.purple, style=plot.style_histogram)