Sistem Dagangan Terobosan Purata Pergerakan Dwi Dinamik

EMA SMA CROSS
Tarikh penciptaan: 2024-12-05 16:22:32 Akhirnya diubah suai: 2024-12-05 16:22:32
Salin: 1 Bilangan klik: 384
1
fokus pada
1617
Pengikut

Sistem Dagangan Terobosan Purata Pergerakan Dwi Dinamik

Gambaran keseluruhan

Ini adalah sistem strategi perdagangan automatik yang berasaskan dua garis lurus yang bersilang. Sistem ini menggunakan purata bergerak indeks 9 dan 21 kitaran ((EMA)) sebagai penunjuk teras, untuk berdagang dengan menangkap isyarat persilangan dua garis lurus. Sistem ini mengintegrasikan pengurusan stop loss dan menyediakan sokongan antara muka visual yang dapat memaparkan isyarat perdagangan dan tahap harga utama secara visual.

Prinsip Strategi

Strategi menggunakan EMA cepat ((9 kitaran) dan EMA perlahan ((21 kitaran) untuk membina sistem perdagangan. Apabila EMA cepat melintasi EMA perlahan ke atas, sistem menghasilkan isyarat berganda; apabila EMA cepat melintasi EMA perlahan ke bawah, sistem menghasilkan isyarat kosong. Sistem akan menetapkan harga stop loss secara automatik berdasarkan peratusan stop loss yang telah ditetapkan setiap kali membuka kedudukan.

Kelebihan Strategik

  1. Kejelasan isyarat: menggunakan persilangan linear sebagai isyarat perdagangan, isyarat jelas, mudah difahami dan dilaksanakan
  2. Kawalan risiko: Sistem pengurusan stop loss bersepadu, dengan kawalan risiko yang disediakan untuk setiap urus niaga
  3. Sokongan visual: Menyediakan ciri-ciri penampil label dagangan yang mengandungi maklumat penting seperti masa masuk, harga, stop loss dan stop loss
  4. Fleksibiliti parameter: membenarkan penyesuaian parameter seperti kitaran EMA, nisbah stop loss, dan sebagainya untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
  5. Mekanisme penutupan lengkap: penutupan automatik apabila isyarat terbalik muncul, mengelakkan saling menebus kedudukan

Risiko Strategik

  1. Risiko pasaran yang bergolak: mungkin sering menghasilkan isyarat pecah palsu dalam keadaan golak horizontal, yang menyebabkan kerugian berturut-turut
  2. Risiko slippage: Dalam keadaan pasaran yang tidak menentu, slippage mungkin menyebabkan harga sebenar yang bertukar daripada harga yang ideal
  3. Risiko pengurusan dana: Perdagangan dengan 100% dana secara lalai mungkin terlalu berisiko
  4. Keterlambatan isyarat: EMA sendiri mempunyai keterlambatan, yang mungkin terlepas masa masuk yang terbaik atau menyebabkan kelewatan keluar
  5. Ketergantungan pada satu indikator: hanya bergantung pada penyeberangan dua hala boleh mengabaikan maklumat pasaran penting yang lain

Arah pengoptimuman strategi

  1. Tambah penunjuk pengesahan trend: disyorkan untuk menambah ADX atau penunjuk kekuatan trend, menapis isyarat palsu pasaran goyah
  2. Pengurusan modal yang optimum: Mencadangkan untuk menambah fungsi pengurusan kedudukan dinamik, menyesuaikan kadar pembukaan kedudukan mengikut turun naik pasaran
  3. Peningkatan mekanisme penangguhan kerugian: Penambahan fungsi penangguhan kerugian yang boleh dipertimbangkan untuk melindungi keuntungan yang lebih baik
  4. Menambah penapis keadaan pasaran: Tambah indikator turun naik, berhenti perdagangan secara automatik dalam keadaan pasaran yang tidak sesuai
  5. Mekanisme pengesahan isyarat yang dioptimumkan: pengesahan kuantiti yang diperolehi atau penyesuaian dengan petunjuk teknikal lain boleh dipertimbangkan

ringkaskan

Ini adalah sistem strategi persimpangan linear yang dirancang dengan logik yang logik dan jelas. Dengan menggunakan sinyal persimpangan EMA dan mekanisme pengurusan risiko secara komprehensif, strategi ini dapat memperoleh keuntungan di pasaran yang sedang tren. Walaupun terdapat beberapa risiko yang wujud, strategi ini dapat meningkatkan kestabilan dan kebolehpercayaan dengan arah pengoptimuman yang disyorkan.

Kod 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)