Mehrjährige EMA-Quantitative Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-27 17:09:23
Tags:

img

Übersicht

In diesem Artikel wird eine quantitative Handelsstrategie vorgestellt, die auf den Querschnittspunkten der exponentiellen gleitenden Durchschnitte (EMA) in drei verschiedenen Perioden basiert.

Strategieprinzip

Die Strategie verwendet EMAs von drei verschiedenen Perioden: 10 Tage, 100 Tage und 200 Tage. Kauf- oder Verkaufssignale werden basierend auf der Richtung des Crossovers generiert, wenn die kurzfristige EMA (10 Tage) die längerfristigen EMAs (100-Tage oder 200 Tage) überquert. Die Strategie enthält auch einen Zeitfilter, um sicherzustellen, dass Trades nur innerhalb bestimmter Zeitrahmen ausgeführt werden. Diese Kombination verleiht der Strategie Flexibilität und Anpassungsfähigkeit.

Analyse der Vorteile

Die Stärke dieser Strategie liegt in ihrer Einfachheit und hohen Anpassungsfähigkeit. Mehrzeit-EMA bieten eine mehrdimensionale Sicht auf Markttrends, was die Genauigkeit von Handelsentscheidungen erhöht. Darüber hinaus vermeidet der Zeitfilter Instabilität während bestimmter Marktperioden und reduziert potenzielle Risiken.

Risikoanalyse

Trotz seiner Wirksamkeit birgt die Strategie bestimmte Risiken. Das primäre Risiko ist die Marktvolatilität aufgrund unvorhergesehener Ereignisse, die zu einem Strategieversagen führen können. Darüber hinaus können EMAs zurückbleiben und die Reflexion von Marktveränderungen verzögern.

Optimierungsrichtung

Die Optimierungsrichtungen für die Strategie umfassen die integrierte Verwendung verschiedener technischer Indikatoren, wie z. B. des Relative Strength Index (RSI) und der Bollinger Bands, um die Marktanalyse zu vertiefen und zu erweitern.

Schlussfolgerung

Insgesamt

Die Multi-Periode EMA Crossover Quantitative Trading Strategie ist ein wirksames Instrument, das Händlern helfen kann, bessere Entscheidungen in einem volatilen Markt zu treffen.


/*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)

Mehr