Stratégie de robot de trading stop-profit et stop-loss ATR basée sur la zone d'action CDC

TA EMA ATR
Date de création: 2024-06-03 16:19:32 Dernière modification: 2024-06-03 16:19:32
Copier: 3 Nombre de clics: 647
1
Suivre
1617
Abonnés

Stratégie de robot de trading stop-profit et stop-loss ATR basée sur la zone d’action CDC

Aperçu

La stratégie est une stratégie de trading robot basée sur les zones d’action du CDC. Elle utilise une moyenne mobile indicielle de 12 cycles et de 26 cycles (EMA) pour déterminer la tendance du marché. La stratégie utilise une amplitude réelle moyenne (ATR) pour définir des niveaux d’arrêt et de perte dynamiques.

Principe de stratégie

  1. Les EMA de 12 cycles et de 26 cycles sont calculés pour déterminer la tendance du marché.
  2. Calculer l’ATR, qui sert à définir les niveaux d’arrêt dynamique et d’arrêt de perte.
  3. Lorsque l’EMA à court terme est au-dessus de l’EMA à long terme, envoyez un signal d’achat et placez-vous plus haut.
  4. Lorsque l’EMA court-terme est en dessous de l’EMA long-terme, envoyez un signal de vente et ouvrez une position à vide.
  5. Les niveaux de stop sont déterminés par l’ATR et un multiplicateur, et les positions sont libérées lorsque le prix atteint le niveau de stop.
  6. Le seuil de stop loss est fixé à 5% du prix de clôture actuel, et le cours est mis en position de liquidation lorsqu’il atteint le seuil de stop loss.

Avantages stratégiques

  1. L’EMA est utilisé pour capturer les tendances du marché et s’adapter efficacement à différents environnements de marché.
  2. L’utilisation de l’ATR pour définir des niveaux d’arrêt dynamique peut mieux protéger les bénéfices.
  3. Un niveau de stop-loss fixe aide à contrôler le risque et à limiter les pertes à des niveaux acceptables.
  4. La structure du code est claire, facile à comprendre et à modifier, adaptée à une optimisation ultérieure.

Risque stratégique

  1. L’EMA est un indicateur en retard qui peut donner de faux signaux lorsque le marché évolue rapidement.
  2. Les niveaux d’arrêt d’ATR peuvent ne pas protéger les bénéfices en temps opportun en cas de forte volatilité du marché.
  3. Les niveaux fixes de stop-loss peuvent, dans certains cas, conduire à une liquidation prématurée et à la perte de bénéfices potentiels.
  4. La stratégie ne prend pas en compte les coûts et les points de glissement des transactions, et les résultats réels des transactions peuvent différer des résultats de la rétroanalyse.

Orientation de l’optimisation de la stratégie

  1. Essayez d’utiliser d’autres indicateurs de tendance, comme le MACD ou la moyenne mobile croisée, pour améliorer la précision du signal.
  2. Optimiser le multiplicateur ATR et le pourcentage de stop-loss pour mieux s’adapter aux différentes conditions du marché.
  3. L’introduction de mécanismes de stop-loss dynamiques, tels que le stop-loss suivi ou le stop-loss basé sur la volatilité, permet de mieux contrôler le risque.
  4. Prendre en compte les coûts et les points de glissement des transactions et choisir les types et les périodes de transactions appropriés pour améliorer la performance réelle de la stratégie.

Résumer

La stratégie est une stratégie de robot de trading stop-loss ATR basée sur la zone d’action CDC, qui capture les tendances du marché via EMA, ATR pour définir des niveaux de stop-loss dynamiques, et utilise un pourcentage de stop-loss fixe pour contrôler le risque. Bien que la stratégie présente certains avantages, il existe encore des risques et de la place pour l’amélioration.

Code source de la stratégie
/*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)