Strategi crossover rata-rata pergerakan multi-periode pelacakan tren dinamis

SMA EMA MA
Tanggal Pembuatan: 2024-12-13 10:40:30 Akhirnya memodifikasi: 2024-12-13 10:40:30
menyalin: 0 Jumlah klik: 475
1
fokus pada
1617
Pengikut

Strategi crossover rata-rata pergerakan multi-periode pelacakan tren dinamis

Ringkasan

Strategi ini adalah sistem perdagangan pelacakan tren yang didasarkan pada rata-rata multi-periode. Strategi ini menggunakan rata-rata bergerak sederhana 89 siklus dan 21 siklus (SMA) untuk menentukan arah tren pasar secara keseluruhan, sementara menggabungkan puncak dan titik rendah dari rata-rata bergerak indeks 5 siklus (EMA) untuk mencari sinyal perdagangan tertentu. Strategi ini menggunakan manajemen posisi ganda, dan menggabungkan stop loss tetap dan tracking stop untuk mengendalikan risiko.

Prinsip Strategi

Logika inti dari strategi ini mencakup elemen-elemen kunci berikut:

  1. Penilaian tren: menggunakan posisi relatif dari SMA 89 dan SMA 21 dan posisi harga untuk menentukan tren. Ketika harga dan 5 siklus EMA berada di atas SMA 21 dan SMA 21 berada di atas SMA 89 , itu adalah tren naik; sebaliknya adalah tren turun.
  2. Sinyal masuk: dalam tren naik, masuk lebih banyak ketika harga kembali ke 5 siklus EMA rendah; dalam tren turun, masuk kosong ketika harga bangkit ke 5 siklus EMA tinggi.
  3. Manajemen posisi: Buka dua posisi kontrak dengan jumlah yang sama setiap kali sinyal dipicu.
  4. Pengendalian risiko: Untuk posisi pertama, gunakan tujuan stop loss dan profit yang tetap, untuk posisi kedua, gunakan metode stop loss yang dilacak.

Keunggulan Strategis

  1. Multiple time period confirmation: Menggunakan kombinasi moving averages dari periode yang berbeda untuk menilai tren pasar secara lebih komprehensif dan mengurangi sinyal palsu.
  2. Fleksibel Stop Mode: Kombinasi dari Stop Fixed dan Tracking Stop, memungkinkan Anda untuk mengambil keuntungan dari fluktuasi jangka pendek tanpa melewatkan tren besar.
  3. Risiko dapat dikontrol: menetapkan posisi stop loss yang jelas, dan ambang risiko untuk setiap sinyal perdagangan tetap.
  4. Operasi sistematis: aturan transaksi jelas, bebas dari penilaian subjektif, mudah untuk diimplementasikan secara program.

Risiko Strategis

  1. Risiko pasar bergoyang: Dalam penyusunan horizontal, seringnya persilangan rata-rata dapat menyebabkan terlalu banyak sinyal palsu.
  2. Risiko slippage: Pada saat pasar berfluktuasi besar, harga transaksi aktual dapat menyimpang jauh dari harga sinyal teoritis.
  3. Manajemen risiko dana: metode perdagangan dengan jumlah kontrak tetap mungkin tidak sesuai untuk semua ukuran dana.
  4. Sensitivitas parameter: Pilihan siklus rata-rata bergerak memiliki dampak besar pada kinerja strategi dan perlu dioptimalkan untuk pasar yang berbeda.

Arah optimasi strategi

  1. Manajemen posisi dinamis: disarankan untuk menyesuaikan jumlah kontrak perdagangan secara dinamis sesuai dengan nilai bersih akun dan volatilitas pasar.
  2. Filter lingkungan pasar: meningkatkan indikator intensitas tren (seperti ADX) dan mengurangi frekuensi perdagangan di pasar yang bergoyang.
  3. Optimasi Stop Loss: Anda dapat mempertimbangkan untuk menggunakan ATR untuk menyesuaikan jarak stop loss secara dinamis untuk meningkatkan kemampuan strategi untuk beradaptasi dengan berbagai kondisi pasar.
  4. Konfirmasi sinyal: meningkatkan volume transaksi, momentum dan indikator tambahan untuk meningkatkan keandalan sinyal perdagangan.

Meringkaskan

Strategi ini adalah sistem pelacakan tren yang terstruktur, menangkap tren pasar melalui kombinasi rata-rata multi-periode, dan mengontrol risiko dengan manajemen posisi yang fleksibel dan metode stop loss. Meskipun ada ruang untuk pengoptimalan, kerangka dasar strategi ini memiliki kepraktisan dan skalabilitas yang baik. Untuk varietas perdagangan dan lingkungan pasar yang berbeda, stabilitas strategi dapat ditingkatkan dengan menyesuaikan parameter dan menambahkan kondisi filter.

Kode Sumber Strategi
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tobiashartemink2

//@version=5
strategy("High 5 Trading Technique", overlay=true)

// --- Input parameters ---
sma89Length = input.int(title="SMA 89 Length", defval=89)
sma21Length = input.int(title="SMA 21 Length", defval=21)
ema5HighLength = input.int(title="EMA 5 High Length", defval=5)
ema5LowLength = input.int(title="EMA 5 Low Length", defval=5)
contracts = input.int(title="Aantal Contracten", defval=1)
stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25)
takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25)

// --- Calculate moving averages ---
sma89 = ta.sma(close, sma89Length)
sma21 = ta.sma(close, sma21Length)
ema5High = ta.ema(high, ema5HighLength)
ema5Low = ta.ema(low, ema5LowLength)

// --- Identify trend and order of moving averages ---
longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89
shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89

// --- Entry signals ---
longTrigger = longSetup and close <= ema5Low
shortTrigger = shortSetup and close >= ema5High

// --- Entry orders ---
if (longTrigger)
    strategy.entry("Long 1", strategy.long, qty=contracts)
    strategy.entry("Long 2", strategy.long, qty=contracts)

if (shortTrigger)
    strategy.entry("Short 1", strategy.short, qty=contracts)
    strategy.entry("Short 2", strategy.short, qty=contracts)

// --- Stop-loss and take-profit for long positions ---
if (strategy.position_size > 0)
    strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints)
    strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Stop-loss and take-profit for short positions ---
if (strategy.position_size < 0)
    strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints)
    strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Plot moving averages ---
plot(sma89, color=color.blue, linewidth=2)
plot(sma21, color=color.red, linewidth=2)
plot(ema5High, color=color.green, linewidth=2)
plot(ema5Low, color=color.orange, linewidth=2)