Stratégie de négociation des options croisées EMA/MA

Auteur:ChaoZhang est là., Date: 2024-01-16 14:14:42 Je vous en prie.
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading d'options à court terme basée sur des croisements de moyenne mobile exponentielle (EMA) et moyenne mobile (MA) pour générer des signaux de trading.

La logique de la stratégie

La stratégie utilise deux EMA/MA avec des paramètres différents, une EMA rapide et une MA lente. La période EMA rapide est définie à 50 et la période MA lente est définie à 100.

Lorsque la flambée des prix à court terme s'accélère, l'EMA rapide pénétrera le MA lent par le bas, générant des signaux d'achat.

Lorsque la baisse des prix à court terme s'accélère, l'EMA rapide se déplace en dessous de l'EMA lent, produisant des signaux de vente.

En capturant les croisements entre les EMA/MA rapides et lents pour déterminer la tendance à court terme et les émotions du marché, les opérations d'options peuvent être exécutées en temps opportun pour tirer profit des fluctuations de prix à court terme.

Analyse des avantages

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

  1. Rapide réponse pour capter les fluctuations à court terme.

  2. Il suffit de surveiller le croisement des deux moyennes mobiles sans calcul complexe.

  3. Application flexible pour le trading d'options ou d'actions. Peut aller long/short en fonction des signaux, ou des options de trading en conséquence.

  4. Risque contrôlable avec un stop loss clair, points de stop loss prédéfinis pour limiter les pertes par transaction.

Analyse des risques

Quelques risques à noter:

  1. Les signaux potentiels et les marchés variés peuvent entraîner une négociation excessive et des coûts accrus.

  2. L'épargne-investissement est une activité économique qui est susceptible d'être affectée par des tendances à la baisse persistantes du marché avec des déclencheurs d'arrêt de perte consécutifs.

  3. Les pics de prix dus à des événements d'actualité importants peuvent arrêter les positions prématurément ou amplifier considérablement les pertes.

Des possibilités d'amélioration

Quelques moyens pour améliorer la stratégie:

  1. Stop loss dynamique basé sur la volatilité. Ajustez le stop loss en temps réel en fonction des niveaux de fluctuation des prix pour minimiser les probabilités de sortie forcée.

  2. Intégrer des EMA sur plusieurs périodes. Ajouter des EMA quotidiennes et hebdomadaires pour mesurer la tendance globale afin d'éviter les transactions contre-tendance.

  3. Utilisez le RSI pour identifier les niveaux de surachat et de survente pour filtrer certains signaux sonores.

  4. Prédiction de la volatilité par apprentissage automatique: utiliser des modèles LSTM pour prédire la volatilité des prix et le risque, en ajustant dynamiquement la taille des positions et le stop loss.

Conclusion

Cette stratégie de croisement EMA/MA à court terme capture les changements de tendance à court terme et les émotions du marché pour des transactions opportunes en surveillant les croisements rapides EMA et lents MA. Malgré sa facilité d'implémentation, les risques incluent des coups de fouet excessifs et des retraits soutenus. Des améliorations autour de l'optimisation des arrêts de perte, de multiples délais, du filtrage des signaux et de la prédiction de l'apprentissage automatique peuvent aider à contrôler les risques et à améliorer la rentabilité.


/*backtest
start: 2023-01-09 00:00:00
end: 2024-01-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Backtest single EMA cross", overlay=true)

qty = input(100000, "Buy quantity")

testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   #00FF00 : na
testPeriod() => true


ema1 = input(50, title="Select EMA 1")
ema2 = input(100, title="Select EMA 2")

expo = ema(close, ema1)
ma = ema(close, ema2)

avg_1 = avg(expo, ma)
s2 = cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)

p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0)
p2 = plot(ma, color=color.orange, linewidth=2, transp=0)
fill(p1, p2, color=color.white, transp=80)


longCondition = crossover(expo, ma)

shortCondition = crossunder(expo, ma)

exitlongCondition = crossunder(expo, ma)

exitshortCondition = crossover(expo, ma) 


if testPeriod()
    strategy.entry("Long", strategy.long, when=longCondition)
    strategy.entry("Short", strategy.short, when=shortCondition)

plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor = #FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0)
plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)




Plus de