Strategi perdagangan berdasarkan arah aliran gelombang


Tarikh penciptaan: 2023-12-19 12:07:14 Akhirnya diubah suai: 2023-12-19 12:07:14
Salin: 0 Bilangan klik: 1121
1
fokus pada
1621
Pengikut

Strategi perdagangan berdasarkan arah aliran gelombang

Gambaran keseluruhan

Ini adalah strategi perdagangan berdasarkan indikator trend gelombang LazyBear. Strategi ini menggunakan trend gelombang untuk mengira turun naik harga, menilai keadaan pasaran yang terlalu banyak dibeli dan dijual, dan melakukan longing dan shorting.

Prinsip Strategi

Strategi ini adalah berdasarkan kepada LazyBear’s Wave Trend Indicator. Pertama mengira harga untuk harga purata ((AP), kemudian mengira purata pergerakan indeks untuk AP ((ESA) dan purata pergerakan indeks untuk perubahan harga mutlak ((D)). Berdasarkan ini, mengira Indeks Wave ((CI), kemudian mengira purata pergerakan indeks untuk CI, yang menghasilkan garis trend gelombang ((WT)). WT kemudiannya menghasilkan WT1 dan WT2 melalui purata bergerak sederhana.

Analisis kelebihan

Ini adalah strategi yang sangat mudah tetapi sangat praktikal untuk mengesan trend.

  1. Indikator Trend Wave dapat mengenal pasti trend harga dan sentimen pasaran
  2. Dengan WT’s Gold Cross dan Death Cross untuk menilai titik plus dan minus, operasi mudah
  3. Parameter yang boleh disesuaikan untuk menyesuaikan sensitiviti WT untuk tempoh yang berbeza
  4. Isyarat penapisan tertakluk tambahan boleh ditambah, seperti tetingkap masa perdagangan yang terhad

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Sebagai strategi trend-following, ia mudah menghasilkan banyak isyarat yang salah dalam pasaran yang disusun
  2. WT Line sendiri mempunyai keterbelakangan yang kuat dan mungkin terlepas titik perubahan harga yang cepat
  3. Parameter lalai mungkin tidak sesuai untuk semua varieti dan kitaran, yang memerlukan pengoptimuman
  4. Tidak ada mekanisme hentian kerugian, satu arah boleh menjadi terlalu lama

Penyelesaian utama ialah:

  1. Parameter pengoptimuman untuk menyesuaikan sensitiviti WT
  2. Tambah petunjuk lain untuk mengesahkan dan mengelakkan isyarat salah
  3. Tetapkan Stop Loss dan Stop Stop
  4. Hadkan jumlah dagangan atau kedudukan setiap hari

Arah pengoptimuman

Strategi ini masih boleh dioptimumkan lagi:

  1. Mengoptimumkan parameter WT untuk menjadikannya lebih sensitif atau lebih stabil
  2. Kombinasi parameter yang berbeza berdasarkan kitaran yang berbeza
  3. Tambah indikator harga kuantiti, indikator kadar turun naik dan sebagainya sebagai isyarat pengesahan
  4. Tambah logik Stop Loss dan Stop Stop
  5. Cara untuk memperkayakan pegangan, seperti penambahan piramid, perdagangan grid, dan sebagainya
  6. Menggunakan kaedah pembelajaran mesin untuk menggali ciri dan peraturan perdagangan yang lebih baik

ringkaskan

Strategi ini adalah strategi pengesanan trend gelombang yang sangat mudah dan praktikal. Ia mengeluarkan isyarat perdagangan dengan mengira trend turun naik harga, mengenal pasti keadaan overbought dan oversold di pasaran, menggunakan silang emas dan silang mati di saluran WT. Operasi strategi ini mudah dan mudah dilaksanakan. Tetapi sebagai strategi trend, ia memerlukan pengoptimuman lanjut terhadap sensitiviti dan kestabilan harga saham, dan perlu dikombinasikan dengan petunjuk dan logik lain untuk mengelakkan isyarat yang salah.

Kod 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)