
La estrategia es un sistema de seguimiento de tendencias basado en el cruce de dos líneas de referencia. La estrategia capta el momento de la conversión de las tendencias del mercado mediante la comparación de la relación de posición relativa de los promedios móviles a corto y largo plazo (de 9 y 21 días, respectivamente). La estrategia utiliza la teoría clásica del análisis técnico, combinada con métodos modernos de negociación cuantitativa, para lograr un proceso de toma de decisiones de negociación totalmente automatizado.
La lógica central de la estrategia se basa en la señal cruzada de dos promedios móviles de diferentes períodos. Cuando el promedio corto (del día 9) sube y cruza el promedio largo (del día 21), el sistema considera que la dinámica del mercado se mueve hacia arriba, lo que desencadena una señal múltiple. Cuando el promedio corto (del día 9) baja y cruza la media larga, el sistema considera que la dinámica del mercado se mueve hacia abajo, y el comercio se cierra en posición de equilibrio.
Esta es una estrategia de seguimiento de tendencias clásica y práctica que capta los cambios de la dinámica del mercado a través de la cruz de dos líneas de equilibrio. Si bien existe cierto riesgo de retraso y falsas señales, sus características simples y estables lo convierten en una herramienta importante en el campo de la negociación cuantitativa. La estabilidad y la rentabilidad de la estrategia se espera que se mejore aún más con la dirección de optimización propuesta.
/*backtest
start: 2024-05-20 00:00:00
end: 2024-12-13 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Simple MA Crossover Strategy", overlay=true)
// Input parameters
shortMA = ta.sma(close, 9)
longMA = ta.sma(close, 21)
// Buy/Sell conditions
buyCondition = ta.crossover(shortMA, longMA)
sellCondition = ta.crossunder(shortMA, longMA)
// Plot moving averages
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")
// Execute trades
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.close("Buy")
// Track trades, wins, and losses
var int totalTrades = 0
var int totalWins = 0
var int totalLosses = 0
if (strategy.opentrades > 0)
totalTrades := totalTrades + 1
if (strategy.opentrades == 0 and strategy.opentrades[1] > 0)
if (strategy.netprofit > 0)
totalWins := totalWins + 1
else
totalLosses := totalLosses + 1
// Plot trade statistics
var label tradeStats = na
if (not na(tradeStats))
label.delete(tradeStats)
tradeStats := label.new(bar_index, high, text="Trades: " + str.tostring(totalTrades) + "\nWins: " + str.tostring(totalWins) + "\nLosses: " + str.tostring(totalLosses), style=label.style_label_down, color=color.white, textcolor=color.black)