
Se trata de una estrategia de comercio cuantitativa que combina brechas de EMA de alta y baja en la línea diaria y tendencias de EMA de varios períodos de tiempo. La estrategia se basa principalmente en el monitoreo de las brechas de precios en los puntos altos y bajos del día anterior, en combinación con la línea media de EMA y el indicador de flujo de capital (CMF) para determinar el momento de negociación. La estrategia utiliza al mismo tiempo la línea horaria y la línea diaria de dos períodos de tiempo, la línea media de EMA de 200 períodos, para mejorar la precisión de las operaciones mediante la verificación de múltiples indicadores técnicos.
La lógica central de la estrategia incluye los siguientes elementos clave:
Las reglas específicas de las transacciones son las siguientes: Hacer condiciones múltiples: precio más alto el día anterior a la ruptura + precio de cierre por encima de la EMA + CMF positivo Condiciones de apertura: Precio por debajo de los mínimos del día anterior + Cierre por debajo de la EMA + CMF negativo Condiciones de posición en paridad: el precio de la posición excedente cae por debajo de la EMA, el precio de la posición excedente supera la EMA
Sugerencias para el control de riesgos:
Es un sistema de negociación completo que combina múltiples indicadores técnicos y análisis de múltiples ciclos de tiempo. La estrategia busca oportunidades de negociación a través de un análisis integral de los picos y bajos, las tendencias de la línea media y los flujos de capital. Aunque existe un cierto riesgo, la estrategia tiene un buen valor de aplicación a través de un control razonable del riesgo y una mejora continua de la optimización.
/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='The security Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=100,
commission_type=strategy.commission.percent, commission_value=0.1)
// General Inputs
len = input.int(24, minval=1, title='Length MA', group='Optimization parameters')
src = input.source(close, title='Source MA', group='Optimization parameters')
out = ta.ema(src, len)
length = input.int(20, minval=1, title='CMF Length', group='Optimization parameters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)
// Function to get daily high and low
f_secureSecurity(_symbol, _res, _src) =>
request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)
pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)
// Plotting previous daily high and low
plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
// Entry Conditions
short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0
if short and barstate.isconfirmed
strategy.entry('short', strategy.short, stop=pricelow[1])
strategy.close('short', when=close > out)
if long and barstate.isconfirmed
strategy.entry('long', strategy.long, stop=pricehigh[1])
strategy.close('long', when=close < out)
// 200 EMA on 1-hour timeframe
ema_200 = ta.ema(close, 200)
ema_200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))
plot(ema_200_1h, color=color.purple, title="200 EMA (1H)")
plot(ema_200, color=color.white, title="200 EMA")