Estrategia de robot comercial de stop-profit y stop-loss de ATR basada en la zona de acción de CDC

TA EMA ATR
Fecha de creación: 2024-06-03 16:19:32 Última modificación: 2024-06-03 16:19:32
Copiar: 3 Número de Visitas: 647
1
Seguir
1617
Seguidores

Estrategia de robot comercial de stop-profit y stop-loss de ATR basada en la zona de acción de CDC

Descripción general

La estrategia es una estrategia de robot de comercio basada en el área de acción de CDC. Utiliza un promedio móvil indexado de 12 y 26 períodos (EMA) para determinar la tendencia del mercado, mientras que el EMA a corto plazo hace más cuando está por encima del EMA a largo plazo, en cambio, hace menos. La estrategia utiliza el promedio real de la amplitud de la onda (ATR) para establecer niveles de parada y pérdida dinámicos. El nivel de parada se determina en función del ATR y un múltiplo, el nivel de pérdida se fija en el 5% del precio de cierre actual.

Principio de estrategia

  1. Calcula el EMA de 12 y 26 ciclos para determinar la tendencia del mercado.
  2. Calcula el ATR para establecer los niveles de parada dinámica y de pérdida.
  3. Cuando la EMA corta está por encima de la EMA larga, emite una señal de compra y abre una posición para hacer más.
  4. Cuando el EMA a corto plazo está por debajo del EMA a largo plazo, emite una señal de venta y abre una posición a la baja.
  5. El nivel de parada se determina basándose en el ATR y en un múltiplo, y se cierra la posición cuando el precio alcanza el nivel de parada.
  6. El nivel de stop loss se fija en el 5% del precio de cierre actual y se liquida cuando el precio alcanza el nivel de stop loss.

Ventajas estratégicas

  1. El uso de EMA para capturar las tendencias del mercado permite adaptarse eficazmente a diferentes entornos de mercado.
  2. El uso de ATR para configurar niveles de paradas dinámicas puede proteger mejor los beneficios.
  3. Los niveles fijos de stop loss ayudan a controlar el riesgo y limitar las pérdidas a niveles aceptables.
  4. La estructura del código es clara, fácil de entender y modificar, adecuada para futuras optimizaciones.

Riesgo estratégico

  1. La EMA es un indicador retrasado que puede emitir señales erróneas cuando el mercado cambia rápidamente.
  2. Los niveles de ATR de contención pueden no proteger los beneficios a tiempo en momentos de gran volatilidad en el mercado.
  3. Los niveles fijos de stop loss pueden, en algunos casos, conducir a una liquidación prematura de las posiciones y a la pérdida de beneficios potenciales.
  4. La estrategia no tiene en cuenta los costos de transacción y los puntos de deslizamiento, y los resultados reales de las transacciones pueden diferir de los resultados de la medición.

Dirección de optimización de la estrategia

  1. Intenta usar otros indicadores de tendencia, como el MACD o el cruce de medias móviles, para mejorar la precisión de la señal.
  2. Optimizar el multiplicador ATR y el porcentaje de stop loss para adaptarse mejor a las diferentes condiciones del mercado.
  3. Introducir mecanismos de detención dinámica de pérdidas, como el seguimiento de las pérdidas o las pérdidas basadas en la volatilidad, para controlar mejor el riesgo.
  4. Tener en cuenta los costos de transacción y los puntos de deslizamiento, y elegir la variedad de transacción y el momento de transacción adecuados para mejorar el rendimiento real de la estrategia.

Resumir

La estrategia es una estrategia de robótica de trading de stop loss de ATR basada en el CDC Action Zone, que capta las tendencias del mercado a través de EMA, ATR para establecer niveles de stop loss dinámicos y para controlar el riesgo con un porcentaje de stop loss fijo. Aunque la estrategia tiene ciertas ventajas, todavía hay algunos riesgos y espacio para mejorar.

Código Fuente de la Estrategia
/*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)