Эта стратегия - это стратегия торгового бота, основанная на зоне действия CDC. Она использует 12-периодные и 26-периодные экспоненциальные скользящие средние (EMA) для определения рыночных тенденций, идя в длинный путь, когда краткосрочная EMA выше долгосрочной EMA, и уходя в короткий путь, когда происходит обратное. Стратегия использует средний истинный диапазон (ATR) для установки динамических уровней получения прибыли и остановки убытков. Уровень получения прибыли определяется на основе ATR и мультипликатора, в то время как уровень остановки убытков фиксируется на уровне 5% от текущей цены закрытия.
Эта стратегия представляет собой бот-стратегию торговли с прибылью и остановкой потери, основанную на зоне действия CDC. Она использует EMA для улавливания рыночных тенденций, ATR для установки динамических уровней прибыли и фиксированных процентных остановочных потерь для контроля риска. Хотя стратегия имеет определенные преимущества, у нее все еще есть некоторые риски и возможности для улучшения.
/*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)