
Esta estrategia determina la tendencia de los mercados y realiza un seguimiento de la tendencia mediante el cálculo de diferentes tipos de medias (SMA, EMA, HMA y VWMA) y la búsqueda de sus puntos de cruce. Se genera una señal de compra cuando una media más corta atraviesa una media más larga desde abajo; se genera una señal de venta cuando una media más corta atraviesa una media más larga desde arriba.
Esta estrategia se basa en la comparación de las relaciones entre dos líneas medias diferentes para determinar el movimiento del mercado. En concreto, el tipo y la longitud de las dos líneas medias se establecen a través de los parámetros de entrada. La primera de las líneas medias es más larga y representa la tendencia a largo plazo; la segunda es más corta y representa la tendencia a corto plazo.
Cuando la media corta cruza la media larga desde abajo, la tendencia corta se fortalece y el precio entra en una tendencia alcista, por lo tanto, emite una señal de compra en este cruce. Por el contrario, cuando la media corta cruza la media larga desde arriba, la tendencia corta se debilita y el precio entra en una tendencia bajista, por lo tanto, emite una señal de venta en este cruce.
El sistema de arbitraje es un sistema de arbitraje que permite a los inversores seguir las tendencias del mercado.
La solución al riesgo:
Esta estrategia se basa en el pensamiento clásico de las tendencias principales de la determinación de la cruz de la línea de uniformidad, y se aplica de manera flexible a través de una combinación de diferentes líneas de uniformidad. La lógica de la estrategia es simple, fácil de implementar y adecuada para la automatización de la negociación. En general, la estrategia tiene cierta utilidad, pero también hay espacio para mejorar y optimizar.
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy", overlay=true)
src = input(close, title="Source")
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])
ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"])
f_hma(_src, _length)=>
_return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))
price1 = if (type1 == "SMA")
sma(price, ma1)
else
if (type1 == "EMA")
ema(price, ma1)
else
if (type1 == "VWMA")
vwma(price, ma1)
else
f_hma(price, ma1)
price2 = if (type2 == "SMA")
sma(price, ma2)
else
if (type2 == "EMA")
ema(price, ma2)
else
if (type2 == "VWMA")
vwma(price, ma2)
else
f_hma(price, ma2)
//plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)
longCondition = crossover(price1, price2)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = crossunder(price1, price2)
if (shortCondition)
strategy.entry("Short", strategy.short)