Stratégie de trading quantitative multi-périodes avec croisement EMA


Date de création: 2023-12-27 17:09:23 Dernière modification: 2023-12-27 17:09:23
Copier: 0 Nombre de clics: 643
1
Suivre
1621
Abonnés

Stratégie de trading quantitative multi-périodes avec croisement EMA

Aperçu

Cet article présente une stratégie de trading quantitatif basée sur les intersections des moyennes mobiles des indices (EMA) de trois périodes différentes. Cette stratégie vise à utiliser les intersections des EMA pour identifier les tendances à long terme et à court terme du marché boursier et prendre des décisions de trading efficaces.

Principe de stratégie

La stratégie utilise trois périodes distinctes d’EMA: 10 jours, 100 jours et 200 jours. Lorsque la courte période (EMA de 10 jours) traverse la longue période (EMA de 100 jours ou de 200 jours), elle génère un signal d’achat ou de vente en fonction de la direction de la traversée. La stratégie intègre également un filtre temporel qui garantit que les transactions ne sont effectuées que pendant une période donnée. Cette combinaison augmente la flexibilité et l’adaptabilité de la stratégie.

Analyse des avantages

L’avantage de cette stratégie réside dans sa simplicité et sa grande adaptabilité. L’EMA pluri-cyclique offre une observation multi-angles des tendances du marché, ce qui augmente la précision des décisions de négociation. De plus, le filtre temporel évite l’instabilité d’une période donnée du marché et réduit les risques potentiels.

Analyse des risques

Malgré l’efficacité de cette stratégie, il existe certains risques. Le principal risque est que des événements inattendus sur le marché puissent conduire à l’échec de la stratégie. De plus, les indicateurs EMA peuvent être retardés et retardés pour refléter les changements du marché. Les méthodes de résolution de ces risques comprennent la surveillance du marché en temps réel et la combinaison d’autres indicateurs techniques pour améliorer l’exactitude des décisions.

Direction d’optimisation

L’optimisation de la stratégie comprend l’utilisation intégrée de plusieurs indicateurs techniques, tels que l’indice de force relative (RSI) et les bandes de Brin, pour augmenter la profondeur et la largeur de l’analyse du marché. En outre, il est possible de mieux s’adapter aux différentes conditions du marché en ajustant le cycle EMA.

Résumer

Dans l’ensemble, cette stratégie de trading quantifiée à travers des EMA multi-périodes est un outil efficace pour aider les traders à prendre de meilleures décisions dans des marchés en évolution. En continuant à optimiser et à s’adapter aux changements du marché, cette stratégie a le potentiel de générer des rendements plus élevés dans les transactions futures.

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

//@version=5
start = timestamp(2023,1,1,0,0)
end = timestamp(2024,1,1,0,0)
strategy("Tester Emas", overlay = true)

periodo1 = input(10,"Periodo_1")
periodo2 = input(100,"Periodo_2")
periodo3 = input(200,"Periodo_3")

//definir media moviles
ema1 = ta.ema(close,periodo1)
ema2 = ta.ema(close,periodo2)
ema3 = ta.ema(close,periodo3)

//Desde
desde_a = input(2000, title = "Desde año")
desde_m = input.int(   1, title = "Desde mes", minval=1, maxval = 12)
desde_d = input.int(   1, title = "Desde dia", minval=1, maxval = 31)

//Hasta
hasta_a = input(2030, title = "Hasta año")
hasta_m = input.int(   1, title = "Hasta mes", minval=1, maxval = 12)
hasta_d = input.int(   1, title = "Hasta dia", minval=1, maxval = 31)

FechaValida() => true

//Condicion de entradas
longCondition = ta.crossover(ema1, ema2)
shortCondition = ta.crossunder(ema1,ema2)

alcista = (ema1 > ema2) and (ema2 > ema3)
comprado =strategy.position_size > 0



//Comprar o vender segun las condiciones de entradas

//if (longCondition)
if (not comprado and alcista and FechaValida())
    // Round redondea mi capital para comprar las acciones en cantidades enteras
    cantidad = math.round(strategy.equity/ close)
    strategy.entry("Compra", strategy.long, cantidad)
//if (shortCondition)
if (comprado and not alcista and FechaValida())
    //strategy.entry("Venta", strategy.short)
    strategy.close("Compra" , comment = "Venta")

if (comprado and not FechaValida())
    //Cierre x finalizacion de periodo
    //strategy.entry("Venta", strategy.short)
    strategy.close("Compra" , comment = "Venta x fin")

//Graficar las medias moviles
plot(ema1, color = color.green, title = "Ema1")
plot(ema2, color = color.yellow, title = "Ema2")
plot(ema3, color = color.red, title = "Ema2")
//GMarca los cruces de medias
bgcolor(longCondition ? color.green : na)
bgcolor(shortCondition ? color.red : na)