
La estrategia de cruce de brechas de oro de la EMA rápida y lenta es una estrategia simple y efectiva para seguir la tendencia del mercado. Utiliza la línea media de la EMA de diferentes períodos para cruzar brechas y generar señales de compra y venta. La idea básica es: cuando la EMA de período corto atraviesa la EMA de período más largo, genera una señal de compra; cuando la EMA de período corto atraviesa la EMA de período más largo, genera una señal de venta.
La estrategia se basa principalmente en la comparación de las medias EMA de 5 ciclos, 8 ciclos y 13 ciclos para generar señales de negociación. Incluye:
De este modo, se logra el efecto de seguir la tendencia de la línea media larga. Cuando la línea media de corto período atraviesa la línea media de largo período, se indica que la tendencia de corto plazo se convierte en un polinomio y se puede comprar; cuando la línea media de corto período atraviesa la línea media de largo período debajo de la línea media de corto período, se indica que la tendencia de corto plazo se convierte en un blanco y se debe vender.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
La estrategia puede ser optimizada en las siguientes direcciones:
En resumen, la estrategia de ruptura rápida y lenta de la cruz dorada de la EMA funciona bien en general, la señal es más confiable, la retractación es baja y es adecuada para seguir la tendencia de la línea media y larga. Se puede obtener un mejor efecto de la estrategia mediante la optimización de los parámetros y la perfección de las reglas.
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gregoirejohnb
// @It is modified by ttsaadet.
// Moving average crossover systems measure drift in the market. They are great strategies for time-limited people.
// So, why don't more people use them?
//
//
strategy(title="EMA Crossover Strategy by TTS", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000)
// === GENERAL INPUTS ===
//strategy start date
start_year = input(defval=2020, title="Backtest Start Year")
// === LOGIC ===
short_period = input(type=input.integer,defval=5,minval=1,title="Length")
mid_period = input(type=input.integer,defval=8,minval=1,title="Length")
long_period = input(type=input.integer,defval=13,minval=1,title="Length")
rsi_period = input(type=input.integer,defval=14,minval=1,title="Length")
longOnly = input(type=input.bool,defval=false,title="Long Only")
shortEma = ema(close,short_period)
midEma = ema(close,mid_period)
longEma = ema(close,long_period)
rsi = rsi(close, rsi_period)
[diplus, diminus, adx] = dmi(short_period, short_period)
plot(shortEma,linewidth=2,color=color.red,title="Fast")
plot(midEma,linewidth=2,color=color.orange,title="Fast")
plot(longEma,linewidth=2,color=color.blue,title="Slow")
longEntry = crossover(shortEma,midEma) and crossover(shortEma,longEma) //or ((shortEma > longEma) and crossover(shortEma,midEma)))and (adx > 25)
shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma))
plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle")
plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle")
plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign")
// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() =>
longEntry and
time > timestamp(start_year, 1, 1, 01, 01)
exitLong() =>
crossunder(shortEma,longEma) or crossunder(close, longEma)
strategy.entry(id="Long", long=strategy.long, when=enterLong())
strategy.close(id="Long", when=exitLong())
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() =>
not longOnly and shortEntry and
time > timestamp(start_year, 1, 1, 01, 01)
exitShort() =>
crossover(shortEma,longEma)
strategy.entry(id="Short", long=strategy.short, when=enterShort())
strategy.close(id="Short", when=exitShort())