O recurso está a ser carregado... Carregamento...

CDC Zona de Ação Trading Bot Estratégia com ATR para tirar lucro e parar perda

Autora:ChaoZhang, Data: 2024-06-03 16:19:32
Tags:TAEMAATR

img

Resumo

Esta estratégia é uma estratégia de bot de negociação baseada na zona de ação do CDC. Ele usa as médias móveis exponenciais (EMA) de 12 períodos e 26 períodos para determinar as tendências do mercado, indo longo quando a EMA de curto prazo está acima da EMA de longo prazo e indo curto quando o contrário é verdade. A estratégia emprega a faixa média verdadeira (ATR) para definir níveis dinâmicos de take profit e stop loss. O nível de take profit é determinado com base no ATR e em um multiplicador, enquanto o nível de stop loss é fixado em 5% do preço de fechamento atual.

Princípios de estratégia

  1. Calcular as EMAs de 12 e 26 períodos para determinar as tendências do mercado.
  2. Calcular o ATR para definir os níveis dinâmicos de lucro e stop loss.
  3. Quando a EMA de curto prazo está acima da EMA de longo prazo, é gerado um sinal de compra e aberta uma posição longa.
  4. Quando a EMA de curto prazo está abaixo da EMA de longo prazo, é gerado um sinal de venda e aberta uma posição curta.
  5. O nível de take profit é determinado com base no ATR e num multiplicador, e a posição é encerrada quando o preço atinge o nível de take profit.
  6. O nível de stop loss é fixado em 5% do preço de encerramento corrente e a posição é encerrada quando o preço atinge o nível de stop loss.

Vantagens da estratégia

  1. A utilização de EMAs para captar as tendências do mercado pode adaptar-se eficazmente às diferentes condições do mercado.
  2. A utilização do ATR para definir níveis dinâmicos de lucro pode proteger melhor os lucros.
  3. Os níveis fixos de stop loss ajudam a controlar o risco e a limitar as perdas a um intervalo aceitável.
  4. A estrutura do código é clara e fácil de entender e modificar, tornando-o adequado para uma otimização adicional.

Riscos estratégicos

  1. As EMA são indicadores atrasados e podem gerar falsos sinais quando o mercado muda rapidamente.
  2. Os níveis de tomada de lucro baseados no ATR podem não proteger os lucros a tempo durante a alta volatilidade do mercado.
  3. Os níveis fixos de stop loss podem levar, em alguns casos, ao encerramento prematuro de posições, perdendo assim os lucros potenciais.
  4. A estratégia não considera custos de negociação e deslizamento, de modo que os resultados reais da negociação podem diferir dos resultados do backtesting.

Orientações para a otimização da estratégia

  1. Experimente com outros indicadores de tendência, como o MACD ou os crossovers da média móvel, para melhorar a precisão do sinal.
  2. Otimizar o multiplicador ATR e tomar percentagens de lucro/perda para melhor se adaptar às diferentes condições de mercado.
  3. Introduzir mecanismos dinâmicos de stop loss, tais como trailing stops ou stops baseados na volatilidade, para melhor controlar o risco.
  4. Considerar os custos de negociação e o deslizamento e escolher os instrumentos de negociação e as sessões de negociação apropriados para melhorar o desempenho real da estratégia.

Resumo

Esta estratégia é uma estratégia de bot de negociação de take profit e stop loss baseada em ATR baseada na zona de ação CDC. Ele usa EMAs para capturar tendências de mercado, ATR para definir níveis dinâmicos de take profit e stop losses percentuais fixos para controlar o risco. Embora a estratégia tenha certas vantagens, ainda tem alguns riscos e espaço para melhoria.


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


Relacionados

Mais.