Strategi Pasaran Penyesuaian Gelombang Donqi'an


Tarikh penciptaan: 2023-10-26 15:58:52 Akhirnya diubah suai: 2023-10-26 15:58:52
Salin: 0 Bilangan klik: 481
1
fokus pada
1166
Pengikut

Strategi Pasaran Penyesuaian Gelombang Donqi’an

Gambaran keseluruhan

Strategi ini berdasarkan kepada indikator saluran Donchian untuk mencapai penyesuaian untuk mengikuti pergerakan pasaran, melakukan perdagangan trend. Apabila harga menembusi saluran Donchian, lakukan trend pelacakan; Apabila harga kembali ke saluran, lakukan penangguhan kerugian.

Prinsip Strategi

  1. Hitung harga tertinggi dan terendah dalam tempoh tertentu, membentuk saluran Tongjian. Garis tengah saluran adalah purata harga tertinggi dan terendah dalam tempoh tersebut.

  2. Apabila harga menembusi saluran atas, bukaan posisi berbilang; apabila harga menembusi saluran bawah, bukaan posisi kosong.

  3. Selepas membuka kedudukan, garisan hentian mengesan garisan tengah saluran; garisan hentian mengesan harga sebahagian daripada saluran penembusan.

  4. Apabila harga kembali ke dalam saluran, lakukan penutupan kerugian.

Analisis kelebihan

  1. Strategi ini menggunakan saluran Tongxian untuk menentukan arah trend, dan dapat menangkap terobosan pasaran dengan cepat.

  2. Menggunakan saluran tengah untuk menjejaki hentian kerugian, anda boleh mencapai perlindungan keuntungan.

  3. Mengambil peluang untuk memperbesar ruang keuntungan mengikut tetapan pengguna.

  4. Boleh menyesuaikan diri dengan keadaan yang berbeza, seperti penataan, penembusan, penyesuaian, dan sebagainya, menyesuaikan kedudukan dengan fleksibel.

  5. Strategi perdagangan logiknya mudah difahami dan mudah difahami.

Analisis risiko

  1. Strategi ini hanya berdasarkan kepada penembusan saluran dagangan dan tidak dapat bertindak balas dengan berkesan terhadap pasaran yang disusun semula.

  2. Terdapat risiko penembusan isyarat palsu, yang perlu disahkan bersama-sama dengan petunjuk lain.

  3. Ia boleh menyebabkan kerugian awal atau keuntungan yang kurang.

  4. Pengaturan kitaran saluran yang tidak betul akan menjejaskan ketepatan isyarat perdagangan.

  5. Posisi yang terlalu besar akan memperbesar kesan turun naik pasaran terhadap akaun.

  6. Perdagangan robot berisiko terganggu secara tidak sengaja dan perlu memastikan sistemnya stabil dan boleh dipercayai.

Pengoptimuman Strategi

  1. Berpadu dengan petunjuk jumlah dagangan, mengelakkan penembusan palsu.

  2. Meningkatkan penghakiman indikator trend dan meningkatkan ketepatan isyarat untuk membuka kedudukan.

  3. Mengoptimumkan algoritma Stop Loss Stop Loss, mewujudkan penyesuaian dinamik.

  4. Menyesuaikan strategi pengurusan kedudukan dalam masa nyata mengikut keadaan pasaran.

  5. Mengkaji data pada waktu malam dan sebelum waktu malam untuk mencari peluang masuk yang lebih baik.

  6. Uji Parameter Perkembangan Berbeza untuk Mencari Kombinasi Parameter Terbaik

  7. Tambah modul pengesahan model untuk mengelakkan overfit.

ringkaskan

Strategi ini secara keseluruhan adalah strategi trend penyesuaian diri yang lebih mudah dan praktikal. Ia mempunyai ciri-ciri seperti penangkapan tren yang cepat, perlindungan keuntungan.

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

//Noro
//2020

//@version=4
strategy(title = "Noro's Donchian Strategy", shorttitle = "Donchian str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
tp = input(defval = 10, minval = 1, title = "Take profit")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
pclen = input(50, minval = 1, title = "Price Channel Length")
showll = input(true, defval = true, title = "Show lines")
showbg = input(false, defval = false, title = "Show Background")
showof = input(true, defval = true, title = "Show Offset")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Price Channel
h = highest(high, pclen)
l = lowest(low, pclen)
center = (h + l) / 2
tpl = h * (100 + tp) / 100
tps = l * (100 - tp) / 100

//Lines
tpcol = showll ? color.lime : na
pccol = showll ? color.blue : na
slcol = showll ? color.red : na
offset = showof ? 1 : 0
plot(tpl, offset = offset, color = tpcol, title = "TP Long")
plot(h, offset = offset, color = pccol, title = "Channel High")
plot(center, offset = offset, color = slcol, title = "Cannel Center")
plot(l, offset = offset, color = pccol, title = "Channel Low")
plot(tps, offset = offset, color = tpcol, title = "TP Short")

//Background
size = strategy.position_size
bgcol = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(bgcol, transp = 70)

//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
mo = 0
mo := strategy.position_size != 0 ? 0 : high >= center and low <= center ? 1 : mo[1]
if h > 0
    strategy.entry("Long", strategy.long, lot, stop = h, when = strategy.position_size <= 0 and needlong and truetime and mo)
    strategy.exit("TP Long", "Long", limit = tpl, stop = center)
    strategy.entry("Short", strategy.short, lot, stop = l, when = strategy.position_size >= 0 and needshort and truetime and mo)
    strategy.exit("TP Short", "Short", limit = tps, stop = center)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")