Strategi Keluar Shift v2.0

Penulis:ChaoZhang, Tarikh: 2023-09-21 15:21:40
Tag:

Ringkasan

Strategi ini memasuki dan keluar perdagangan pada harga yang bergeser untuk mengikuti trend.

Cara Ia Bekerja

  1. Mengira harga bergeser berdasarkan peratusan penutupan sebelumnya.

  2. Harga yang bergeser ke bawah adalah garis beli, harga yang bergeser ke atas adalah garis jual.

  3. Masuk dalam jangka panjang apabila harga mencapai barisan beli.

  4. Keluar apabila harga mencapai barisan jual.

Kelebihan

  • Penghentian kerugian / mengambil keuntungan secara automatik tanpa campur tangan manual
  • Peratusan pergeseran yang boleh disesuaikan untuk pengoptimuman parameter
  • Lama hanya mengurangkan kekerapan perdagangan
  • Boleh mengehadkan julat masa dagangan

Risiko

  • Tidak dapat menentukan akhir trend dengan berkesan
  • Kelewatan masa, mungkin terlepas pembalikan cepat

Arahan pengoptimuman

  • Uji parameter peratusan pergeseran yang berbeza
  • Mengoptimumkan tetapan tambahan parameter
  • Menggabungkan perubahan dinamik berdasarkan trend
  • Pertimbangkan piramida di puncak baru

Kesimpulan

Strategi ini mencapai keuntungan yang mengikuti secara automatik melalui tahap kemasukan / keluar yang bergeser. Penambahbaikan lanjut melalui pengoptimuman parameter dan peningkatan logik dapat meningkatkan prestasi. Tetapi risiko whipsaw perlu diuruskan. Secara keseluruhan pendekatan yang mudah dan praktikal untuk perdagangan trend berikut.


/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=3
strategy(title = "Noro's ShiftEx Strategy v2.0", shorttitle = "ShiftEx 2.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
buy = input(-10.0, title = "Buy, src-%")
sell = input(0.0, title = "Sell, src+%")
buysrc = input(low, title = "Source for buy")
sellsrc = input(ohlc4, title = "Source for sell")
offset = input(true)
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
bar = close > open ? 1 : close < open ? -1 : 0
mult = 1 / syminfo.mintick
lb = bar == -1 ? buysrc + ((buysrc / 100) * (buy * 1)) : buysrc + ((buysrc / 100) * (buy * 2))
levelbuy = round(lb * mult) / mult
ls = sellsrc + ((sellsrc / 100) * sell)
levelsell = round(ls * mult) / mult

//Lines
os = offset ? 1 : 0
plot(levelbuy, offset = os, linewidth = 2, color = lime, title = "Buy")
plot(levelsell, offset = os, linewidth = 2, color = blue, title = "Sell")

//Trading
if low[1] > 0
    strategy.entry("long", strategy.long, limit = levelbuy, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("close", strategy.short, 0, limit = levelsell, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

Lebih lanjut