Стратегия торгового робота ATR stop-profit и stop-loss на основе зоны действия CDC

TA EMA ATR
Дата создания: 2024-06-03 16:19:32 Последнее изменение: 2024-06-03 16:19:32
Копировать: 3 Количество просмотров: 647
1
Подписаться
1617
Подписчики

Стратегия торгового робота ATR stop-profit и stop-loss на основе зоны действия CDC

Обзор

Стратегия является стратегией торговых роботов, основанной на CDC Action Zone. Она использует 12-циклические и 26-циклические индикаторные движущиеся средние ((EMA) для определения рыночной тенденции, когда краткосрочные ЭМА делают больше, когда они выше долгосрочных ЭМА, и наоборот, делают меньше.

Стратегический принцип

  1. Расчет 12-циклической и 26-циклической ЭМА, используемый для определения рыночных тенденций.
  2. ATR рассчитывается для установки динамических остановок и уровней убытков.
  3. Когда краткосрочная ЭМА находится выше долгосрочной ЭМА, посылают сигнал купить и открывают позицию сделать больше.
  4. Когда краткосрочная EMA находится ниже долгосрочной EMA, выпускается сигнал продажи и открывается позиция.
  5. Уровень остановки определяется на основе ATR и множителя, который выводит из строя, когда цена достигает уровня остановки.
  6. Уровень остановки убытков фиксируется на уровне 5% от текущей цены закрытия, а при достижении уровня остановки убытков - на уровне ликвидации.

Стратегические преимущества

  1. Использование EMA для захвата рыночных тенденций позволяет эффективно адаптироваться к различным рыночным условиям.
  2. Применение ATR для установки динамических остановочных уровней позволяет лучше защищать прибыль.
  3. Фиксированный уровень стоп-лосса помогает контролировать риски и ограничивать потери до приемлемых пределов.
  4. Структура кода ясна, легко понятна и поддается модификации для дальнейшей оптимизации.

Стратегический риск

  1. EMA - это отсталый индикатор, который может подавать ошибочные сигналы при быстрых изменениях рынка.
  2. Уровень ATR-остановки может не позволить своевременно защитить прибыль при значительной волатильности рынка.
  3. Фиксированный уровень остановки убытков в некоторых случаях может привести к преждевременному закрытию позиции и потере потенциальной прибыли.
  4. Стратегия не учитывает стоимость сделки и скольжения, и фактические результаты могут отличаться от результатов обратной оценки.

Направление оптимизации стратегии

  1. Попробуйте использовать другие трендовые индикаторы, такие как MACD или пересечение скользящих средних, чтобы повысить точность сигнала.
  2. Оптимизация ATR-коэффициентов и стоп-стоп-процентов, чтобы лучше адаптироваться к различным рыночным условиям.
  3. Введение динамических механизмов остановки убытков, таких как отслеживание убытков или убытков, основанных на волатильности, для лучшего контроля риска.
  4. Учитывайте затраты на торговлю и скользящие точки, выбирайте подходящие виды торговли и время торговли, чтобы повысить реальную эффективность стратегии.

Подвести итог

Стратегия представляет собой стратегию ATR Stop Loss Trading Robot, основанную на CDC Action Zone, которая использует 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)