Strategi Zon Pelancongan

Penulis:ChaoZhang, Tarikh: 2023-12-29 17:03:27
Tag:

img

Ringkasan

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.

Logika Strategi

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:

  • Harga terendah = titik terendah dalam N candlestick yang lalu
  • Harga tertinggi = titik tertinggi dalam N candlestick yang lalu

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.

Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Mengambil zon harga dan menentukan titik pembalikan trend untuk entri panjang / pendek yang tepat
  2. Penapis warna dan badan membantu menapis isyarat palsu
  3. Logik strategi yang mudah dan jelas, mudah difahami dan menyesuaikan parameter
  4. Banyak parameter yang boleh diselaraskan membolehkan optimum strategi

Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Tetapan parameter yang tidak sesuai boleh menyebabkan perdagangan berlebihan dan bayaran tinggi
  2. Tetapan julat zon yang salah boleh menghasilkan terlalu banyak isyarat pecah palsu
  3. Kuasa ramalan zon harga yang lemah semasa turun naik pasaran yang ganas
  4. Tidak dapat menangani jurang harga

Risiko ini boleh dikurangkan dengan menyesuaikan parameter zon, mengoptimumkan penapis isyarat dll.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Sesuaikan julat zon harga secara dinamik dan bukannya penyinar N tetap
  2. Menggabungkan logik stop loss untuk mengehadkan kerugian
  3. Mengoptimumkan parameter penapis untuk meningkatkan kualiti isyarat
  4. Tambah logik untuk mengendalikan jurang harga
  5. Gabungkan pelbagai jangka masa untuk menilai isyarat dan mengelakkan perangkap

Kesimpulan

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

Lebih lanjut