Strategi Zon Pelancongan adalah strategi perdagangan jangka pendek berdasarkan zon turun naik harga. Ia menggunakan zon turun naik yang dibentuk oleh harga dalam tempoh masa tertentu untuk menilai trend pasaran dan mengambil kedudukan apabila zon itu ditembusi.
Strategi ini mengira harga tertinggi dan terendah N candlestick yang lalu untuk membina zon turun naik harga. Apabila candlestick terbaru menembusi zon ini, ia menilai bahawa pembalikan trend telah berlaku dan menghasilkan isyarat perdagangan.
Khususnya, strategi terus mengesan harga tertinggi dan terendah N candlestick terakhir (parameter yang boleh diselaraskan N), di mana:
Ini membina zon turun naik harga.
Apabila harga penutupan lilin terkini lebih tinggi daripada harga tertinggi zon, ia menandakan bahawa zon telah ditembusi, menghasilkan isyarat panjang; apabila harga penutupan lebih rendah daripada harga terendah zon, ia menandakan bahawa zon telah ditembusi, menghasilkan isyarat pendek.
Selain itu, strategi ini juga menggabungkan penapis warna dan badan. Penapis warna menapis isyarat berdasarkan warna candlestick; penapis badan menapis isyarat berdasarkan saiz badan candlestick. Ini membantu menapis beberapa isyarat palsu.
Strategi ini mempunyai kelebihan berikut:
Strategi ini juga mempunyai beberapa risiko:
Risiko ini boleh dikurangkan dengan menyesuaikan parameter zon, mengoptimumkan penapis isyarat dll.
Strategi ini boleh dioptimumkan dalam beberapa arah:
Strategi Zon Pelancongan adalah strategi perdagangan jangka pendek yang mudah digunakan secara keseluruhan. Ia menentukan titik pembalikan trend melalui zon harga dan dapat dengan cepat memanfaatkan peluang pasaran. Ia juga mempunyai beberapa risiko yang perlu diperhatikan. Penambahbaikan lanjut boleh dibuat melalui penyesuaian parameter dan pengoptimuman untuk meningkatkan keuntungan.
/*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()