Strategi perdagangan adaptif berdasarkan penunjuk momentum


Tarikh penciptaan: 2024-01-05 11:43:25 Akhirnya diubah suai: 2024-01-05 11:43:25
Salin: 0 Bilangan klik: 564
1
fokus pada
1619
Pengikut

Strategi perdagangan adaptif berdasarkan penunjuk momentum

Gambaran keseluruhan

Strategi ini adalah strategi dagangan saham penyesuaian diri berdasarkan indikator momentum. Ia menggabungkan tanda Brin, saluran Keltner dan penekanan harga, mewujudkan penilaian trend, pengenalan titik penembusan dan perdagangan sepenuhnya automatik untuk menghentikan kerugian.

Prinsip Strategi

Strategi ini terutamanya membina saluran harga melalui jalur Brin dan saluran Keltner, mengenal pasti penembusan saluran membentuk isyarat perdagangan. Apabila harga dari bawah ke atas menembusi saluran, mengambil tindakan bullish; Apabila harga dari atas ke bawah menembusi saluran, mengambil tindakan bearish.

Khususnya, tali pinggang Brin naik ke bawah dengan mengira perbezaan piawai harga; Saluran Keltner naik ke bawah dengan mengira nilai purata harga ± julat turun naik rata-rata. Apabila kedua-dua saluran fdopen berlaku, menganggap bahawa perdagangan masuk ke dalam pembatalan dan menunggu untuk memecahkan berikutnya.

Secara keseluruhannya, strategi ini menggabungkan pelbagai petunjuk untuk menentukan pergerakan harga, membentuk logik panjang dan pendek yang jelas, yang dapat menyaring penembusan palsu dengan berkesan dan mengenal pasti peluang perdagangan dengan kebarangkalian tinggi.

Kelebihan Strategik

  1. Mengintegrasikan pelbagai petunjuk, penilaian yang kuat. Kombinasi petunjuk dapat saling melengkapi, dapat meningkatkan ketepatan pengenalan.

  2. Menentukan perbezaan nilai penekanan, mengurangkan penembusan palsu. Nilai penekanan sebagai syarat tambahan, mengelakkan perdagangan yang tidak berguna.

  3. Penangguhan saluran yang beradaptasi sendiri, mengawal risiko dengan berkesan. Saluran sebagai kedudukan berhenti, boleh disesuaikan secara automatik mengikut turun naik pasaran, mengurangkan kerugian.

  4. Tetapan parameter mudah, sesuai untuk automasi. Hanya beberapa parameter utama, mudah untuk diuji dan dioptimumkan, mudah untuk diintegrasikan ke dalam sistem perdagangan automatik.

Risiko Strategik

  1. Apabila perpindahan pelbagai ruang sering berlaku, jumlah dagangan akan meningkat. Apabila pasaran bergolak, ia boleh menyebabkan pembukaan dan penutupan kedudukan yang kerap.

  2. Parameter penunjuk yang tidak betul mungkin kehilangan peluang yang baik. Perlu diuji dan dioptimumkan dengan baik untuk mencari parameter terbaik.

  3. Hanya sesuai untuk harga saham dengan arah yang jelas, tidak sesuai untuk pasaran yang sangat bergolak. Penunjuk mudah dikelirukan dan menghasilkan isyarat yang salah.

Arah pengoptimuman strategi

  1. Menambah modul kawalan kedudukan, mengoptimumkan kecekapan penggunaan dana. Sebagai contoh, peruntukan dana mengikut kekuatan penembusan dan sebagainya.

  2. Menambah model pembelajaran mesin untuk menyesuaikan parameter penunjuk secara dinamik. Membolehkan parameter penunjuk untuk menyesuaikan diri secara automatik dengan tempoh yang berbeza dan saham yang berbeza.

  3. Peningkatan strategi hentikan kerugian, memperkenalkan lebih banyak penunjuk tambahan untuk menentukan masa hentikan kerugian. Peningkatan dapat mengurangkan jumlah hentikan kerugian di titik-titik penting.

ringkaskan

Strategi ini mengintegrasikan Brin Belt, Keltner Channel, dan Indeks Kompresi Harga untuk membentuk logik penilaian yang jelas dan sistem kawalan risiko. Ia menggabungkan penilaian trend dan operasi terobosan yang dapat secara automatik menyesuaikan diri dengan keadaan dan mengenal pasti peluang perdagangan berkemungkinan tinggi. Dengan pengoptimuman parameter dan peningkatan syarat pembantu, strategi ini dapat diperkuat lagi dan menjadi alat penting untuk perdagangan kuantitatif.

Kod sumber strategi
/*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")