Strategi Breakout Multi-Kerangka Waktu


Tanggal Pembuatan: 2023-12-29 16:17:56 Akhirnya memodifikasi: 2023-12-29 16:18:22
menyalin: 0 Jumlah klik: 632
1
fokus pada
1621
Pengikut

Strategi Breakout Multi-Kerangka Waktu

Ringkasan

Strategi penembusan multi-frame menghasilkan sinyal perdagangan yang lebih andal dengan menggunakan kombinasi sinyal penembusan harga pada dua frame waktu yang berbeda. Strategi ini menghitung sinyal penembusan harga pada frame waktu yang lebih lama, seperti 1 jam, 2 jam, 3 jam, dan 4 jam, dan garis matahari. Ketika sinyal pada kedua frame waktu disinkronkan, sinyal pembelian atau penjualan akan dihasilkan, dan perdagangan akan dilakukan di arah yang sesuai.

Prinsip Strategi

Logika inti dari strategi ini adalah menghitung sinyal harga yang pecah pada dua frame waktu yang berbeda, lalu melakukan filter yang cocok. Secara khusus, strategi ini akan menghitung apakah harga telah menembus tingkat yang ditentukan pada frame waktu yang lebih pendek (misalnya, 1 jam) dan pada frame waktu yang lebih lama (misalnya, 4 jam). Strategi ini hanya akan menghasilkan sinyal perdagangan jika arah sinyal penembusan pada kedua frame waktu itu sama, yaitu ketika harga pada kedua frame waktu naik atau turun dari tingkat yang ditentukan.

Sinyal beli dihasilkan dengan kondisi bahwa harga tutup atau harga terendah pada jangka waktu pendek dan jangka waktu panjang telah melampaui tingkat harga yang sesuai. Sinyal jual dihasilkan dengan kondisi bahwa harga tutup atau harga tertinggi pada jangka waktu pendek dan jangka waktu panjang telah melampaui tingkat harga yang sesuai. Strategi dapat memfilter beberapa sinyal palsu dengan cara pencocokan multi-frame seperti ini, sehingga sinyal lebih dapat diandalkan.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah reliabilitas sinyal perdagangan yang tinggi. Dengan meminta harga untuk menembus level yang sesuai di kedua frame waktu, sebagian kebisingan dapat dihilangkan secara efektif dan kesalahan perdagangan dapat dihindari. Selain itu, sinyal penembusan pada frame waktu yang berbeda dapat diverifikasi satu sama lain, membuat peluang perdagangan lebih efektif.

Analisis risiko

Risiko utama dari strategi ini adalah bahwa pada periode Zeit di pasar yang tenang, harga pada kedua kerangka waktu tidak akan mengalami terobosan. Pada saat ini, strategi tidak akan menghasilkan sinyal perdagangan apa pun dan mungkin melewatkan peluang perdagangan. Selain itu, ada juga lag tertentu antara kedua kerangka waktu yang dapat menyebabkan efisiensi sinyal yang tidak tinggi.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal: 1) meningkatkan logika stop loss untuk mengendalikan risiko; 2) mengoptimalkan kombinasi dari kerangka waktu, meningkatkan efisiensi perdagangan; 3) menambahkan lebih banyak kerangka waktu untuk kombinasi, membuat sinyal perdagangan lebih ketat; 4) memfilter kombinasi dengan indikator lain, meningkatkan kualitas sinyal; 5) mengembangkan mekanisme Exiting, pengendalian keuntungan yang lebih baik, dll.

Meringkaskan

Strategi penembusan multiframe meningkatkan kualitas sinyal dengan membandingkan penembusan harga pada dua frame waktu. Ini adalah strategi pelacakan tren yang lebih andal. Namun, ada juga kekurangan tertentu yang dapat dioptimalkan secara terus menerus untuk menjadikannya strategi perdagangan kuantitatif yang stabil dan andal.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's Levels Strategy v1.1", shorttitle = "Levels str 1.1", 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")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf1 = input('W', title = "timeframe 1")
tf2 = input('D', title = "timeframe 2")
src = input(ohlc4, "Source")
ap = input(true, defval = true, title = "use saw filter")
cf = input(true, defval = true, title = "гыу color filter")
showlines = input(true, defval = true, title = "Show lines")
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")

//Levels
level1 = request.security(syminfo.tickerid, tf1, src)
level2 = request.security(syminfo.tickerid, tf2, src)
col = showlines ? silver : na
p1 = plot(level1, linewidth = 3, color = col, title = "Level 1")
p2 = plot(level2, linewidth = 3, color = col, title = "Level 2")

//Signals
up1 = close > level1 and ap == false ? true : low > level1 ? true : false
dn1 = close < level1 and ap == false ? true : high < level1 ? true : false
up2 = close > level2 and ap == false ? true : low > level2 ? true : false
dn2 = close < level2 and ap == false ? true : high < level2 ? true : false

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]

if up1 and up2 and (close < open or cf == false)
    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 dn1 and dn2 and (close > open or cf == false)
    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()