Strategi perdagangan adaptif berdasarkan indikator momentum

Penulis:ChaoZhang, Tanggal: 2024-01-05 11:43:25
Tag:

img

Gambaran umum

Strategi ini adalah strategi perdagangan saham adaptif berdasarkan indikator momentum. Ini mengintegrasikan Bollinger Bands, Saluran Keltner dan indikator pemerah harga untuk mencapai penilaian tren, identifikasi titik terobosan dan stop-loss exit untuk perdagangan otomatis.

Prinsip Strategi

Inti dari strategi ini adalah untuk membangun saluran harga melalui Bollinger Bands dan Keltner Channels dan mengidentifikasi sinyal perdagangan ketika harga menembus saluran. Ini akan mengambil posisi panjang ketika harga menembus saluran dan mengambil posisi pendek ketika harga menembus saluran. Selain itu, ketika harga ditekan di saluran, strategi akan menentukan arah operasi berdasarkan nilai positif dan negatif dari indikator penekanan harga.

Secara khusus, Bollinger Bands menghitung standar deviasi harga untuk memetakan rel atas dan bawah; Saluran Keltner memetakan rel atas dan bawah berdasarkan rentang volatilitas harga rata-rata ± rata-rata. Ketika fusi saluran terjadi antara keduanya, dianggap bahwa pasar memasuki konsolidasi sambil menunggu pecah berikutnya. Indikator pemampatan harga mencerminkan apakah harga dikompresi antara dua saluran. Strategi menentukan arah pasar berdasarkan nilai positif dan negatif dari indikator pemampatan.

Singkatnya, strategi ini mengintegrasikan beberapa indikator untuk menilai pergerakan harga dan membentuk logika panjang dan pendek yang jelas, yang dapat secara efektif menyaring breakout palsu dan mengidentifikasi peluang perdagangan dengan probabilitas tinggi.

Keuntungan dari Strategi

  1. Mengintegrasikan beberapa indikator dengan kemampuan penilaian yang kuat Kombinasi indikator dapat meningkatkan akurasi.

  2. Squeeze indikator perbedaan untuk menentukan, mengurangi false breakout. perbedaan indikator berfungsi sebagai kondisi tambahan untuk menghindari perdagangan yang tidak perlu.

  3. Saluran stop loss adaptif, mengelola risiko secara efektif. Saluran berfungsi sebagai posisi stop loss, yang dapat menyesuaikan secara otomatis berdasarkan fluktuasi pasar untuk mengurangi kerugian.

  4. Pengaturan parameter sederhana, cocok untuk otomatisasi. Dengan hanya beberapa parameter kunci, mudah untuk menguji, mengoptimalkan dan mengintegrasikan ke dalam sistem perdagangan otomatis.

Risiko dari Strategi

  1. Sering beralih panjang-pendek ketika pasar berfluktuasi tajam, menyebabkan peningkatan jumlah perdagangan.

  2. Parameter indikator yang tidak benar dapat kehilangan peluang perdagangan yang baik.

  3. Hanya berlaku untuk saham dengan arah yang jelas, tidak cocok untuk pasar yang sangat volatile.

Arahan Optimasi

  1. Meningkatkan modul kontrol posisi untuk mengoptimalkan efisiensi pemanfaatan modal.

  2. Meningkatkan model pembelajaran mesin untuk menyesuaikan parameter indikator secara dinamis, memungkinkan indikator untuk menyesuaikan diri secara otomatis dengan siklus yang berbeda dan saham yang berbeda.

  3. Meningkatkan strategi stop loss dengan memperkenalkan lebih banyak indikator tambahan untuk menentukan waktu stop loss.

Kesimpulan

Strategi ini mengintegrasikan Bollinger Bands, Saluran Keltner dan indikator tekanan harga untuk membentuk logika yang jelas untuk sistem penilaian dan pengendalian risiko. Ini menggabungkan penilaian tren dan operasi breakout, dapat secara otomatis beradaptasi dengan kondisi pasar dan mengidentifikasi peluang perdagangan probabilitas tinggi. Dengan optimasi parameter lebih lanjut dan peningkatan kondisi tambahan, strategi ini dapat lebih diperkuat menjadi alat penting untuk perdagangan kuantitatif.


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © juliopetronilo

//@version=4
strategy("DMI/ADX/Squeeze Robot", shorttitle="DMI/ADX/SQZ", overlay=true)

// Squeeze Momentum Indicator
length = input(20, title="BB Length")
mult = input(2.0, title="BB MultFactor")
lengthKC = input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
useTrueRange = input(true, title="Use TrueRange (KC)")

source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

ma = sma(source, lengthKC)
rangeKC = useTrueRange ? tr : (high - low)
rangema = sma(rangeKC, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz = not (sqzOn or sqzOff)

val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)), sma(close, lengthKC)), lengthKC, 0)

// DMI/ADX Plot
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
keyLevel = input(23, title="Key Level for ADX")

dirmov(len) =>
    up = change(high)
    down = -change(low)
    truerange = rma(tr, len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx_val = abs(plus - minus) / (sum == 0 ? 1 : sum) * 100
    [adx_val, plus, minus]

[sig, up, down] = adx(dilen, adxlen)

// Estrategia de Trading
strategy.entry("Buy", strategy.long, when=sqzOn and crossover(up, down) and crossover(val, 0))
strategy.entry("Sell", strategy.short, when=sqzOn and crossunder(up, down) and crossunder(val, 0))
strategy.close("Buy", when=sqzOff)
strategy.close("Sell", when=sqzOff)

// Plot de los indicadores
plot(val, color=color.blue, style=plot.style_histogram, linewidth=4)
plot(0, color=noSqz ? color.blue : sqzOn ? color.black : color.rgb(236, 238, 247), style=plot.style_cross, linewidth=2)
plot(up, color=color.blue, title="+DI")
plot(down, color=color.gray, title="-DI")
plot(keyLevel, color=color.white, title="Key Level")



Lebih banyak