Sistem Perdagangan Terobosan Rata-rata Pergerakan Ganda Dinamis

EMA SMA CROSS
Tanggal Pembuatan: 2024-12-05 16:22:32 Akhirnya memodifikasi: 2024-12-05 16:22:32
menyalin: 1 Jumlah klik: 384
1
fokus pada
1617
Pengikut

Sistem Perdagangan Terobosan Rata-rata Pergerakan Ganda Dinamis

Ringkasan

Ini adalah sistem strategi perdagangan otomatis yang didasarkan pada crossover dua rata-rata. Sistem ini menggunakan rata-rata pergerakan indeks 9 periode dan 21 periode (EMA) sebagai indikator inti, untuk melakukan perdagangan dengan menangkap sinyal silang dua rata-rata. Sistem ini mengintegrasikan manajemen stop loss, sekaligus memberikan dukungan antarmuka visual yang dapat secara intuitif menampilkan sinyal perdagangan dan tingkat harga kunci.

Prinsip Strategi

Strategi ini menggunakan EMA cepat ((9 siklus) dan EMA lambat ((21 siklus) untuk membangun sistem perdagangan. Ketika EMA cepat naik melewati EMA lambat, sistem menghasilkan sinyal multi; Ketika EMA cepat turun melewati EMA lambat, sistem menghasilkan sinyal kosong.

Keunggulan Strategis

  1. Sinyal yang jelas: menggunakan garis sejajar sebagai sinyal perdagangan, sinyal yang jelas, mudah dipahami dan dilakukan
  2. Kontrol risiko: Sistem manajemen stop loss terintegrasi, dengan kontrol risiko yang siap pakai untuk setiap transaksi
  3. Dukungan visualisasi: menyediakan fitur tampilan label perdagangan yang berisi informasi penting seperti waktu masuk, harga, stop loss dan stop loss
  4. Fleksibilitas parameter: memungkinkan untuk menyesuaikan parameter seperti siklus EMA, stop loss ratio, dan lain-lain untuk menyesuaikan dengan kondisi pasar yang berbeda
  5. Mekanisme pelunasan lengkap: pelunasan otomatis pada saat muncul sinyal mundur, menghindari saling offset antara pemegang posisi

Risiko Strategis

  1. Risiko pasar bergoyang: mungkin sering terjadi sinyal bolak-balik dalam situasi bergoyang horizontal, yang menyebabkan kerugian beruntun
  2. Risiko slippage: Pada saat pasar bergejolak, slippage dapat menyebabkan harga transaksi yang sebenarnya menyimpang dari harga yang ideal
  3. Risiko Manajemen Dana: Perdagangan dengan 100% dana secara default mungkin terlalu berisiko
  4. Keterlambatan sinyal: EMA sendiri memiliki keterlambatan, yang dapat melewatkan waktu masuk yang optimal atau menyebabkan keterlambatan keluar
  5. Ketergantungan pada satu indikator: hanya mengandalkan crossover bilateral dapat mengabaikan informasi pasar penting lainnya

Arah optimasi strategi

  1. Menambahkan indikator konfirmasi tren: disarankan untuk menambahkan ADX atau indikator kekuatan tren, memfilter sinyal palsu pasar yang bergoyang
  2. Pengelolaan modal yang optimal: Menambahkan fungsi manajemen posisi dinamis, menyesuaikan rasio posisi terbuka sesuai dengan fluktuasi pasar
  3. Perbaikan mekanisme Stop Loss: Pertimbangan untuk menambahkan fitur Stop Loss Tracking untuk melindungi keuntungan lebih baik
  4. Menambahkan filter lingkungan pasar: Menambahkan indikator volatilitas, menghentikan perdagangan secara otomatis dalam lingkungan pasar yang tidak sesuai untuk perdagangan
  5. Mekanisme konfirmasi sinyal yang dioptimalkan: dapat dipertimbangkan untuk meningkatkan konfirmasi pengiriman atau penyesuaian indikator teknis lainnya

Meringkaskan

Ini adalah sistem strategi crossover linier yang dirancang secara rasional dan logis. Dengan menggunakan sinyal crossover EMA dan mekanisme manajemen risiko secara komprehensif, strategi ini dapat memperoleh keuntungan di pasar tren. Meskipun ada beberapa risiko yang melekat, stabilitas dan keandalan strategi dapat ditingkatkan lebih lanjut dengan arah pengoptimalan yang disarankan.

Kode Sumber Strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//
//  ██╗         █████╗         ██████╗     ██████╗     ██╗   ██╗    ██╗
//  ██║        ██╔══██╗       ██╔═══██╗    ██╔══██╗    ██║   ██║    ██║
//  ██║        ███████║       ██║   ██║    ██║  ██║    ██║   ██║    ██║
//  ██║        ██╔══██║       ██║   ██║    ██║  ██║    ██║   ██║    ██║
//  ███████╗   ██║  ██║       ╚██████╔╝    ██████╔╝    ╚██████╔╝    ██║
//  ╚══════╝   ╚═╝  ╚═╝        ╚═════╝     ╚═════╝      ╚═════╝     ╚═╝
//
//  BTC-EMA做多策略(5分钟确认版) - 作者:LAODUI
//  版本:2.0
//  最后更新:2024
// ═══════════════════════════════════════════════════════════════════════════

strategy("EMA Cross Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// 添加策略参数设置
var showLabels = input.bool(true, "显示标签", group="显示设置")
var stopLossPercent = input.float(5.0, "止损百分比", minval=0.1, maxval=20.0, step=0.1, group="风险管理")
var takeProfitPercent = input.float(10.0, "止盈百分比", step=0.1, group="风险管理")

// EMA参数设置
var emaFastLength = input.int(9, "快速EMA周期", minval=1, maxval=200, group="EMA设置")
var emaSlowLength = input.int(21, "慢速EMA周期", minval=1, maxval=200, group="EMA设置")

// 计算EMA
ema_fast = ta.ema(close, emaFastLength)
ema_slow = ta.ema(close, emaSlowLength)

// 绘制EMA线
plot(ema_fast, "快速EMA", color=color.blue, linewidth=2)
plot(ema_slow, "慢速EMA", color=color.red, linewidth=2)

// 检测交叉
crossOver = ta.crossover(ema_fast, ema_slow)  
crossUnder = ta.crossunder(ema_fast, ema_slow)

// 格式化时间显示 (UTC+8)
utc8Time = time + 8 * 60 * 60 * 1000
timeStr = str.format("{0,date,MM-dd HH:mm}", utc8Time)

// 计算止损止盈价格
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent / 100)
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent / 100)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent / 100)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent / 100)

