Stratégie de suivi des tendances multi-indicateurs combinée à un système d'optimisation stop-profit et stop-loss

SMA AO AC
Date de création: 2024-12-05 16:21:07 Dernière modification: 2024-12-05 16:21:07
Copier: 1 Nombre de clics: 364
1
Suivre
1617
Abonnés

Stratégie de suivi des tendances multi-indicateurs combinée à un système d’optimisation stop-profit et stop-loss

Aperçu

La stratégie est un système de trading intégré de suivi de la tendance, combinant un mécanisme de confirmation de signaux multiples de l’indicateur Alligator, de l’indicateur d’oscillation dynamique AO et de l’indicateur d’oscillation accélérée AC. Le système identifie les tendances du marché à travers la croisée et la confirmation de tendance de plusieurs indicateurs et gère les risques de stop-loss dynamiques pour obtenir un effet de trading contrôlable.

Principe de stratégie

La logique centrale de la stratégie est basée sur trois composantes principales:

  1. Système d’indicateur de crocodile: utilisation de moyennes mobiles de différentes périodes (13/8/5) pour confirmer la direction de la tendance par la croisée des lignes des lèvres et des dents.
  2. Système de confirmation de la dynamique: en combinant les indicateurs AO et AC, confirmer l’intensité de la tendance en jugeant les valeurs positives et négatives de ces deux indicateurs.
  3. Système de gestion des risques: paramétrage dynamique des arrêts de perte, paramétrage des arrêts de perte en fonction des points maximum/minimum des 5 dernières lignes K, et paramétrage des arrêts de perte avec un rapport de risque/bénéfice de 1: 2.

Conditions de déclenchement du signal multiple:

  • Entrée multiple: denture sur les lèvres + AO est positif + AC est positif
  • Entrée à vide: dentition sous la ligne des lèvres + AO négatif + AC négatif

Avantages stratégiques

  1. Le mécanisme de confirmation de signaux multiples réduit le risque de fausses percées.
  2. Les paramètres de stop-loss dynamiques s’adaptent aux changements de volatilité du marché.
  3. Un rapport risque/bénéfice fixe contribue à la stabilité des bénéfices à long terme.
  4. Le portefeuille d’indicateurs prend en compte à la fois la tendance et la dynamique, ce qui améliore la précision des transactions.
  5. Le système est hautement automatisé, ce qui réduit les interférences avec les jugements subjectifs.

Risque stratégique

  1. La multiplication des indicateurs peut entraîner un retard de signal et la perte du meilleur moment pour entrer.
  2. Les faux signaux peuvent être fréquents dans les marchés en crise.
  3. Le rapport risque/bénéfice fixe peut ne pas convenir à tous les environnements de marché.
  4. Les arrêts dynamiques peuvent être déclenchés prématurément lorsque les fluctuations sont fortes.

Orientation de l’optimisation de la stratégie

  1. L’introduction d’un mécanisme d’adaptation au taux de volatilité et d’ajustement dynamique du taux de stop-loss.
  2. Augmenter les filtres d’intensité de tendance pour éviter de négocier dans un environnement de tendance faible.
  3. Développer un système de classification des environnements de marché qui utilise différentes combinaisons de paramètres dans différents états de marché.
  4. L’adhésion à un mécanisme de confirmation des transactions améliore la fiabilité du signal.
  5. Envisagez d’introduire un filtre temporel pour éviter les périodes de négociation inefficaces.

Résumer

La stratégie utilise l’intégration de plusieurs indicateurs techniques pour créer un système de négociation complet. Le système ne se concentre pas seulement sur l’exactitude des signaux, mais protège également les fonds grâce à une gestion rigoureuse des risques. Bien qu’il existe un certain risque de retard, la stratégie est susceptible d’obtenir de meilleures performances grâce à l’optimisation des directions recommandées.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Alligator with AO and AC Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ---------------------------- Индикатор Аллигатор ----------------------------

// Параметры Аллигатора
jawLength = input.int(13, title="Jaw Length")
teethLength = input.int(8, title="Teeth Length")
lipsLength = input.int(5, title="Lips Length")

jawOffset = input.int(8, title="Jaw Offset")
teethOffset = input.int(5, title="Teeth Offset")
lipsOffset = input.int(3, title="Lips Offset")

// Расчёт скользящих средних
jawLine = ta.sma(close, jawLength)
teethLine = ta.sma(close, teethLength)
lipsLine = ta.sma(close, lipsLength)

// Сдвиг линий
jaw = jawLine[jawOffset]
teeth = teethLine[teethOffset]
lips = lipsLine[lipsOffset]

// Отображение линий Аллигатора
plot(jaw, color=color.blue, linewidth=2, title="Jaw (13,8)")
plot(teeth, color=color.red, linewidth=2, title="Teeth (8,5)")
plot(lips, color=color.green, linewidth=2, title="Lips (5,3)")

// ---------------------------- Awesome Oscillator (AO) ----------------------------

// Расчёт AO
medianPrice = (high + low) / 2
ao = ta.sma(medianPrice, 5) - ta.sma(medianPrice, 34)

// Отображение AO
hline(0, "Zero Line", color=color.gray)
plot(ao, title="Awesome Oscillator", color=(ao >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2)

// ---------------------------- Accelerator Oscillator (AC) ----------------------------

// Расчёт AC
ac = ao - ta.sma(ao, 5)

// Отображение AC
plot(ac, title="Accelerator Oscillator", color=(ac >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2)

// ---------------------------- Логика сигналов и управление позицией ----------------------------

// Условия для открытия длинной позиции
longCondition = ta.crossover(lips, teeth) and ao > 0 and ac > 0
if (longCondition)
    // Определение уровней stop-loss и take-profit
    stopLevel = ta.lowest(low, 5) // Минимум за последние 5 свечей
    takeProfit = close + (close - stopLevel) * 2 // Соотношение риска к прибыли 1:2

    // Открытие длинной позиции
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", "Long", limit=takeProfit, stop=stopLevel)

// Условия для открытия короткой позиции
shortCondition = ta.crossunder(lips, teeth) and ao < 0 and ac < 0
if (shortCondition)
    // Определение уровней stop-loss и take-profit
    stopLevelShort = ta.highest(high, 5) // Максимум за последние 5 свечей
    takeProfitShort = close - (stopLevelShort - close) * 2 // Соотношение риска к прибыли 1:2

    // Открытие короткой позиции
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit Short", "Short", limit=takeProfitShort, stop=stopLevelShort)

// Отображение уровней на графике
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")