Strategi Dagangan Panjang/Pendek Secara Automatik Berdasarkan Titik Pivot Harian

Penulis:ChaoZhang, Tarikh: 2024-01-23 14:24:22
Tag:

img

Ringkasan

Strategi ini menarik dua garis berdasarkan harga tertinggi dan terendah lilin harian untuk penghakiman trend panjang / pendek. Ia pergi lama apabila harga menembusi garis harga tertinggi dan pergi pendek apabila harga menembusi garis harga terendah. Ia boleh secara automatik beralih antara kedudukan panjang dan pendek.

Logika Strategi

Strategi ini terutamanya menggunakan titik-titik pivot lilin harian untuk menentukan trend panjang/pendek. Yang dipanggil titik-titik pivot merujuk kepada harga tertinggi dan terendah semalam. Kedua-dua garis ini membentuk julat perdagangan. Jika harga hari ini menembusi salah satu daripada mereka, ia menunjukkan pembalikan trend.

Secara khusus, logik utama adalah seperti berikut:

  1. Garis harga tertinggi: Grafik tahap harga tertinggi semalam. Penembusan menandakan trend panjang.
  2. Baris harga terendah: Grafik tahap harga terendah semalam. Penembusan menandakan trend pendek.
  3. Masuk panjang: Buka kedudukan panjang apabila harga penutupan memecahkan garis harga tertinggi.
  4. Masuk pendek: Buka kedudukan pendek apabila harga penutupan memecahkan garis harga terendah.
  5. Stop loss: Stop loss panjang berhampiran garis harga terendah, stop loss pendek berhampiran garis harga tertinggi.

Dengan menangkap trend melalui terobosan harga tertinggi / terendah, ia merealisasikan suis automatik antara panjang dan pendek.

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Logik yang mudah, mudah difahami dan dilaksanakan
  2. Berdasarkan bar harian, kitaran panjang, kurang terdedah kepada bunyi jangka pendek
  3. Pertukaran automatik antara panjang dan pendek, elakkan pasaran bukan trend
  4. Stop loss yang jelas, bermanfaat untuk kawalan risiko

Analisis Risiko

Beberapa risiko:

  1. Bar harian mempunyai frekuensi yang lebih rendah, tidak dapat menghentikan kehilangan tepat pada masanya
  2. Penembusan palsu boleh menyebabkan kerugian yang tidak perlu
  3. Penguatkuasaan lama boleh membawa kepada kerugian yang meluas

Penambahbaikan:

  1. Tambah penunjuk frekuensi yang lebih tinggi untuk pengesahan
  2. Mengoptimumkan parameter untuk menapis terobosan palsu
  3. Mengambil kaedah stop loss progresif untuk stop loss yang tepat pada masanya

Arahan pengoptimuman

Beberapa arahan:

  1. Lebih banyak pengujian semula pada produk yang berbeza dan set data yang lebih panjang untuk menguji kestabilan
  2. Jelajahi penunjuk terobosan lain seperti saluran, Bollinger Bands dll.
  3. Menggabungkan jumlah dagangan untuk mengelakkan pecah palsu tanpa jumlah
  4. Tambah lebih banyak penapis untuk mengurangkan pecah palsu

Ringkasan

Ringkasnya, strategi mudah ini merealisasikan auto long/short berdasarkan pivot harian. Logiknya jelas dan mudah difahami. Pengoptimuman lanjut boleh meningkatkan kestabilan. Pelabur boleh menerapkannya untuk perdagangan langsung berdasarkan keutamaan risiko peribadi.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=3
strategy(title = "Noro's DEX Strategy", shorttitle = "DEX str", 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(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
showlines = input(true, title = "Show lines")
showbg = input(false, title = "Show background")
showday = input(false, title = "Show new day")
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")

//New day trand
bar = close > open ? 1 : close < open ? -1 : 0
newday = request.security(syminfo.tickerid, 'D', time)

//Lines
uplevel = request.security(syminfo.tickerid, 'D', high)
dnlevel = request.security(syminfo.tickerid, 'D', low)
upcolor = uplevel == uplevel[1] and showlines ? lime : na
dncolor = dnlevel == dnlevel[1] and showlines? red : na
plot(uplevel, offset = 1, linewidth = 2, color = upcolor)
plot(dnlevel, offset = 1, linewidth = 2, color = dncolor)

//Background
size = strategy.position_size
col = time == newday + 86400000 and showday ? blue : showbg and size > 0 ? lime : showbg and size < 0 ? red : na
bgcolor(col)

//Orders
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
truetime = true
if uplevel > 0 and dnlevel > 0
    strategy.entry("Long", strategy.long, needlong ? lot : 0, stop = uplevel, when = truetime)
    strategy.entry("Close", strategy.short, needshort ? lot : 0, stop = dnlevel, when = truetime)

Lebih lanjut