Stratégie de cassure à moyennes mobiles multiples


Date de création: 2023-11-22 13:41:38 Dernière modification: 2023-11-22 13:41:38
Copier: 0 Nombre de clics: 607
1
Suivre
1617
Abonnés

Stratégie de cassure à moyennes mobiles multiples

Aperçu

La stratégie utilise les ruptures et les rebondissements de multiples moyennes mobiles pour générer des signaux de négociation. Lorsque le prix franchit la moyenne ascendante, faites plus; lorsque le prix tombe sous la moyenne descendante, faites moins.

Principe de stratégie

Le code utilise 4 moyennes mobiles de différentes périodes: la ligne 21, la ligne 50, la ligne 100 et la ligne 200. L’entrée est plus élevée lorsque le prix franchit ces lignes moyennes et vide lorsque le prix tombe sous ces lignes moyennes.

L’idée centrale de cette stratégie est d’utiliser des moyennes mobiles pour déterminer la tendance des prix. Lorsque les prix franchissent la ligne moyenne ascendante, cela signifie qu’ils sont actuellement en tendance à la hausse, il faut faire plus; lorsque les prix franchissent la ligne moyenne descendante, cela signifie qu’ils sont actuellement en tendance à la baisse, il faut faire moins.

Analyse des avantages

Les principaux avantages de cette stratégie sont:

  1. L’utilisation d’un jugement de moyenne multiple peut filtrer efficacement les faux signaux.
  2. Définir une stratégie de stop-loss pour limiter les pertes individuelles
  3. Simple à utiliser et facile à mettre en œuvre

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. Les stratégies de moyennes mobiles sont susceptibles d’entraîner des défaillances et donc de manquer le point de basculement
  2. La fausse détection peut causer des dommages
  3. Une mauvaise configuration du pare-feu peut augmenter les pertes

Ces risques peuvent être atténués en ajustant les paramètres de la moyenne et en optimisant les stratégies de stop-loss.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Tester des combinaisons de ligne moyenne à plus de cycles pour trouver les paramètres optimaux
  2. Ajouter d’autres indicateurs pour éviter les fausses percées
  3. Optimiser les stratégies de stop-loss pour un meilleur rapport risque/bénéfice
  4. Ajuster les paramètres pour une stratégie plus robuste en fonction des différentes conditions du marché

Résumer

Cette stratégie est une stratégie de suivi de tendance typique. L’avantage est que l’idée est claire, facile à comprendre et à mettre en œuvre. L’inconvénient est qu’il est facile de générer de faux signaux.

Code source de la stratégie
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)