Stratégie de trading adaptative de croisement de prix à moyenne mobile

HMA SL TP
Date de création: 2024-09-26 16:12:36 Dernière modification: 2024-09-26 16:12:36
Copier: 2 Nombre de clics: 441
1
Suivre
1617
Abonnés

Stratégie de trading adaptative de croisement de prix à moyenne mobile

Aperçu

La stratégie de négociation auto-adaptative de prix croisés équidistants est une méthode de négociation quantitative basée sur la moyenne mobile de Hull (HMA). Cette stratégie utilise les prix croisés avec les HMA pour générer des signaux d’achat et de vente, tout en définissant des niveaux fixes de stop loss et de stop loss pour gérer les risques et les gains.

Principe de stratégie

Le cœur de la stratégie est l’utilisation de la moyenne mobile de Hull (HMA) comme indicateur principal. L’HMA est une moyenne mobile avancée qui est capable de répondre rapidement aux variations de prix tout en réduisant le retard. La logique de la stratégie est la suivante:

  1. Calculer une HMA de 104 cycles
  2. Lorsque le prix passe à la hausse par le HMA, le trader ouvre une position plus forte.
  3. Lorsque le prix passe en dessous de la HMA, la position est vide.
  4. Pour chaque transaction, définissez un niveau fixe de stop loss (de 1,25) et de stop loss (de 37,5).
  5. Pour chaque transaction, 2 contrats sont utilisés.

La stratégie consiste à suivre les positions ouvertes pour s’assurer qu’il n’y a pas de réouverture de position dans les positions existantes. Une fois qu’une transaction est clôturée, le système réinitialise le signal, permettant l’entrée en vigueur d’un nouveau signal de transaction.

Avantages stratégiques

  1. Adaptabilité: L’HMA est capable de s’adapter rapidement aux changements du marché et de réduire les faux signaux.
  2. Gestion des risques: utilisez des niveaux fixes de stop loss et de stop-loss pour contrôler efficacement le risque de chaque transaction.
  3. Simple et clair: les règles de la transaction sont claires, faciles à comprendre et à appliquer.
  4. Le trading bidirectionnel: saisir les opportunités de hausse et de baisse pour augmenter le potentiel de profit.
  5. Automatisation: les stratégies peuvent être entièrement automatisées, réduisant l’intervention humaine et l’impact émotionnel.

Risque stratégique

  1. Fréquence des transactions: les signaux de transaction peuvent être excessifs dans un marché très volatil, ce qui augmente les coûts de transaction.
  2. Stop-loss/stop-stop fixe: peut ne pas être adapté à toutes les conditions du marché, et dans certains cas, peut être prématuré ou manquer une tendance majeure.
  3. La dépendance à un seul indicateur: la dépendance à l’HMA seule peut ne pas fonctionner correctement dans certains environnements de marché.
  4. Rarité: malgré la réduction du retard de l’HMA, il est possible qu’il ne réagisse pas suffisamment au point de basculement.
  5. Manque de filtrage des conditions de marché: sans tenir compte des tendances ou des fluctuations globales du marché, il est possible de négocier dans des conditions de marché inappropriées.

Orientation de l’optimisation de la stratégie

  1. Introduction d’indicateurs supplémentaires: en combinaison avec d’autres indicateurs techniques (comme le RSI ou le MACD) pour confirmer le signal et améliorer la précision.
  2. Stop/stop dynamique: les niveaux de stop et stop sont ajustés en fonction de la volatilité du marché pour s’adapter aux différentes conditions du marché.
  3. Ajouter un filtre de marché: ajouter un filtre de force de tendance ou de volatilité pour éviter de négocier dans des conditions de marché défavorables
  4. Optimiser les paramètres HMA: tester différents cycles HMA pour trouver les paramètres les plus adaptés à un marché donné.
  5. Introduction de la gestion des positions: ajustement dynamique de la taille des transactions en fonction du risque du marché et de la taille du compte.
  6. Ajouter un filtrage temporel: évitez de négocier pendant les périodes de plus grande volatilité du marché, par exemple pendant la publication de données économiques importantes.

Résumer

La stratégie de trading en ligne croisée à prix auto-adaptatif est une méthode de trading simple et efficace. En tirant parti des avantages de la moyenne mobile de Hull, la stratégie est capable de capturer les tendances du marché tout en protégeant les fonds grâce à des mesures de gestion des risques fixes. Bien que la stratégie présente certains risques potentiels, sa performance et son adaptabilité peuvent être encore améliorées par une optimisation et une amélioration continues.

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

//@version=5
strategy("SHIESTD", overlay=true)

// Function to calculate Hull Moving Average (HMA)
hma(src, length) =>
    wma1 = ta.wma(src, length)
    wma2 = ta.wma(src, length / 2)
    hma = ta.wma(2 * wma2 - wma1, math.round(math.sqrt(length)))
    hma

// Parameters
hma_length = 104

// Calculate Hull Moving Average
hma_value = hma(close, hma_length)

// Plot HMA
plot(hma_value, title="104-period Hull Moving Average", color=color.blue, linewidth=2)

// Define SL and TP values in dollars
long_sl_amount = 1.25
long_tp_amount = 37.5
short_sl_amount = 1.25
short_tp_amount = 37.5

// Number of contracts
contracts = 2

// Function to calculate SL and TP prices based on entry price and dollar amounts
long_sl_price(entry_price) =>
    entry_price - long_sl_amount

long_tp_price(entry_price) =>
    entry_price + long_tp_amount

short_sl_price(entry_price) =>
    entry_price + short_sl_amount

short_tp_price(entry_price) =>
    entry_price - short_tp_amount

// Trading conditions
price_intersects_hma = ta.crossover(close, hma_value) or ta.crossunder(close, hma_value)

// Long and Short Conditions based on price intersecting HMA
long_condition = ta.crossover(close, hma_value)
short_condition = ta.crossunder(close, hma_value)

// Track open positions
var bool long_open = false
var bool short_open = false

// Handle Long Positions
if (long_condition and not long_open)
    entry_price = close
    strategy.entry("Long", strategy.long, qty=contracts)
    strategy.exit("Exit Long", from_entry="Long", stop=long_sl_price(entry_price), limit=long_tp_price(entry_price))
    long_open := true

// Handle Short Positions
if (short_condition and not short_open)
    entry_price = close
    strategy.entry("Short", strategy.short, qty=contracts)
    strategy.exit("Exit Short", from_entry="Short", stop=short_sl_price(entry_price), limit=short_tp_price(entry_price))
    short_open := true

// Reset flags when the position is closed
if (strategy.opentrades == 0)
    long_open := false
    short_open := false