Sumber dimuat naik... memuat...

CDC Action Zone Strategi Bot Dagangan dengan ATR untuk mengambil keuntungan dan hentikan kerugian

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

img

Ringkasan

Strategi ini adalah strategi bot perdagangan berdasarkan zon tindakan CDC. Ia menggunakan purata bergerak eksponen 12 tempoh dan 26 tempoh (EMA) untuk menentukan trend pasaran, pergi lama apabila EMA jangka pendek di atas EMA jangka panjang dan pergi pendek apabila sebaliknya berlaku. Strategi ini menggunakan Julat Benar Purata (ATR) untuk menetapkan tahap mengambil keuntungan dan menghentikan kerugian dinamik. Tahap mengambil keuntungan ditentukan berdasarkan ATR dan pengganda, sementara tahap kehilangan berhenti ditetapkan pada 5% daripada harga penutupan semasa.

Prinsip Strategi

  1. Mengira EMA 12 tempoh dan 26 tempoh untuk menentukan trend pasaran.
  2. Mengira ATR untuk menetapkan tahap mengambil keuntungan dinamik dan menghentikan kerugian.
  3. Apabila EMA jangka pendek berada di atas EMA jangka panjang, isyarat beli dihasilkan, dan kedudukan panjang dibuka.
  4. Apabila EMA jangka pendek berada di bawah EMA jangka panjang, isyarat jual dihasilkan, dan kedudukan pendek dibuka.
  5. Tahap mengambil keuntungan ditentukan berdasarkan ATR dan pengganda, dan kedudukan ditutup apabila harga mencapai tahap mengambil keuntungan.
  6. Tahap stop loss ditetapkan pada 5% daripada harga penutupan semasa, dan kedudukan ditutup apabila harga mencapai tahap stop loss.

Kelebihan Strategi

  1. Menggunakan EMA untuk menangkap trend pasaran dapat menyesuaikan diri dengan berkesan dengan keadaan pasaran yang berbeza.
  2. Menggunakan ATR untuk menetapkan tahap keuntungan yang dinamik dapat melindungi keuntungan dengan lebih baik.
  3. Tahap stop loss tetap membantu mengawal risiko dan mengehadkan kerugian kepada julat yang boleh diterima.
  4. Struktur kod adalah jelas dan mudah difahami dan diubah suai, menjadikannya sesuai untuk pengoptimuman lanjut.

Risiko Strategi

  1. EMA adalah penunjuk yang tertinggal dan boleh menghasilkan isyarat palsu apabila pasaran berubah dengan cepat.
  2. Tahap mengambil keuntungan berasaskan ATR mungkin tidak melindungi keuntungan dalam masa semasa turun naik pasaran yang tinggi.
  3. Tahap stop loss tetap boleh membawa kepada penutupan kedudukan lebih awal dalam beberapa kes, kehilangan keuntungan yang berpotensi.
  4. Strategi ini tidak mempertimbangkan kos dagangan dan slippage, jadi hasil dagangan sebenar mungkin berbeza dari hasil backtesting.

Arahan Pengoptimuman Strategi

  1. Bereksperimen dengan penunjuk trend lain, seperti MACD atau persilangan purata bergerak, untuk meningkatkan ketepatan isyarat.
  2. Mengoptimumkan pengganda ATR dan mengambil peratusan keuntungan / stop loss untuk menyesuaikan diri dengan lebih baik dengan keadaan pasaran yang berbeza.
  3. Memperkenalkan mekanisme stop loss dinamik, seperti stop trailing atau stop berasaskan turun naik, untuk mengawal risiko dengan lebih baik.
  4. Pertimbangkan kos dagangan dan slippage, dan pilih instrumen dagangan dan sesi dagangan yang sesuai untuk meningkatkan prestasi sebenar strategi.

Ringkasan

Strategi ini adalah strategi bot perdagangan mengambil keuntungan dan menghentikan kerugian berasaskan ATR berdasarkan zon tindakan CDC. Ia menggunakan EMA untuk menangkap trend pasaran, ATR untuk menetapkan tahap mengambil keuntungan dinamik, dan kerugian berhenti peratusan tetap untuk mengawal risiko. Walaupun strategi ini mempunyai kelebihan tertentu, ia masih mempunyai beberapa risiko dan ruang untuk peningkatan. Dengan pengoptimuman dan ujian lanjut, strategi ini mungkin mencapai prestasi yang baik dalam perdagangan sebenar.


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