Strategi Perdagangan Dua Arah Indeks Arah


Tanggal Pembuatan: 2023-12-19 14:13:52 Akhirnya memodifikasi: 2023-12-19 14:13:52
menyalin: 0 Jumlah klik: 669
1
fokus pada
1621
Pengikut

Strategi Perdagangan Dua Arah Indeks Arah

Ringkasan

Strategi ini memungkinkan perdagangan dua arah barang dengan menghitung indeks pergerakan barang ((DI) dan menggabungkan parameter pembatasan. Lakukan lebih banyak ketika DI + lebih besar dari DI - satu parameter pembatasan, dan kosong ketika DI - lebih besar dari DI + satu parameter pembatasan.

Prinsip Strategi

Indikator inti dari strategi ini adalah indeks dinamika ((DI)). DI dihitung dengan rumus berikut:

DI+ = (DM+ / real range) × 100 DI- = (DM- / real range) × 100

Di mana DM+ mewakili pergerakan multihead, DM- mewakili pergerakan kosong kepala. Sementara itu, real range mewakili volatilitas baru-baru ini dengan menghitung nilai maksimum dari tiga hari harga tertinggi, harga terendah dan harga penutupan kemarin.

Menurut definisi DI, ketika DI+ > DI- , menunjukkan bahwa kekuatan multihead lebih besar dari kekuatan kosong, termasuk pasar multihead; ketika DI- > DI+ , menunjukkan kekuatan kosong lebih kuat dari kekuatan multihead, termasuk pasar kosong.

Strategi ini menggunakan fitur ini untuk menetapkan parameter pembatasan. Jika DI+ lebih besar dari DI-satu parameter pembatasan, maka dipastikan bahwa saat ini adalah pasar multihead, lakukan over; Jika DI-lebih besar dari DI+ satu parameter pembatasan, maka dipastikan saat ini adalah pasar kosong, lakukan over.

Misalnya, jika parameter pembatasan disetel ke 3, maka aturan transaksi spesifiknya adalah:

  1. Ketika DI+ - DI- > 3, lakukan lebih banyak
  2. Di-DI - DI+ > 3, kosongkan

Karena sering ada perbedaan yang lebih kecil antara DI+ dan DI- , pengaturan parameter pembatasan dapat memfilter beberapa sinyal perdagangan yang tidak memiliki arah yang jelas, mengurangi perdagangan yang tidak perlu, yang merupakan keuntungan dari strategi tersebut.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan utama:

  1. Menggunakan DI untuk menilai situasi dengan baik dan dapat diandalkan

DI menilai tren pasar secara langsung dengan menghitung kekuatan kedua belah pihak secara langsung, tanpa algoritma rumit seperti pencocokan kurva, teorinya sederhana dan dapat diandalkan.

  1. Setting parameter pembatasan dapat memfilter sinyal secara efektif

Dengan membatasi filter parameter tidak ada volatilitas kecil yang jelas arah, hanya memilih segmen yang jelas arah yang lebih kuat untuk perdagangan, untuk menghindari terikat.

  1. Transaksi dua arah otomatis

Posisi multi-kosong dapat beralih secara otomatis berdasarkan indikator DI, tanpa penilaian manual, mengurangi kesulitan transaksi.

  1. Periode transaksi yang dapat disesuaikan

Pengaturan yang mendukung perdagangan hanya dalam jangka waktu tanggal yang disesuaikan, posisi kosong otomatis setelah berakhir, fleksibilitas dan kemudahan.

  1. Anda dapat memilih untuk melakukan lebih atau hanya kosong.

Dengan multi-switch hanya dapat memilih untuk mengambil sinyal satu arah, untuk mencapai hanya melakukan lebih banyak atau hanya melakukan kosong, beradaptasi dengan lingkungan pasar yang berbeda.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Kemungkinan sinyal DI salah

Ketika terjadi fluktuasi besar di pasar, DI dapat mengirimkan sinyal yang salah dalam jangka pendek, yang menyebabkan kegagalan perdagangan. Perlu dikombinasikan dengan indikator lain untuk pemeriksaan.

  1. Parameter pembatasan tidak disetel dengan benar

Penetapan parameter yang terlalu besar atau terlalu kecil dapat menyebabkan terlalu sedikit atau terlalu banyak sinyal perdagangan, yang perlu disesuaikan dengan pasar.

  1. Tidak bisa menilai akhir dari tren

DI hanya dapat menilai arah tren saat ini, tidak dapat menentukan apakah tren berakhir atau berbalik, membutuhkan kombinasi indikator lain.

Solusi untuk mengatasi risiko meliputi:

  1. Menyaring sinyal DI dari indikator seperti moving averages

  2. Penyesuaian parameter pembatasan berdasarkan hasil pengukuran ulang

  3. Pengertian dari Volume, MACD, dan lain-lain

Arah optimasi

Strategi ini dapat terus dioptimalkan dengan cara:

  1. Indikator lain untuk menilai tren, termasuk peta hujan

Indikator yang lebih intuitif untuk menilai kekuatan udara, seperti peta hujan, dikombinasikan dengan DI, dapat meningkatkan akurasi penilaian.

  1. Bergabung dengan Stop Loss Strategi

Tetapkan stop loss yang bergerak, waktu atau stop loss rasio, untuk mengunci keuntungan dan mengurangi kerugian.

  1. Penyesuaian parameter untuk varietas tertentu

Adaptasi parameter pembatasan dan waktu perdagangan sesuai dengan karakteristik perdagangan varietas yang berbeda dapat meningkatkan efektivitas strategi.

  1. Optimalisasi Dinamis dengan Teknologi Pembelajaran Mesin

Menggunakan teknik seperti pembelajaran intensif untuk mengatur parameter optimasi sinyal berdasarkan disk solid.

Meringkaskan

Strategi ini secara keseluruhan relatif sederhana dan praktis. Strategi ini menggunakan metode perhitungan DI untuk menentukan arah tren; dengan membatasi parameter filter sinyal; dapat melakukan perdagangan dua arah, atau hanya dapat melakukan lebih banyak atau kosong; mendukung pengaturan jangka waktu perdagangan. Keuntungan utama adalah reliabilitas yang tinggi, sinyal filter yang efektif.

Kode Sumber Strategi
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Noro's DI Strategy", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(title="Length", defval=14)
limit = input(3, title = "limit, %")
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")

//DI
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedTrueRange = 0.0
SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementMinus = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100

//Trend
trend = 0
trend := DIPlus > DIMinus + limit ? 1 : DIPlus < DIMinus - limit ? -1 : trend[1]

//Background
col = trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Lines
plot(DIPlus, color=lime, title="DI+", linewidth = 3)
plot(DIMinus, color=red, title="DI-", linewidth = 3)

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if trend == 1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if trend == -1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()