Strategi pola candlestick kombinasi multi-model


Tanggal Pembuatan: 2023-10-17 15:53:06 Akhirnya memodifikasi: 2023-10-17 15:53:06
menyalin: 0 Jumlah klik: 671
1
fokus pada
1617
Pengikut

Strategi pola candlestick kombinasi multi-model

Ringkasan

Strategi ini digunakan untuk melakukan perdagangan saham dengan menggunakan kombinasi dari beberapa model kerucut. Ini menggabungkan model garis paket, model kerucut kosong, dan model bintang salib untuk menangkap peluang perdagangan dalam kondisi pasar yang berbeda.

Prinsip

Logika inti dari strategi ini adalah untuk membangun beberapa aturan penilaian kerucut, dan kemudian mengintegrasikan aturan ini untuk menghasilkan sinyal perdagangan.

Pertama, ia mendefinisikan beberapa variabel dasar untuk menggambarkan sifat-sifat dari sebuah thread, seperti ukuran entitas thread body, harga open, harga close, dan sebagainya.

Kemudian, berdasarkan hubungan antara harga penutupan dan harga pembukaan, ia mendefinisikan tiga jenis bar perdagangan: 1 untuk kenaikan, -1 untuk penurunan, dan 0 untuk tidak turun.

Berdasarkan hal ini, ada tiga aturan untuk menilai bentuk kebesaran:

  1. Pattern Engulfing: Jalur K saat ini membungkus jalur K sebelumnya, menghasilkan sinyal beli atau jual.

  2. Harami Pattern: K-line atas mengepung K-line saat ini, menghasilkan sinyal beli atau jual.

  3. Harami Cross Pattern: Kombinasi dari kerucut kosong dan bintang salib, menghasilkan sinyal beli atau jual.

Dengan aturan-aturan ini, Anda dapat menentukan kapan Anda akan membeli dan menjual. Dengan beberapa kondisi tambahan, seperti batasan jangka waktu perdagangan, Anda dapat menyaring sinyal perdagangan yang tidak sesuai.

Pada bagian trading, kita akan menilai posisi yang kita pegang. Jika posisi kita berlawanan dengan arah sinyal, maka kita akan mulai dengan posisi kosong, lalu kita akan mulai dengan posisi terbuka sesuai arah sinyal.

Keunggulan

  • Berbagai bentuk kombinasi, stabilitas yang kuat. Satu bentuk mungkin lebih dipengaruhi oleh lingkungan pasar tertentu, kombinasi menggunakan bentuk dapat meningkatkan stabilitas.

  • Identifikasi bentuk arah yang sama, penilaian komprehensif, menghindari kesalahan penilaian. Model bentuk yang berbeda menilai tren dari sudut yang berbeda, dan dapat saling memverifikasi sinyal.

  • Parameter yang dapat disesuaikan, beradaptasi kuat. Pengguna dapat dengan bebas memilih kombinasi model bentuk yang berbeda, menyesuaikan jangka waktu perdagangan dan parameter lainnya, dan fleksibel menanggapi perubahan pasar.

  • Logika perdagangan yang baik. Dalam kombinasi dengan penilaian posisi dan logika penarikan stop loss, risiko dapat dikendalikan secara efektif.

Risiko

  • Kombinasi multi-parameter menambah kompleksitas. Perlu untuk menguji kecocokan kombinasi masing-masing parameter, kombinasi parameter yang tidak tepat dapat mengurangi efektivitas.

  • Pengaturan parameter shape bergantung pada pengalaman. Parameter shape seperti ukuran entitas yang sesuai atau tidak perlu akumulasi pengalaman untuk disesuaikan.

  • Risiko yang ditimbulkan oleh memegang posisi tunggal. Hanya melakukan lebih banyak atau hanya melakukan shorting akan membatasi ruang untuk mendapatkan keuntungan. Anda dapat melakukan lebih banyak shorting sekaligus melalui pengaturan parameter.

  • Mungkin terlewatkan titik pembalikan tren. Strategi ini didasarkan pada identifikasi bentuk, tidak dapat secara efektif menilai pembalikan tren.

Pengoptimalan

  • Meningkatkan strategi stop loss untuk mengurangi risiko yang ditimbulkan oleh kepemilikan posisi sepihak.

  • Menggunakan indikator teknis lainnya untuk menentukan arah tren besar dan menghindari perdagangan berlawanan seperti MACD, Bollinger Band, dll.

  • Uji preferensi parameter dari berbagai varietas, membangun kombinasi bentuk yang sesuai dengan varietas yang berbeda.

  • Menambahkan algoritma pembelajaran mesin untuk membantu optimasi parameter dan pengenalan bentuk melalui AI.

Meringkaskan

Strategi ini membangun sistem perdagangan garis pendek yang relatif stabil dan dapat diandalkan dengan memanfaatkan keunggulan dari berbagai bentuk pivot secara komprehensif. Namun, beberapa pengaturan parameter dan kontrol risiko masih perlu dioptimalkan lebih lanjut untuk menyesuaikan diri dengan lingkungan pasar yang lebih kompleks. Secara keseluruhan, strategi ini masuk akal, dan prospeknya luas, berdasarkan akumulasi pengalaman dan data yang cukup untuk melakukan optimasi cerdas melalui pembelajaran mesin dan lain-lain.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's CandleModels Tests", shorttitle = "CandleModels tests", overlay = true, 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")

eng = input(true, defval = true, title = "Model Engulfing")
har = input(true, defval = true, title = "Model Harami")
harc = input(true, defval = true, title = "Model Harami Cross")

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")
rev = input(false, defval = false, title = "Reversive trading")

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
doji = body < abody / 10
up1 = eng and bar == 1 and bar[1] == -1 and min <= min[1] and max >= max[1]
dn1 = eng and bar == -1 and bar[1] == 1 and min <= min[1] and max >= max[1]
up2 = har and bar == 1 and bar[1] == -1 and min >= min[1] and max <= max[1]
dn2 = har and bar == -1 and bar[1] == 1 and min >= min[1] and max <= max[1]
up3 = harc and doji and bar[1] == -1 and low >= min[1] and high <= max[1]
dn3 = harc and doji and bar[1] == 1 and low >= min[1] and high <= max[1]
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2 and rev == false

//Trading
if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()