Les ressources ont été chargées... Je charge...

Stratégie de croisement entre plusieurs moyennes mobiles

Auteur:ChaoZhang est là., Date: 2024-02-04 17h21 et 25h
Les étiquettes:

img

Résumé

Cette stratégie calcule les lignes moyennes mobiles de plusieurs délais pour déterminer la tendance à travers différentes périodes. Elle va long lorsque le prix dépasse les moyennes mobiles et court lorsque le prix dépasse les moyennes mobiles.

Principaux

La stratégie repose sur les points clés suivants:

  1. Calculer les moyennes mobiles simples de 21 jours, 50 jours, 100 jours et 200 jours.

  2. Allez long lorsque le prix dépasse l'une des moyennes mobiles, et allez court quand il dépasse en dessous.

  3. Définir le stop loss près du prix le plus bas de la barre précédente après ouverture de positions longues et près du prix le plus élevé après ouverture de positions courtes.

  4. Fixer des objectifs de prise de profit inférieurs au prix le plus bas pour les positions longues et supérieurs au prix le plus élevé pour les positions courtes dans certaines fourchettes.

  5. Fermez les positions lorsque le prix atteint le niveau de stop loss ou de profit.

Les mécanismes de stop loss et take profit contrôlent les risques en sortant des positions lorsque les pertes s'étendent ou que les bénéfices atteignent certains niveaux.

Les avantages

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

  1. Amélioration de la fiabilité des signaux grâce à l'analyse de plusieurs délais.

  2. Les arrêts dynamiques facilitent le contrôle des risques. Le calcul des arrêts basé sur l'action des prix fournit des plages raisonnables pour limiter la perte maximale par transaction.

  3. La syntaxe Pine offre des structures lisibles pour ajuster facilement les paramètres et optimiser.

  4. Application pratique facile. Les croisements de moyennes mobiles sont une idée de stratégie classique qui peut être facilement mise en œuvre dans le trading en direct avec un réglage approprié des paramètres.

Les risques

Il y a aussi quelques risques à prendre en considération:

  1. Les moyennes mobiles peuvent produire des signaux mixtes et un décalage, conduisant à des signaux de trading inappropriés.

  2. L'exposition aux pertes sur les marchés volatils: les pertes d'arrêt peuvent être facilement déclenchées par d'énormes écarts de prix ou des renversements, entraînant de grandes pertes.

  3. Un paramètre mal réglé augmente les pertes. Des arrêts trop larges ou des profits serrés peuvent augmenter la perte maximale par transaction.

  4. Les risques de détention à long terme: cette tendance à suivre la stratégie ne tient pas compte de la rentabilité à long terme et peut consommer des capitaux importants au fil du temps.

  5. Les coûts de négociation, les glissements, etc. peuvent affecter les rendements lorsqu'ils sont appliqués dans des plateformes de négociation réelles.

Les solutions:

  1. Ajoutez la confirmation du signal avec d'autres indicateurs tels que KDJ, MACD, etc.

  2. Ajustez la largeur d'arrêt en fonction des conditions du marché pour éviter une déclenchement prématuré.

  3. Optimiser les paramètres et évaluer les rendements et les retraits à long terme. Obtenir les meilleures combinaisons de paramètres grâce à un backtesting rigoureux.

  4. Testez soigneusement les stratégies dans le trading papier et ajoutez des arrêts manuels.

Des possibilités d'amélioration

Des améliorations supplémentaires sont possibles:

  1. Ajoutez des règles quantitatives d'entrée et de sortie. Par exemple, vérifiez les nouveaux sommets et les nouveaux sommets pour assurer une négociation selon des tendances plus claires.

  2. Incorporer la taille des positions et la gestion des risques.

  3. Utiliser des indicateurs tels que PRZ, ATR, DMI, etc. pour filtrer et sélectionner les tendances appropriées.

  4. Alterner des périodes de détention longues et courtes, et fixer des arrêts sur les bénéfices afin de s'enrichir.

  5. Construire un stock pool en utilisant des modèles d'investissement par facteurs.

  6. Ajoutez l'apprentissage automatique pour le contrôle des risques. Utilisez LSTM, RNN, etc. pour aider au jugement et prévenir les erreurs humaines.

Conclusion

Cette stratégie de croisement de moyenne mobile simple offre une mise en œuvre facile pour suivre la tendance. Les arrêts dynamiques aident à contrôler les risques. Mais certaines inexactitudes de signal et des risques existent. D'autres optimisations des paramètres et des techniques supplémentaires peuvent conduire à des performances plus robustes.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
basePeriod: 15m
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)


Plus de