Strategi perdagangan berdasarkan tren gelombang


Tanggal Pembuatan: 2023-12-19 12:07:14 Akhirnya memodifikasi: 2023-12-19 12:07:14
menyalin: 0 Jumlah klik: 1121
1
fokus pada
1621
Pengikut

Strategi perdagangan berdasarkan tren gelombang

Ringkasan

Ini adalah strategi perdagangan berdasarkan indikator tren gelombang LazyBear. Strategi ini dilakukan dengan menghitung tren gelombang dari fluktuasi harga, menilai overbought dan oversold di pasar, dan melakukan longing dan shorting.

Prinsip Strategi

Strategi ini didasarkan pada LazyBear’s Wave Trend Indicator. Pertama, menghitung harga rata-rata ((AP), kemudian menghitung indeks pergerakan rata-rata ((ESA) dari AP dan indeks pergerakan rata-rata dari perubahan harga mutlak ((D)). Berdasarkan ini, menghitung indeks fluktuasi ((CI), kemudian menghitung indeks pergerakan rata-rata dari CI, mendapatkan garis tren gelombang ((WT)). WT kemudian menghasilkan WT1 dan WT2 melalui rata-rata bergerak sederhana.

Analisis Keunggulan

Ini adalah strategi pelacakan tren yang sangat sederhana namun sangat praktis.

  1. Indikator tren gelombang dapat mengidentifikasi tren harga dan sentimen pasar dengan jelas
  2. Dengan WT’s Gold Cross dan Death Cross untuk menilai poin plus dan minus, pengoperasiannya sederhana
  3. Parameter yang dapat disesuaikan untuk menyesuaikan sensitivitas WT untuk berbagai siklus
  4. Sinyal penyaringan kondisional tambahan dapat ditambahkan, seperti pembatasan jendela waktu perdagangan

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Sebagai strategi trend-following, banyak sinyal yang salah dapat dihasilkan dalam market-to-market
  2. WT Line sendiri memiliki keterlambatan yang kuat dan mungkin kehilangan titik balik harga yang cepat.
  3. Parameter default mungkin tidak cocok untuk semua varietas dan siklus, perlu dioptimalkan
  4. Tidak ada mekanisme stop loss, mungkin terlalu lama untuk memegang posisi satu arah

Solusi utama adalah:

  1. Parameter optimasi, menyesuaikan sensitivitas WT
  2. Menambahkan indikator lain untuk verifikasi, menghindari sinyal salah
  3. Pengaturan Stop Loss dan Stop Stop
  4. Batasan jumlah transaksi atau posisi per hari

Arah optimasi

Strategi ini masih bisa dioptimalkan lebih jauh:

  1. Optimalkan parameter WT agar lebih sensitif atau lebih stabil
  2. Kombinasi parameter yang berbeda berdasarkan siklus yang berbeda
  3. Menambahkan indikator harga, indikator volatilitas, dan lain-lain sebagai sinyal konfirmasi
  4. Tambahkan Stop Loss dan Stop Stop Logic
  5. Metode kepemilikan yang kaya, seperti penambahan piramida, perdagangan grid, dll.
  6. Menggali fitur dan aturan perdagangan yang lebih baik dengan metode seperti pembelajaran mesin

Meringkaskan

Strategi ini adalah strategi pelacakan tren gelombang yang sangat sederhana dan praktis. Strategi ini mengeluarkan sinyal perdagangan dengan menghitung tren fluktuasi harga, mengidentifikasi keadaan overbought dan oversold di pasar, dan memanfaatkan persilangan emas dan persilangan mati di garis WT. Strategi ini sederhana dan mudah diimplementasikan.

Kode Sumber Strategi
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//
// @author LazyBear
//
// If you use this code in its original/modified form, do drop me a note. 
//
//@version=4
     
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
 
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,4)

plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=3)
plot(osLevel2, color=color.green, style=3)

plot(wt1, color=color.white)
plot(wt2, color=color.fuchsia)
plot(wt1-wt2, color=color.new(color.blue, 80), style=plot.style_area)

//Strategy
strategy(title="T!M - Wave Trend Strategy", overlay = false, precision = 8, max_bars_back = 200, pyramiding = 0, initial_capital = 1000, currency = currency.NONE, default_qty_type = strategy.cash, default_qty_value = 1000, commission_type = "percent", commission_value = 0.1, calc_on_every_tick=false, process_orders_on_close=true)
    
longCondition  = crossover(wt1, wt2)
shortCondition = crossunder(wt1, wt2)

strategy.entry(id="Long Entry", comment="buy", long=true, when=longCondition and window())
strategy.close("Long Entry", comment="sell", when=shortCondition and window())      

//strategy.entry(id="Short Entry", long=false, when=shortCondition)