// 交易逻辑
if crossOver
    if strategy.position_size < 0  
        strategy.close("做空")     
    strategy.entry("做多", strategy.long)  
    if showLabels
        label.new(bar_index, high, text="做多入场\n" + timeStr + "\n入场价: " + str.tostring(close) + "\n止损价: " + str.tostring(longStopLoss) + "\n止盈价: " + str.tostring(longTakeProfit), color=color.green, textcolor=color.white, style=label.style_label_down, yloc=yloc.abovebar)

if crossUnder
    if strategy.position_size > 0  
        strategy.close("做多")     
    strategy.entry("做空", strategy.short)  
    if showLabels
        label.new(bar_index, low, text="做空入场\n" + timeStr + "\n入场价: " + str.tostring(close) + "\n止损价: " + str.tostring(shortStopLoss) + "\n止盈价: " + str.tostring(shortTakeProfit), color=color.red, textcolor=color.white, style=label.style_label_up, yloc=yloc.belowbar)

// 设置止损止盈
if strategy.position_size > 0  // 多仓止损止盈
    strategy.exit("多仓止损止盈", "做多", stop=longStopLoss, limit=longTakeProfit)
    
if strategy.position_size < 0  // 空仓止损止盈
    strategy.exit("空仓止损止盈", "做空", stop=shortStopLoss, limit=shortTakeProfit)