Strategi perdagangan panjang/pendek otomatis berdasarkan titik pivot harian

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

img

Gambaran umum

Strategi ini menarik dua garis berdasarkan harga tertinggi dan terendah lilin harian untuk penilaian tren panjang / pendek. Ini pergi panjang ketika harga menembus garis harga tertinggi dan pergi pendek ketika harga menembus garis harga terendah. Ini dapat secara otomatis beralih antara posisi panjang dan pendek.

Logika Strategi

Strategi ini terutama memanfaatkan titik pivot lilin harian untuk menentukan tren panjang/pendek. Yang disebut titik pivot mengacu pada harga tertinggi dan terendah kemarin. Dua garis ini membentuk kisaran perdagangan. Jika harga hari ini menembus salah satu dari mereka, itu menunjukkan pembalikan tren.

Secara khusus, logika utama adalah sebagai berikut:

  1. Garis harga tertinggi: Grafik tingkat harga tertinggi kemarin. Penembusan sinyal tren panjang.
  2. Garis harga terendah: Grafik tingkat harga terendah kemarin.
  3. Entry panjang: Buka posisi panjang ketika harga penutupan melewati garis harga tertinggi.
  4. Short entry: Buka posisi short ketika harga penutupan melewati garis harga terendah.
  5. Stop loss: Stop loss panjang dekat garis harga terendah, stop loss pendek dekat garis harga tertinggi.

Dengan menangkap tren melalui terobosan harga tertinggi / terendah, itu mewujudkan otomatis beralih antara panjang dan pendek.

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Logika sederhana, mudah dipahami dan diterapkan
  2. Berdasarkan bar harian, siklus panjang, kurang rentan terhadap suara jangka pendek
  3. Otomatis beralih antara panjang dan pendek, hindari pasar non-trending
  4. Stop loss yang jelas, bermanfaat untuk pengendalian risiko

Analisis Risiko

Beberapa risiko:

  1. Bar harian memiliki frekuensi yang lebih rendah, tidak dapat menghentikan kerugian tepat waktu
  2. Terobosan palsu dapat menyebabkan kerugian yang tidak perlu
  3. Holding jangka panjang dapat menyebabkan kerugian yang diperluas

Peningkatan:

  1. Tambahkan indikator frekuensi lebih tinggi lainnya untuk konfirmasi
  2. Mengoptimalkan parameter untuk menyaring terobosan palsu
  3. Mengadopsi metode stop loss progresif untuk stop loss yang tepat waktu

Arahan Optimasi

Beberapa petunjuk:

  1. Lebih banyak backtesting pada produk yang berbeda dan set data yang lebih panjang untuk menguji stabilitas
  2. Jelajahi indikator terobosan lainnya seperti saluran, Bollinger Bands dll.
  3. Menggabungkan volume perdagangan untuk menghindari pemutusan palsu tanpa volume
  4. Tambahkan lebih banyak filter untuk mengurangi pemutusan palsu
  5. Menggunakan pembelajaran mesin untuk optimasi parameter

Ringkasan

Secara singkat, strategi sederhana ini mewujudkan otomatis long/short berdasarkan pivot harian. Logika jelas dan mudah dipahami. Optimasi lebih lanjut dapat meningkatkan stabilitas. Investor dapat menerapkannya untuk perdagangan langsung berdasarkan preferensi risiko pribadi.


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