Strategi Zona Transient adalah strategi perdagangan jangka pendek yang didasarkan pada zona fluktuasi harga. Strategi ini menggunakan zona fluktuasi yang terbentuk oleh harga dalam periode waktu tertentu untuk menilai tren pasar dan mengambil posisi ketika zona tersebut terpenetrasi.
Strategi ini menghitung harga tertinggi dan terendah dari N candlestick sebelumnya untuk membangun zona fluktuasi harga. Ketika candlestick terbaru menembus zona ini, ia menilai bahwa pembalikan tren telah terjadi dan menghasilkan sinyal perdagangan.
Secara khusus, strategi terus melacak harga tertinggi dan terendah dari N candlestick terakhir (parameter N yang dapat disesuaikan), di mana:
Ini membangun zona fluktuasi harga.
Ketika harga penutupan candlestick terbaru lebih tinggi dari harga tertinggi zona, itu menandakan bahwa zona telah ditembus, menghasilkan sinyal panjang; ketika harga penutupan lebih rendah dari harga terendah zona, itu menandakan bahwa zona telah ditembus, menghasilkan sinyal pendek.
Selain itu, strategi ini juga menggabungkan filter warna dan tubuh. Filter warna menyaring sinyal berdasarkan warna candlestick; filter tubuh menyaring sinyal berdasarkan ukuran tubuh candlestick. Ini membantu menyaring beberapa sinyal palsu.
Strategi ini memiliki keuntungan berikut:
Strategi ini juga memiliki beberapa risiko:
Risiko ini dapat dikurangi dengan menyesuaikan parameter zona, mengoptimalkan filter sinyal dll.
Strategi dapat dioptimalkan dalam beberapa arah:
Strategi Zona Transisi adalah strategi perdagangan jangka pendek yang mudah digunakan secara keseluruhan. Ini menentukan titik pembalikan tren melalui zona harga dan dapat dengan cepat memanfaatkan peluang pasar. Ini juga memiliki beberapa risiko yang perlu dicatat. Perbaikan lebih lanjut dapat dilakukan melalui penyesuaian parameter dan optimasi untuk meningkatkan profitabilitas.
/*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=2 strategy("Noro's Transient Zones Strategy v1.0", shorttitle = "TZ str 1.0", 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, %") usecol = input(true, defval = true, title = "Use Color-Filter") usebod = input(true, defval = true, title = "Use Body-Filter") h_left = input(title = "H left", defval = 10) h_right = -1 sample_period = input(title = "Sample bars for % TZ", defval = 5000) show_ptz = input(title = "Show PTZ", type = bool, defval = true) show_channel = input(title = "Show channel", type = bool, defval = true) fromyear = input(2018, defval = 2018, 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") //By Jurij w/ TZ percent occurrence by SPYderCrusher //barCount = nz(barCount[1]) + 1 //check history and realtime PTZ h_left_low = lowest(h_left) h_left_high = highest(h_left) newlow = low <= h_left_low newhigh = high >= h_left_high plotshape(newlow and show_ptz, style=shape.triangledown, location=location.belowbar, color=red) plotshape(newhigh and show_ptz, style=shape.triangleup, location=location.abovebar, color=green) channel_high = plot(show_channel ? h_left_low : 0, color=silver) channel_low = plot (show_channel ? h_left_high : 0, color=silver) //check true TZ back in history central_bar_low = low[h_right + 1] central_bar_high = high[h_right + 1] full_zone_low = lowest(h_left + h_right + 1) full_zone_high = highest(h_left + h_right + 1) central_bar_is_highest = central_bar_high >= full_zone_high central_bar_is_lowest = central_bar_low <= full_zone_low plotarrow(central_bar_is_highest ? -1 : 0, offset=-h_right-1) plotarrow(central_bar_is_lowest ? 1 : 0, offset=-h_right-1) //Color Filter bar = close > open ? 1 : close < open ? -1 : 0 //Body Filter nbody = abs(close - open) abody = sma(nbody, 10) body = nbody > abody / 3 or usebod == false //Signals up1 = central_bar_is_lowest and body and (bar == -1 or usecol == false) dn1 = central_bar_is_highest and body and (bar == 1 or usecol == false) exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body //Trading lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1] if up1 if strategy.position_size < 0 strategy.close_all() 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 if strategy.position_size > 0 strategy.close_all() 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) or exit strategy.close_all()