Strategi robot dagangan henti untung dan henti rugi ATR berdasarkan zon tindakan CDC

TA EMA ATR
Tarikh penciptaan: 2024-06-03 16:19:32 Akhirnya diubah suai: 2024-06-03 16:19:32
Salin: 3 Bilangan klik: 327
1
fokus pada
1166
Pengikut

Strategi robot dagangan henti untung dan henti rugi ATR berdasarkan zon tindakan CDC

Gambaran keseluruhan

Strategi ini adalah strategi robot perdagangan berdasarkan kawasan tindakan CDC. Ia menggunakan purata bergerak indeks 12 dan 26 kitaran ((EMA) untuk menentukan trend pasaran, sebaliknya melemahkan apabila EMA jangka pendek berada di atas EMA jangka panjang. Strategi ini menggunakan purata gelombang sebenar ((ATR) untuk menetapkan tahap berhenti dan berhenti yang dinamik.

Prinsip Strategi

  1. Mengira EMA 12 kitaran dan 26 kitaran untuk menentukan trend pasaran.
  2. Hitung ATR untuk menetapkan tahap hentian dan hentian dinamik.
  3. Apabila EMA jangka pendek berada di atas EMA jangka panjang, isyarat beli dikeluarkan dan kedudukan dibuat lebih banyak.
  4. Apabila EMA jangka pendek berada di bawah EMA jangka panjang, isyarat jual dan buka posisi kosong.
  5. Tahap hentian ditentukan berdasarkan ATR dan kelipatan, apabila harga mencapai tahap hentian.
  6. Tahap penangguhan tertakluk kepada 5% daripada harga penutupan semasa, apabila harga mencapai tahap penangguhan.

Kelebihan Strategik

  1. Menggunakan EMA untuk menangkap trend pasaran, dapat menyesuaikan diri dengan berkesan dengan keadaan pasaran yang berbeza.
  2. Penggunaan ATR untuk menetapkan tahap hentian dinamik dapat melindungi keuntungan.
  3. Tahap penangguhan kerugian tetap membantu mengawal risiko dan mengehadkan kerugian ke dalam julat yang boleh diterima.
  4. Struktur kod jelas, mudah difahami dan diubah suai, sesuai untuk pengoptimuman lanjut.

Risiko Strategik

  1. EMA adalah penunjuk yang ketinggalan zaman yang boleh memberi isyarat yang salah apabila pasaran berubah dengan cepat.
  2. Tahap penangguhan ATR mungkin tidak dapat melindungi keuntungan dalam masa yang tepat semasa turun naik pasaran yang besar.
  3. Dalam beberapa kes, tahap hentian yang tetap boleh menyebabkan kedudukan kosong terlalu awal dan kehilangan potensi keuntungan.
  4. Strategi ini tidak mengambil kira kos transaksi dan slippage, dan hasil transaksi sebenar mungkin berbeza dengan hasil pengukuran semula.

Arah pengoptimuman strategi

  1. Cuba gunakan penunjuk trend lain, seperti MACD atau purata bergerak silang, untuk meningkatkan ketepatan isyarat.
  2. Mengoptimumkan ATR dan Stop Loss Peratusan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  3. Memperkenalkan mekanisme hentian dinamik, seperti hentian yang dikesan atau hentian berdasarkan kadar turun naik, untuk mengawal risiko dengan lebih baik.
  4. Pertimbangkan kos dan titik tergelincir perdagangan, pilih jenis perdagangan yang sesuai dan masa perdagangan untuk meningkatkan prestasi strategi.

ringkaskan

Strategi ini adalah strategi robot perdagangan ATR stop-loss stop-loss yang berasaskan kawasan tindakan CDC, menangkap trend pasaran melalui EMA, ATR untuk menetapkan tahap stop-loss dinamik, dan menggunakan peratusan stop-loss tetap untuk mengawal risiko. Walaupun strategi ini mempunyai kelebihan tertentu, terdapat beberapa risiko dan ruang untuk penambahbaikan. Dengan pengoptimuman dan ujian lanjut, strategi ini dijangka dapat berfungsi dengan baik dalam perdagangan sebenar.

Kod sumber strategi
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("CDC Action Zone Trading Bot with ATR for Take Profit and 5% Stop Loss", overlay=true)

// ดึงข้อมูลราคาปิด
close_price = close

// คำนวณเส้น EMA 12 และ EMA 26
ema12 = ta.ema(close_price, 12)
ema26 = ta.ema(close_price, 26)

// คำนวณ ATR
atr_length = input.int(14, title="ATR Length")
atr = ta.atr(atr_length)

// กำหนด Multiplier สำหรับ ATR Trailing Stoploss
mult_atr_stoploss = input.float(2.5, title="ATR Stoploss Multiplier")

// คำนวณ ATR Trailing Stoploss
prev_stoploss = close_price
for i = 1 to 10
    prev_stoploss := math.max(prev_stoploss, high[i] - mult_atr_stoploss * atr)

// กำหนด Take Profit เป็น ATR Trailing Stoploss
takeProfitPercent = input.float(10, title="Take Profit (%)") / 100
takeProfit = close_price + (close_price - prev_stoploss) * takeProfitPercent

// กำหนด Stop Loss เป็น 5% ของราคาปิดปัจจุบัน
stopLossPercent = input.float(5, title="Stop Loss (%)") / 100
stopLoss = close_price * stopLossPercent

// กำหนดสีแท่งกราฟ
buyColor = input.color(color.green, title="Buy Color")
sellColor = input.color(color.red, title="Sell Color")
neutralColor = input.color(color.gray, title="Neutral Color")
color = if (ema12 > ema26)
    buyColor
else if (ema12 < ema26)
    sellColor
else
    neutralColor

// สัญญาณ Buy
buySignal = (color == buyColor) and (color[1] != buyColor)

// สัญญาณ Sell
sellSignal = (color == sellColor) and (color[1] != sellColor)

// เปิด Position Long
if (buySignal)
    strategy.entry("Long", strategy.long)

// เปิด Position Short
if (sellSignal)
    strategy.entry("Short", strategy.short)

// ปิด Position เมื่อถึง Take profit
if (strategy.position_size > 0 and close_price > takeProfit)
    strategy.exit("Long", profit=takeProfit)

// ปิด Position เมื่อถึง Stop loss
if (strategy.position_size > 0 and close_price < stopLoss)
    strategy.exit("Long", loss=stopLoss)

// ปิด Position เมื่อถึง Take profit
if (strategy.position_size < 0 and close_price < takeProfit)
    strategy.exit("Short", profit=takeProfit)

// ปิด Position เมื่อถึง Stop loss
if (strategy.position_size < 0 and close_price > stopLoss)
    strategy.exit("Short", loss=stopLoss)