Sumber dimuat naik... memuat...

Sistem Dagangan Smart Crossing Indikator EMA Berganda dengan Strategi Stop-Loss dan Take-Profit Dinamik

Penulis:ChaoZhang, Tarikh: 2024-11-29 16:33:21
Tag:EMAMACDSMARSICCIATR

img

Ringkasan

Strategi ini adalah sistem dagangan pintar berdasarkan crossover purata bergerak berganda, menggunakan purata bergerak eksponen 9 tempoh dan 21 tempoh (EMA) sebagai penunjuk teras. Strategi ini menggabungkan mekanisme stop-loss dan take-profit dinamik, secara automatik melaksanakan pesanan dagangan dengan memantau isyarat crossover EMA dalam masa nyata. Sistem ini menggunakan stop trailing berasaskan peratusan dan tahap mengambil keuntungan nisbah tetap, memastikan kedua-dua keselamatan perdagangan dan potensi keuntungan.

Prinsip Strategi

Logik teras beroperasi pada hubungan silang antara EMA pantas (9-periode) dan EMA perlahan (21-periode). Apabila garis pantas melintasi di atas garis perlahan, sistem mengenali isyarat kenaikan, secara automatik menutup mana-mana kedudukan pendek dan membuka kedudukan panjang. Apabila garis pantas melintasi di bawah garis perlahan, sistem mengenal pasti isyarat penurunan, menutup mana-mana kedudukan panjang dan membuka kedudukan pendek. Di samping itu, sistem melaksanakan mekanisme stop-loss dan take-profit dinamik: untuk kedudukan panjang, stop-loss ditetapkan 5% di bawah harga kemasukan dan take-profit 10% di atas; untuk kedudukan pendek, stop-loss ditetapkan 5% di atas harga kemasukan dan take-profit di bawah 10%.

Kelebihan Strategi

  1. Pilihan penunjuk saintifik: EMA bertindak balas dengan lebih sensitif terhadap perubahan pasaran, dengan berkesan menangkap trend pasaran
  2. Mekanisme Stop Loss dan Take Profit yang komprehensif: Tetapan berasaskan peratusan membolehkan penyesuaian fleksibel kepada keadaan pasaran yang berbeza
  3. Tahap automatik yang tinggi: sepenuhnya automatik dari pengesanan isyarat hingga pelaksanaan perdagangan, meminimumkan campur tangan manusia
  4. Kawalan risiko yang berkesan: Tahap stop-loss dan mengambil keuntungan yang jelas untuk setiap perdagangan
  5. Struktur kod yang jelas: Nama pembolehubah standard dan hierarki logik, memudahkan penyelenggaraan dan pengoptimuman

Risiko Strategi

  1. Risiko pasaran sampingan: Isyarat silang yang kerap boleh berlaku di pasaran yang berbeza, yang membawa kepada perdagangan berlebihan
  2. Risiko tergelincir: Potensi perbezaan antara harga pelaksanaan teori dan sebenar semasa turun naik yang tinggi
  3. Risiko pengurusan wang: Ukuran kedudukan nisbah tetap mungkin kurang fleksibel dalam keadaan pasaran tertentu
  4. Risiko sistemik: Perintah stop loss atau mengambil keuntungan mungkin tidak dilaksanakan tepat pada masanya dalam keadaan pasaran yang melampau

Arahan pengoptimuman

  1. Melaksanakan penapis trend: Tambah penunjuk ADX atau ATR untuk menilai kekuatan trend dan mengelakkan perdagangan yang kerap di pasaran yang berbeza
  2. Mengoptimumkan mekanisme stop-loss dan mengambil keuntungan: Pertimbangkan untuk menggunakan ATR untuk pelarasan dinamik jarak stop-loss dan mengambil keuntungan
  3. Tambah penapis masa: Melaksanakan sekatan masa dagangan khusus untuk mengelakkan tempoh yang sangat tidak menentu
  4. Meningkatkan saiz kedudukan: Sesuaikan saiz kedudukan secara dinamik berdasarkan turun naik pasaran
  5. Tambah penunjuk sentimen pasaran: Masukkan RSI atau MACD untuk pengesahan perdagangan

Ringkasan

Strategi ini mewakili sistem perdagangan automatik yang lengkap dan logiknya. Melalui isyarat silang EMA yang digabungkan dengan mekanisme stop-loss dan mengambil keuntungan yang dinamik, ia dapat berfungsi dengan baik di pasaran yang sedang berkembang. Walau bagaimanapun, pengguna perlu memantau keadaan pasaran, menyesuaikan parameter dengan sewajarnya, dan mengekalkan kawalan risiko yang betul. Melalui pengoptimuman dan penyempurnaan yang berterusan, strategi ini berpotensi menjadi alat perdagangan yang stabil dan boleh dipercayai.


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

//@version=5
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, "显示标签")
var stopLossPercent = input.float(5.0, "止损百分比", minval=0.1, maxval=20.0, step=0.1)
var takeProfitPercent = input.float(10.0, "止盈百分比", minval=0.1, maxval=50.0, step=0.1)

// 计算EMA
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)

// 绘制EMA线
plot(ema9, "EMA9", color=color.blue, linewidth=2)
plot(ema21, "EMA21", color=color.red, linewidth=2)

// 检测交叉
crossOver = ta.crossover(ema9, ema21)  
crossUnder = ta.crossunder(ema9, ema21)

// 格式化时间显示 (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, 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, 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) 

Berkaitan

Lebih lanjut