Strategi Pembalikan Crossover Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2023-11-22 10:07:19 Akhirnya memodifikasi: 2023-11-22 10:07:19
menyalin: 1 Jumlah klik: 605
1
fokus pada
1617
Pengikut

Strategi Pembalikan Crossover Rata-rata Pergerakan Ganda

Ringkasan

Gagasan utama dari strategi ini adalah menggunakan persilangan rata-rata bergerak cepat dan rata-rata bergerak lambat untuk menilai tren pasar, dan masuk ke dalam saat garis pendek dan garis panjang berbalik, untuk mencapai efek pelacakan tren.

Prinsip Strategi

  1. Pengaturan periode rata-rata bergerak cepat (shortma) dan periode rata-rata bergerak lambat (longma) (default 77 hari)
  2. Ketika garis pendek melewati garis panjang di atas rata-rata, itu dianggap sebagai sinyal beli, yang dicatat barssince ((mabuy), dan garis panjang berarti masuk ke tren; ketika garis pendek melewati garis panjang di bawah rata-rata, itu dianggap sebagai sinyal jual, yang dicatat barssince ((masell), dan garis panjang berarti berakhirnya tren
  3. Bandingkan ukuran barssince, garis rata-rata pendek yang melintang dari atas ke bawah menunjukkan semakin banyak bar yang menunjukkan durasi tren yang lebih lama; sebaliknya, garis rata-rata pendek yang melintang dari bawah ke atas menunjukkan semakin banyak batang yang menunjukkan semakin kuat sinyal pembalikan
  4. Sinyal beli dikeluarkan ketika jumlah bar sinyal jual lebih besar dari jumlah bar sinyal beli; Sinyal jual dikeluarkan ketika jumlah bar sinyal beli lebih besar dari jumlah bar sinyal jual
  5. Strategi seperti itu pada dasarnya adalah strategi reversal dua rata-rata, yang menilai titik balik tren melalui reversal rata-rata cepat dan rata-rata lambat

Keunggulan Strategis

  1. Filter sinyal perdagangan noise dengan menggunakan penilaian linear ganda.
  2. Menambahkan perbandingan barssince, menghindari sinyal salah yang disebabkan oleh pembalikan harga False and Close
  3. Mudah dimengerti dan diterapkan
  4. Parameter rata-rata bergerak yang dapat disesuaikan untuk periode dan pasar yang berbeda

Risiko Strategis

  1. Strategi biner-equivalent cenderung menghasilkan lebih banyak sinyal dan lebih sering diperdagangkan
  2. Setting Moving Average Line Parameter yang Tidak Tepat Mungkin Melewatkan Peluang Tren yang Lebih Panjang
  3. Ketika melewati garis rata-rata jangka panjang, titik berhenti mungkin jauh, dan ada penarikan besar.
  4. Tidak efektif memfilter spiral dan pasar yang bergoyang

Arah optimasi strategi

  1. Menambahkan filter untuk indikator lain untuk menghindari terjerat dalam peristiwa gempa
  2. Meningkatkan mekanisme penghentian kerugian
  3. Mengoptimalkan kombinasi parameter moving average
  4. Parameter rata-rata bergerak disesuaikan dengan dinamika siklus pasar

Meringkaskan

Strategi ini secara keseluruhan logis jelas dan mudah dimengerti, dengan garis rata-rata cepat dan garis rata-rata lambat untuk menilai titik balik tren pasar, secara teoritis dapat secara efektif melacak tren. Namun dalam penerapan praktis masih perlu untuk mengoptimalkan algoritma strategi itu sendiri dan pengaturan parameter, sehingga lebih stabil dan realistis.

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

//@version=3
strategy("Up Down", "Up Down", precision = 6, pyramiding = 1, default_qty_type = strategy.percent_of_equity, default_qty_value = 99, commission_type = strategy.commission.percent, commission_value = 0.0, initial_capital = 1000, overlay = true)

buy = close > open and open > close[1]
sell = close < open and open < close[1]

longma = input(77,"Long MA Input")
shortma = input(7,"Short MA Input")
long = sma(close,longma)
short = sma(close, shortma)
mabuy = crossover(short,long) or buy and short > long
masell = crossunder(short,long) or sell and short > long

num_bars_buy = barssince(mabuy)
num_bars_sell = barssince(masell)
//plot(num_bars_buy, color = teal)
//plot(num_bars_sell, color = orange)

xbuy = crossover(num_bars_sell, num_bars_buy)
xsell = crossunder(num_bars_sell, num_bars_buy)
plotshape(xbuy,"Buy Up Arrow", shape.triangleup, location.belowbar, white, size = size.tiny)
plotshape(xsell,"Sell Down Arrow", shape.triangledown, location.abovebar, white, size = size.tiny)
plot(long,"Long MA", fuchsia, 2)

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

if testPeriod()
    strategy.entry("buy", true, when = xbuy, limit = close)
    strategy.close("buy", when = xsell)