Strategi Crossover Purata Pergerakan Berganda


Tarikh penciptaan: 2023-12-01 18:18:16 Akhirnya diubah suai: 2023-12-01 18:18:16
Salin: 2 Bilangan klik: 668
1
fokus pada
1619
Pengikut

Strategi Crossover Purata Pergerakan Berganda

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan trend berdasarkan dua persilangan garis rata-rata ganda. Ia menggabungkan purata bergerak mudah cepat (SMA) dan purata bergerak berat perlahan (VWMA), menggunakan persilangan dua garis rata-rata untuk membentuk isyarat membeli dan menjual.

Apabila SMA pantas ke atas melalui VWMA perlahan, ia menghasilkan isyarat beli; apabila SMA pantas ke bawah melalui VWMA perlahan, ia menghasilkan isyarat jual. Strategi menggunakan mekanisme kawalan risiko berhenti.

Prinsip Strategi

Logik teras strategi ini adalah berdasarkan sistem penyeberangan linear ganda. Secara khusus, ia menggunakan kedua-dua indikator teknikal berikut:

  1. Purata bergerak mudah (SMA): nilai purata aritmetik untuk harga penutupan n hari terakhir, yang dapat mencerminkan harga purata untuk tempoh terkini.
  2. Rata-rata Bergerak Bertimbangan ((VWMA): Rata-rata berat pada harga penutupan n hari terakhir, memberikan berat yang lebih besar kepada harga terkini dan dapat bertindak balas lebih cepat terhadap perubahan harga.

Pengaturan parameter SMA pantas dalam garis purata berganda lebih pendek, dapat bertindak balas dengan cepat terhadap perubahan harga; parameter VWMA perlahan lebih lama, mempunyai kesan gelombang. Apabila trend jangka pendek dan jangka panjang bergerak ke arah yang sama, SMA pantas melintasi VWMA perlahan ke atas menghasilkan isyarat beli; melintasi ke bawah menghasilkan isyarat jual.

Strategi ini juga menetapkan mekanisme hentian kerugian. Apabila harga bergerak ke arah yang tidak baik, hentian tepat pada masanya untuk mengawal risiko.

Analisis kelebihan

  1. Bertindak pantas dan mengikuti perubahan trend pasaran
  2. Penarikan balik terkawal, mekanisme penangguhan kerugian mengawal risiko dengan berkesan
  3. Mudah, Intuitif dan Mudah Difahami
  4. Boleh dioptimumkan dengan menyesuaikan parameter untuk menyesuaikan diri dengan keadaan pasaran yang berbeza

Analisis risiko

  1. Strategi Garis Persamaan Ganda Mudah Membuat Sinyal Palsu di Pasaran Berbilang Kepala
  2. Pilih parameter yang sesuai, tetapan yang tidak betul boleh menyebabkan kerugian
  3. Kadang-kadang sakit kepala boleh menyebabkan kerosakan di Markt

Kaedah untuk mengawal risiko:

  1. Pengesahan menggunakan penapis trend
  2. Tetapan parameter optimum
  3. Mengambil strategi hentikan kerugian dan mengawal kerugian tunggal dengan bijak

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Pengesahan digabungkan dengan petunjuk teknikal lain, seperti RSI, Brinline dan lain-lain, untuk meningkatkan ketepatan isyarat
  2. Optimumkan panjang parameter rata-rata, menyesuaikan parameter mengikut kitaran yang berbeza
  3. Perdagangan di titik-titik yang banyak tenaga masuk dan keluar
  4. Sesuaikan parameter mengikut hasil pengukuran semula, pilih parameter yang optimum
  5. Menggunakan Stop Loss Dinamik untuk menyesuaikan titik stop loss mengikut turun naik pasaran

ringkaskan

Strategi ini secara keseluruhan merupakan strategi trend-following yang sangat praktikal. Ia menggunakan persilangan garis purata ganda yang mudah dan intuitif untuk menghasilkan isyarat perdagangan, yang dapat menangkap perubahan trend pasaran dengan berkesan melalui kombinasi garis purata cepat dan garis purata perlahan.

Kod sumber strategi
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-28 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//strategy(title="Bitlinc Entry v0.1 VWMA / SMA / MRSI SQQQ 94M", overlay=true, initial_capital=10000, currency='USD')

strategy(title="Bitlinc Entry v0.1 VWMA / SMA / MRSI SQQQ 94M", overlay=true)

// Credit goes to this developer for the "Date Range Code"
// https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/

// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = close, title = "Simple MA Source")
maFastLength   = input(defval = 6, title = "Simple MA Length", minval = 1)
// long ma
maSlowSource   = input(defval = high, title = "VW MA Source")
maSlowLength   = input(defval = 7, title = "VW MA Period", minval = 1)


// === SERIES SETUP ===
// a couple of ma's...
maFast = sma(maFastSource, maFastLength)
maSlow = vwma(maSlowSource, maSlowLength)


// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = color.green, linewidth = 2, style = plot.style_line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = color.red, linewidth = 2, style = plot.style_line, transp = 30)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

// === LOGIC ===
enterLong = crossover(maFast, maSlow)
exitLong = crossover(maSlow, maFast)
//enterLong = crossover(maSlow, maFast)
//exitLong = crossover(maFast, maSlow)

// Entry //
strategy.entry(id="Long Entry", long=true, when=window() and enterLong)
strategy.entry(id="Short Entry", long=false, when=window() and exitLong)

// === FILL ====
fill(fast, slow, color = maFast > maSlow ? color.green : color.red)

// === MRSI ===
//
//

basis = rsi(close, input(50))

ma1 = ema(basis, input(2))
ma2 = ema(basis, input(27))

oversold = input(32.6)
overbought = input(63)

//plot(ma1, title="RSI EMA1", color=blue)
//plot(ma2, title="RSI EMA2", color=yellow)

obhist = ma1 >= overbought ? ma1 : overbought
oshist = ma1 <= oversold ? ma1 : oversold

//plot(obhist, title="Overbought Highligth", style=columns, color=color.maroon, histbase=overbought)
//plot(oshist, title="Oversold Highligth", style=columns, color=color.yellow, histbase=oversold)

//i1 = hline(oversold, title="Oversold Level", color=white)
//i2 = hline(overbought, title="Overbought Level", color=white)

//fill(i1, i2, color=olive, transp=100)

// === LOGIC ===
enterLongMrsi = crossover(ma1, oversold)
exitLongMrsi = crossover(ma1, overbought)

// Entry //
strategy.entry(id="MRSI Long Entry", long=true, when=window() and enterLongMrsi)
strategy.entry(id="MRSI Short Entry", long=false, when=window() and exitLongMrsi)

//hline(50, title="50 Level", color=white)