Pelacakan Tren Rata-rata Pergerakan Tiga Kali Lipat dan Strategi Perdagangan Kuantitatif Penggabungan Momentum

EMA TEMA MACD SMA
Tanggal Pembuatan: 2024-11-27 16:08:16 Akhirnya memodifikasi: 2024-11-27 16:08:16
menyalin: 2 Jumlah klik: 439
1
fokus pada
1617
Pengikut

Pelacakan Tren Rata-rata Pergerakan Tiga Kali Lipat dan Strategi Perdagangan Kuantitatif Penggabungan Momentum

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang didasarkan pada kombinasi pelacakan tren dan analisis dinamika. Strategi ini menggunakan tiga indeks moving average (TEMA), beberapa crossover moving average, dan indikator MACD varian untuk mengidentifikasi tren pasar dan waktu masuk. Strategi ini menggunakan mekanisme kontrol risiko yang ketat, termasuk stop loss tetap, profit target, dan tracking stop loss, untuk mencapai keseimbangan optimal antara risiko dan keuntungan.

Prinsip Strategi

Strategi ini didasarkan pada tiga sistem indikator teknis utama untuk menentukan sinyal perdagangan:

  1. Sistem Triple Index Moving Average (TEMA) digunakan untuk mengkonfirmasi arah tren secara keseluruhan. Kekuatan tren ditentukan dengan menghitung tiga lapisan EMA dan menggabungkan perubahan dinamisnya.
  2. Sistem lintas rata-rata yang cepat dan lambat menggunakan EMA 9 siklus dan 15 siklus untuk menangkap titik balik tren jangka menengah.
  3. Harga yang bersilang dengan 5 siklus EMA sebagai sinyal konfirmasi terakhir, digunakan untuk mengetahui waktu masuk yang tepat.

Trigger sinyal trading membutuhkan kondisi berikut secara bersamaan:

  • Indikator MACD dengan garis sinyalnya membentuk persilangan emas dan tren TEMA ke atas
  • EMA jangka pendek di atas EMA jangka panjang
  • Harga naik dengan 5 siklus EMA

Keunggulan Strategis

  1. Sistem multi-konfirmasi mengurangi dampak dari sinyal palsu dan meningkatkan keakuratan transaksi.
  2. Dengan menggabungkan keunggulan pelacakan tren dan analisis momentum, Anda dapat menangkap tren besar dan tidak melewatkan peluang jangka pendek.
  3. Menggunakan mekanisme stop loss yang baik, termasuk stop loss fixed point dan stop loss tracking yang dinamis, untuk mengontrol risiko secara efektif.
  4. Parameter strategi dapat disesuaikan dengan kondisi pasar yang berbeda.
  5. Logika masuknya jelas, mudah dipahami dan diterapkan.

Risiko Strategis

  1. Mekanisme multi-konfirmasi dapat menyebabkan keterlambatan dalam proses pendaftaran dan kehilangan beberapa kesempatan dalam perjalanan yang cepat.
  2. Stop loss tetap perlu disesuaikan dengan fluktuasi pasar yang berbeda, atau mungkin akan dihentikan terlalu dini.
  3. Dalam pasar yang bergejolak, sinyal palsu dapat sering muncul.
  4. Pelacakan stop loss dapat keluar dari tren prima terlalu cepat ketika pasar bergejolak.

Arah optimasi strategi

  1. Memperkenalkan indikator volatilitas untuk secara dinamis menyesuaikan target stop loss dan profit agar lebih sesuai dengan kondisi pasar.
  2. Tambahkan indikator volume sebagai konfirmasi tambahan untuk meningkatkan keandalan sinyal.
  3. Bergabung dengan mekanisme identifikasi lingkungan pasar, menggunakan kombinasi parameter yang berbeda dalam kondisi pasar yang berbeda.
  4. Mengembangkan mekanisme penambahan posisi yang berlawanan, dan membangun posisi yang moderat untuk meningkatkan pendapatan pada saat penarikan.
  5. Optimalkan algoritma tracking stop loss agar lebih sesuai dengan fluktuasi pasar.

Meringkaskan

Strategi ini membangun sistem perdagangan yang stabil dengan menggabungkan beberapa sistem indikator teknis. Keunggulan utamanya adalah mekanisme konfirmasi ganda dan sistem kontrol risiko yang baik. Meskipun ada risiko keterlambatan tertentu, strategi ini masih memiliki ruang untuk perbaikan yang lebih besar melalui pengoptimalan parameter dan perluasan fungsi.

Kode Sumber Strategi
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ITG Scalper Strategy", shorttitle="lokesh_ITG_Scalper_Strategy", overlay=true)

// General inputs
len = input(14, title="TEMA period")
FfastLength = input.int(13, title="Filter fast length")
FslowLength = input.int(18, title="Filter slow length")
FsignalLength = input.int(14, title="Filter signal length")
sl_points = 7 // 5 points stop loss
tp_points = 100 // 100 points target profit
trail_points = 15 // Trailing stop loss every 10 points

// Validate input
if FfastLength < 1
    FfastLength := 1
if FslowLength < 1
    FslowLength := 1
if FsignalLength < 1
    FsignalLength := 1

// Get real close price
realC = close

// Triple EMA definition
ema1 = ta.ema(realC, len)
ema2 = ta.ema(ema1, len)
ema3 = ta.ema(ema2, len)

// Triple EMA trend calculation
avg = 3 * (ema1 - ema2) + ema3

// Filter formula
Fsource = close
FfastMA = ta.ema(Fsource, FfastLength)
FslowMA = ta.ema(Fsource, FslowLength)
Fmacd = FfastMA - FslowMA
Fsignal = ta.sma(Fmacd, FsignalLength)

// Plot EMAs for visual reference
shortema = ta.ema(close, 9)
longema = ta.ema(close, 15)
yma = ta.ema(close, 5)
plot(shortema, color=color.green)
plot(longema, color=color.red)
plot(yma, color=#e9f72c)

// Entry conditions
firstCrossover = ta.crossover(Fmacd, Fsignal) and avg > avg[1]
secondCrossover = ta.crossover(shortema, longema)  // Assuming you meant to cross shortema with longema
thirdCrossover = ta.crossover(close, yma)

var bool entryConditionMet = false

if (firstCrossover)
    entryConditionMet := true

longSignal = entryConditionMet and secondCrossover and thirdCrossover

// Strategy execution
if (longSignal)
    strategy.entry("Long", strategy.long)
    entryConditionMet := false  // Reset the entry condition after taking a trade

// Calculate stop loss and take profit prices
var float long_sl = na
var float long_tp = na

if strategy.position_size > 0  // Long position
    long_sl := close - sl_points
    long_tp := close + tp_points
    
    // Adjust stop loss with trailing logic
    if (close - long_sl > trail_points)
        long_sl := close - trail_points
        
    strategy.exit("Exit Long", "Long", stop=long_sl, limit=long_tp)

// Plotting Buy signals
plotshape(series=longSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")

// Alerts
alertcondition(longSignal, title="Buy Signal", message="Buy Signal")