Strategi robot perdagangan stop-profit dan stop-loss ATR berdasarkan zona tindakan CDC

TA EMA ATR
Tanggal Pembuatan: 2024-06-03 16:19:32 Akhirnya memodifikasi: 2024-06-03 16:19:32
menyalin: 3 Jumlah klik: 647
1
fokus pada
1617
Pengikut

Strategi robot perdagangan stop-profit dan stop-loss ATR berdasarkan zona tindakan CDC

Ringkasan

Strategi ini adalah strategi robot trading berdasarkan zona aksi CDC. Strategi ini menggunakan 12 siklus dan 26 siklus indeks moving average (EMA) untuk menentukan tren pasar, dan sebaliknya melakukan shorting ketika EMA jangka pendek berada di atas EMA jangka panjang. Strategi ini menggunakan rata-rata true amplitude (ATR) untuk mengatur stop loss dan level stop loss yang dinamis.

Prinsip Strategi

  1. Perhitungan EMA 12 siklus dan 26 siklus, digunakan untuk menentukan tren pasar.
  2. Perhitungan ATR, digunakan untuk mengatur level stop loss dan stop loss dinamis.
  3. Ketika EMA jangka pendek berada di atas EMA jangka panjang, sinyal beli dan buka posisi lebih banyak.
  4. Ketika EMA jangka pendek berada di bawah EMA jangka panjang, sinyal jual dan posisi kosong.
  5. Stop level ditentukan berdasarkan ATR dan sebuah kelipatan, yang akan dihapus ketika harga mencapai level stop.
  6. Stop loss level ditetapkan sebagai 5% dari harga penutupan saat ini dan akan dihapus ketika harga mencapai stop loss level.

Keunggulan Strategis

  1. Menggunakan EMA untuk menangkap tren pasar, dapat secara efektif beradaptasi dengan lingkungan pasar yang berbeda.
  2. ATR digunakan untuk mengatur level stop-loss dinamis yang dapat melindungi keuntungan lebih baik.
  3. Tingkat penghentian kerugian yang tetap membantu mengendalikan risiko dan membatasi kerugian dalam kisaran yang dapat diterima.
  4. Struktur kode yang jelas, mudah dipahami dan dimodifikasi, cocok untuk optimasi lebih lanjut.

Risiko Strategis

  1. EMA adalah indikator yang tertinggal, yang dapat memberikan sinyal yang salah ketika pasar berubah dengan cepat.
  2. Tingkat ATR mungkin tidak dapat melindungi keuntungan dengan tepat waktu ketika pasar berfluktuasi besar.
  3. Tingkat stop loss yang tetap dapat dalam beberapa kasus menyebabkan posisi terlambat dan kehilangan potensi keuntungan.
  4. Strategi ini tidak mempertimbangkan biaya transaksi dan slippage, dan hasil transaksi yang sebenarnya mungkin berbeda dari hasil pengukuran ulang.

Arah optimasi strategi

  1. Cobalah menggunakan indikator tren lainnya, seperti MACD atau moving average crossover, untuk meningkatkan akurasi sinyal.
  2. Mengoptimalkan ATR dan Stop Loss untuk menyesuaikan dengan kondisi pasar yang berbeda.
  3. Memperkenalkan mekanisme stop loss dinamis, seperti stop loss tracking atau stop loss berbasis volatilitas, untuk mengendalikan risiko dengan lebih baik.
  4. Mempertimbangkan biaya transaksi dan slippage, memilih jenis transaksi yang tepat dan waktu transaksi untuk meningkatkan kinerja nyata dari strategi.

Meringkaskan

Strategi ini adalah strategi robot perdagangan stop loss ATR yang berbasis di CDC Action Zone untuk menangkap tren pasar melalui EMA, ATR untuk mengatur tingkat stop loss dinamis, dan menggunakan stop loss persentase tetap untuk mengendalikan risiko. Meskipun strategi ini memiliki beberapa keunggulan, masih ada beberapa risiko dan ruang untuk perbaikan. Dengan pengoptimalan dan pengujian lebih lanjut, strategi ini diharapkan dapat berkinerja baik dalam perdagangan nyata.

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