Strategi Shift Exit v2.0

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

Gambaran umum

Strategi ini masuk dan keluar dari perdagangan dengan harga yang bergeser untuk mengikuti tren.

Cara Kerjanya

  1. Menghitung harga pergeseran berdasarkan persentase penutupan sebelumnya.

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

  3. Masuk long ketika harga mencapai garis beli.

  4. Keluar saat harga mencapai garis jual.

Keuntungan

  • Stop loss/take profit otomatis tanpa intervensi manual
  • Persentase pergeseran yang dapat disesuaikan untuk optimasi parameter
  • Long hanya mengurangi frekuensi perdagangan
  • Dapat membatasi rentang waktu perdagangan

Risiko

  • Tidak dapat secara efektif menentukan akhir tren
  • Delay waktu, mungkin kehilangan pembalikan cepat

Arahan Optimasi

  • Uji parameter shift persentase yang berbeda
  • Mengoptimalkan pengaturan incremental parameter
  • Menggabungkan pergeseran dinamis berdasarkan tren
  • Pertimbangkan piramida di puncak baru

Kesimpulan

Strategi ini mencapai mengambil keuntungan otomatis melalui tingkat masuk / keluar yang bergeser. Peningkatan lebih lanjut melalui optimasi parameter dan peningkatan logika dapat meningkatkan kinerja. Tetapi risiko whipsaw perlu dikelola. Secara keseluruhan pendekatan yang sederhana dan praktis untuk mengikuti tren perdagangan.


/*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 banyak