Sumber daya yang dimuat... Pemuatan...

CDC Action Zone Trading Bot Strategy dengan ATR untuk mengambil keuntungan dan menghentikan kerugian

Penulis:ChaoZhang, Tanggal: 2024-06-03 16:19:32
Tag:TAEMAATR

img

Gambaran umum

Strategi ini adalah strategi trading bot yang didasarkan pada zona tindakan CDC. Strategi ini menggunakan 12 periode dan 26 periode Exponential Moving Averages (EMA) untuk menentukan tren pasar, pergi panjang ketika EMA jangka pendek di atas EMA jangka panjang dan pergi pendek ketika sebaliknya benar. Strategi ini menggunakan Average True Range (ATR) untuk mengatur tingkat take profit dan stop loss yang dinamis.

Prinsip Strategi

  1. Menghitung EMA 12 periode dan 26 periode untuk menentukan tren pasar.
  2. Menghitung ATR untuk mengatur tingkat profit dan stop loss yang dinamis.
  3. Ketika EMA jangka pendek berada di atas EMA jangka panjang, sinyal beli dihasilkan, dan posisi panjang dibuka.
  4. Ketika EMA jangka pendek berada di bawah EMA jangka panjang, sinyal jual dihasilkan, dan posisi pendek dibuka.
  5. Tingkat take profit ditentukan berdasarkan ATR dan pengganda, dan posisi ditutup ketika harga mencapai tingkat take profit.
  6. Tingkat stop loss ditetapkan pada 5% dari harga penutupan saat ini, dan posisi ditutup ketika harga mencapai tingkat stop loss.

Keuntungan Strategi

  1. Menggunakan EMA untuk menangkap tren pasar dapat secara efektif beradaptasi dengan kondisi pasar yang berbeda.
  2. Menggunakan ATR untuk menetapkan tingkat keuntungan yang dinamis dapat lebih melindungi keuntungan.
  3. Tingkat stop loss tetap membantu mengendalikan risiko dan membatasi kerugian ke kisaran yang dapat diterima.
  4. Struktur kode jelas dan mudah dimengerti dan dimodifikasi, membuatnya cocok untuk optimasi lebih lanjut.

Risiko Strategi

  1. EMA adalah indikator yang tertinggal dan dapat menghasilkan sinyal palsu ketika pasar berubah dengan cepat.
  2. Tingkat mengambil keuntungan berdasarkan ATR mungkin tidak melindungi keuntungan tepat waktu selama volatilitas pasar yang tinggi.
  3. Tingkat stop loss tetap dapat menyebabkan penutupan posisi dini dalam beberapa kasus, kehilangan potensi keuntungan.
  4. Strategi ini tidak mempertimbangkan biaya perdagangan dan slippage, sehingga hasil perdagangan yang sebenarnya mungkin berbeda dari hasil backtesting.

Arah Optimasi Strategi

  1. Bereksperimen dengan indikator tren lainnya, seperti MACD atau crossover rata-rata bergerak, untuk meningkatkan akurasi sinyal.
  2. Mengoptimalkan pengganda ATR dan mengambil persentase profit/stop loss untuk lebih beradaptasi dengan kondisi pasar yang berbeda.
  3. Memperkenalkan mekanisme stop loss dinamis, seperti trailing stop atau volatility-based stop, untuk mengontrol risiko dengan lebih baik.
  4. Pertimbangkan biaya perdagangan dan slippage, dan pilih instrumen perdagangan dan sesi perdagangan yang tepat untuk meningkatkan kinerja sebenarnya strategi.

Ringkasan

Strategi ini adalah strategi perdagangan bot mengambil keuntungan dan stop loss berbasis ATR berdasarkan zona tindakan CDC. Ini menggunakan EMA untuk menangkap tren pasar, ATR untuk menetapkan tingkat mengambil keuntungan dinamis, dan stop loss persentase tetap untuk mengendalikan risiko. Meskipun strategi ini memiliki keuntungan tertentu, strategi ini masih memiliki beberapa risiko dan ruang untuk perbaikan. Dengan optimasi dan pengujian lebih lanjut, strategi ini dapat mencapai kinerja yang baik dalam perdagangan aktual.


/*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)


Berkaitan

Lebih banyak