Estratégia de robô de negociação stop-profit e stop-loss ATR com base na zona de ação do CDC

TA EMA ATR
Data de criação: 2024-06-03 16:19:32 última modificação: 2024-06-03 16:19:32
cópia: 3 Cliques: 647
1
focar em
1617
Seguidores

Estratégia de robô de negociação stop-profit e stop-loss ATR com base na zona de ação do CDC

Visão geral

A estratégia é uma estratégia de robô de negociação baseada na zona de ação do CDC. Ela usa uma média móvel indexada de 12 e 26 ciclos (EMA) para determinar a tendência do mercado, quando a EMA curta é mais alta do que a EMA longa. A estratégia usa a amplitude real média (ATR) para definir níveis de parada e perda dinâmica.

Princípio da estratégia

  1. Calculação de EMAs de 12 e 26 ciclos para determinar a tendência do mercado.
  2. Calcule o ATR para definir os níveis de parada dinâmica e de parada de perda.
  3. Quando a EMA curta está acima da EMA longa, emite um sinal de compra e abre uma posição para fazer mais.
  4. Quando a EMA de curto prazo está abaixo da EMA de longo prazo, emite um sinal de venda e abre uma posição a zero.
  5. O nível de parada é determinado com base no ATR e num múltiplo, e é liquidado quando o preço atinge o nível de parada.
  6. O nível de parada de perda é fixado em 5% do preço de fechamento atual e é fechado quando o preço atinge o nível de parada de perda.

Vantagens estratégicas

  1. A utilização de EMA para captar tendências de mercado permite uma adaptação eficaz a diferentes contextos de mercado.
  2. O ATR pode ser usado para definir níveis de paralisação dinâmica e proteger melhor os lucros.
  3. O nível fixo de stop loss ajuda a controlar o risco e a limitar os prejuízos a níveis aceitáveis.
  4. A estrutura do código é clara, fácil de entender e de modificar, para uma melhor otimização.

Risco estratégico

  1. O EMA é um indicador atrasado que pode emitir sinais errados quando o mercado muda rapidamente.
  2. Os níveis de ATR de suspensão podem não proteger os lucros em tempo hábil em momentos de grande volatilidade no mercado.
  3. Os níveis fixos de stop loss podem, em alguns casos, levar a liquidações prematuras e a perda de potenciais lucros.
  4. A estratégia não leva em conta os custos de transação e os pontos de deslizamento, e os resultados reais das transações podem diferir dos resultados da retrospectiva.

Direção de otimização da estratégia

  1. Tente usar outros indicadores de tendência, como o MACD ou a média móvel cruzada, para melhorar a precisão do sinal.
  2. Otimizar o ATR e a Stop Loss para melhor se adaptar a diferentes condições de mercado.
  3. A introdução de mecanismos de parada dinâmica, como parada de seguimento ou parada baseada na taxa de flutuação, para um melhor controle do risco.
  4. Considere os custos e os pontos de deslizamento das transações e escolha o tipo de transação e o momento de transação apropriados para melhorar o desempenho real da estratégia.

Resumir

A estratégia é uma estratégia de robô de negociação de stop-loss ATR baseada na zona de ação CDC, que capta as tendências do mercado através da EMA, a ATR para definir níveis de stop-loss dinâmicos e o risco é controlado com um percentual de stop-loss fixo. Embora a estratégia tenha alguns benefícios, ainda há alguns riscos e espaço para melhorias.

Código-fonte da estratégia
/*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)