Strategi Penembusan Pelbagai Jangka Masa

Penulis:ChaoZhang, Tarikh: 2023-12-29 16:17:56
Tag:

img

Ringkasan

Strategi breakout pelbagai jangka masa menghasilkan isyarat perdagangan yang lebih boleh dipercayai dengan menggabungkan isyarat harga dari dua jangka masa yang berbeza. Strategi ini mengira isyarat harga secara serentak pada jangka masa yang lebih pendek seperti 1 jam, 2 jam, 3 jam, dan lain-lain dan jangka masa yang lebih lama seperti 4 jam, harian, dan lain-lain. Ia hanya akan menghasilkan isyarat beli atau jual apabila isyarat dari kedua-dua jangka masa berada dalam arah yang sama untuk pelaksanaan perdagangan yang sepadan.

Logika Strategi

Logik teras strategi ini adalah untuk mengira isyarat pecah harga pada dua bingkai masa yang berbeza masing-masing dan kemudian memadankan mereka untuk penapisan. Khususnya, strategi akan memeriksa sama ada harga memecahkan tahap tertentu pada bingkai masa yang lebih pendek (contohnya 1 jam) dan juga jika harga memecahkan tahap yang sesuai pada bingkai masa yang lebih lama (contohnya 4 jam). Hanya apabila isyarat pecah dari kedua bingkai masa berada dalam arah yang sama, iaitu harga pada kedua-dua bingkai masa pecah ke atas atau ke bawah, strategi akan menghasilkan isyarat perdagangan.

Syarat untuk isyarat beli adalah bahawa harga penutupan atau harga rendah pada kedua-dua bingkai masa yang lebih pendek dan lebih lama memecahkan di atas tahap harga mereka. Syarat untuk isyarat jual adalah bahawa harga penutupan atau harga tinggi pada kedua-dua bingkai masa memecahkan di bawah tahap mereka. Dengan memadankan isyarat di seluruh bingkai masa dengan cara ini, strategi dapat menapis beberapa isyarat palsu dan menjadikan isyarat lebih boleh dipercayai.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah kebolehpercayaan isyarat dagangnya yang lebih tinggi. Dengan memerlukan harga pecah pada tahap dalam dua bingkai masa, ia dapat menapiskan bunyi bising dan mengelakkan perdagangan yang buruk. Di samping itu, isyarat pecah dari bingkai masa yang berbeza dapat saling mengesahkan, menjadikan peluang perdagangan lebih cekap. Di samping itu, strategi ini menawarkan beberapa fleksibiliti dengan membolehkan pengguna memilih bingkai masa untuk menggabungkan dan sumber data dll mengikut keperluan mereka sendiri.

Analisis Risiko

Risiko utama strategi ini adalah bahawa semasa Zeitgeist pasaran yang tenang, harga mungkin tidak pecah pada kedua-dua jangka masa. Dalam kes itu, strategi tidak akan menghasilkan isyarat perdagangan dan mungkin terlepas peluang. Juga, terdapat beberapa kelewatan masa antara kedua-dua jangka masa yang boleh menyebabkan isyarat yang tidak cekap. Selain itu, strategi tidak termasuk logik stop loss dan mempunyai risiko yang lebih besar.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut: 1) Tambah logik stop loss untuk mengawal risiko; 2) Optimumkan kombinasi kerangka masa untuk meningkatkan kecekapan; 3) Tambah lebih banyak kerangka masa untuk kombinasi untuk menjadikan isyarat perdagangan lebih ketat; 4) Sertakan penunjuk lain untuk penapisan untuk meningkatkan kualiti isyarat; 5) Kembangkan mekanisme keluar untuk mengawal keuntungan dengan lebih baik, dll.

Kesimpulan

Strategi breakout berbilang jangka masa meningkatkan kualiti isyarat dengan membandingkan harga harga di seluruh jangka masa dan merupakan strategi trend yang agak boleh dipercayai.


/*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()

Lebih lanjut