Strategi Crossover Moving Average untuk Menangkap Pembalikan Tren Secara Akurat


Tanggal Pembuatan: 2024-01-22 12:14:29 Akhirnya memodifikasi: 2024-01-22 12:14:29
menyalin: 1 Jumlah klik: 546
1
fokus pada
1621
Pengikut

Strategi Crossover Moving Average untuk Menangkap Pembalikan Tren Secara Akurat

Ringkasan

Strategi ini disebut strategi cross-golden cross-death cross, dan ide utamanya adalah menggunakan dua sinyal indikator teknis yang kuat, yaitu moving average cross-golden cross dan cross-death cross, untuk menangkap pembalikan tren pasar dan mencapai efek jual beli rendah.

Prinsip Strategi

Dalam strategi ini, kami menghitung rata-rata bergerak sederhana (SMA) selama 50 dan 200 periode. Menurut pemahaman tradisional, ketika garis 50 hari jatuh dari arah atas melewati garis 200 hari, disebut tanda penurunan. Ketika garis 50 hari dari arah bawah melewati garis 200 hari, disebut tanda kenaikan.

Logika trading dari strategi ini adalah untuk membangun posisi berdasarkan munculnya kedua sinyal tersebut. Secara khusus, strategi ini akan melakukan shorting pada saat terjadi crossover yang mematikan, dan melakukan over pada saat terjadi crossover yang mematikan. Dengan demikian, Anda bisa mendapatkan keuntungan di dekat titik perubahan tren pasar.

Selain itu, strategi juga menyediakan fitur jangka waktu pengukuran yang dapat disesuaikan. Ini memungkinkan kita untuk menguji kinerja strategi dalam rentang waktu yang berbeda dan menemukan efek sebenarnya dari sinyal silang ini.

Keunggulan Strategis

  1. Dapat secara efektif menangkap titik balik tren pasar, membuka posisi yang menguntungkan di dekat titik-titik penting
  2. Menggunakan penggabungan silang dua garis rata-rata periode yang berbeda untuk menghindari sinyal yang salah
  3. Memberikan fitur feedback untuk menguji kinerja strategi di berbagai kondisi pasar
  4. Peta yang jelas, dapat melihat secara intuitif sinyal silang dan perubahan posisi

Risiko Strategis

  1. Sinyal persimpangan rata-rata terlambat, tidak dapat memprediksi pergeseran tren ekstrem
  2. Data retrospektif mungkin berbeda dari data real-time, dan kinerja yang sebenarnya akan dibatasi oleh biaya transaksi dan slippage
  3. Pilihan parameter kebijakan seperti periode rata-rata memiliki pengaruh besar pada hasil
  4. Perdagangan yang dilakukan secara otomatis tidak dapat dilakukan dengan cara otomatis, tetapi harus memperhatikan situasi fundamental dan kondisi teknologi.

Untuk risiko, kita dapat menyesuaikan parameter garis rata-rata, digabungkan dengan sinyal filter indikator lainnya, melakukan manajemen dana yang baik, strategi verifikasi di lapangan, untuk mengurangi risiko aktual.

Arah optimasi strategi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Uji efek kombinasi dari berbagai siklus linear
  2. Meningkatkan indikator penyaringan seperti volume transaksi atau volatilitas, menghindari jalan yang umum
  3. Dengan data ekonomi atau berita dasar sebagai filter.
  4. Pertimbangkan strategi stop loss, seperti stop loss bergerak atau stop loss waktu
  5. Evaluasi Efek Dari Berbagai Waktu Pemegang Posisi

Dengan menguji dampak dari berbagai parameter terhadap kinerja strategi, kita dapat menemukan solusi perdagangan lintas linier yang lebih baik.

Meringkaskan

Strategi ini menggunakan sinyal indikator teknis klasik yang melintasi rata-rata bergerak untuk menangkap titik-titik perubahan pasar yang penting. Logika strategi sederhana dan jelas, tetapi juga menyediakan fitur pengembalian yang mudah.

Kode Sumber Strategi
/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[S_R__9] - Death and Golden Cross", overlay=true)

// Specific Time Date Range For Backtest
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31, group='DATE CONFIG')
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12, group='DATE CONFIG')
startYear = input.int(title='Start Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

endDate = input.int(title='End Date', defval=31, minval=1, maxval=31, group='DATE CONFIG')
endMonth = input.int(title='End Month', defval=12, minval=1, maxval=12, group='DATE CONFIG')
endYear = input.int(title='End Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

SPECIFIC_DATE = input.bool(title='USE SPECIFIC DATE ?', defval=false, group='DATE CONFIG')

inDateRange = SPECIFIC_DATE ? time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0) : true

// Calculate 50 SMA and 200 SMA
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)

// Detect a Death Cross (50 SMA crossing below 200 SMA)
deathCross = ta.crossunder(sma50, sma200)
// Detect a Golden Cross (50 SMA crossing above 200 SMA)
goldenCross = ta.crossover(sma50, sma200)

// Strategy Execution
if (inDateRange)
    if (deathCross)
        strategy.entry("Death Cross long", strategy.short)

    if (goldenCross)
        strategy.entry("Golden Cross short", strategy.long)

// Plot SMAs
plot(sma50, color=color.red, title="50 SMA")
plot(sma200, color=color.blue, title="200 SMA")

// Plotting Death Cross signal
plotshape(series=deathCross and inDateRange, title="Death Cross Signal", location=location.belowbar, color=color.red, style=shape.labeldown, text="DEATH CROSS")

// Plotting Golden Cross signal
plotshape(series=goldenCross and inDateRange, title="Golden Cross Signal", location=location.abovebar, color=color.green, style=shape.labelup, text="GOLDEN CROSS")