
La stratégie est une stratégie de trading robot basée sur les zones d’action du CDC. Elle utilise une moyenne mobile indicielle de 12 cycles et de 26 cycles (EMA) pour déterminer la tendance du marché. La stratégie utilise une amplitude réelle moyenne (ATR) pour définir des niveaux d’arrêt et de perte dynamiques.
La stratégie est une stratégie de robot de trading stop-loss ATR basée sur la zone d’action CDC, qui capture les tendances du marché via EMA, ATR pour définir des niveaux de stop-loss dynamiques, et utilise un pourcentage de stop-loss fixe pour contrôler le risque. Bien que la stratégie présente certains avantages, il existe encore des risques et de la place pour l’amélioration.
/*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)