
La estrategia es una estrategia de multiples / blancos basada en el cruce de la media móvil simple (SMA). Utiliza dos diferentes períodos de SMA para generar señales de negociación. Cuando el SMA rápido atraviesa el SMA lento desde abajo, genera una señal de multiples; cuando el SMA rápido atraviesa el SMA lento desde arriba, genera una señal de blancos.
El principio central de esta estrategia es la generación de señales de negociación mediante el uso de SMA cruzados. El SMA es un indicador de seguimiento de tendencias para determinar la dirección general de los precios mediante el promedio de los precios de cierre en el pasado. Mediante el uso de dos períodos diferentes de SMA, la estrategia puede capturar cambios en la tendencia del mercado.
La estrategia utiliza el concepto de rentabilidad para administrar el tamaño de la posición. Calcula el tamaño de la posición en función del saldo de la cuenta actual y los beneficios acumulados. Esto significa que la estrategia aumenta el tamaño de la posición en consecuencia a medida que crece el saldo de la cuenta, lo que maximiza el potencial de ganancias.
Sencilla y fácil de entender: La estrategia se basa en la cruz de SMA, una estrategia de seguimiento de tendencias simple y fácil de entender. No requiere una comprensión compleja del momento del mercado o un juicio subjetivo, lo que hace que la estrategia sea fácil de implementar y administrar.
Seguimiento de tendencias: mediante el uso de la cruz SMA, la estrategia es capaz de capturar eficazmente las tendencias del mercado. Se puede realizar operaciones con múltiples cabezas en tendencias al alza y operaciones con cabezas en blanco en tendencias a la baja, lo que maximiza el potencial de ganancias.
Gestión de posiciones dinámica: la estrategia utiliza el concepto de rentabilidad para administrar el tamaño de las posiciones. Al ajustar el tamaño de las posiciones en función del saldo de la cuenta y la dinámica de las ganancias acumuladas, la estrategia puede aprovechar al máximo la ventaja del crecimiento de la cuenta y aumentar la rentabilidad.
Adaptabilidad: La estrategia se puede aplicar a una variedad de mercados y clases de activos, como acciones, divisas, mercancías, etc. Su simplicidad y adaptabilidad la convierten en una estrategia de negociación universal.
Riesgo de mercado: la estrategia depende de la persistencia de la tendencia del mercado. En caso de fluctuación del mercado o de reversión de la tendencia, la estrategia puede sufrir pérdidas.
Riesgo de parámetros: el rendimiento de la estrategia depende de la elección del ciclo de la SMA. Diferentes combinaciones de ciclos pueden producir diferentes resultados. La elección incorrecta de los parámetros puede causar un mal rendimiento de la estrategia o perder oportunidades de negociación.
Trataciones excesivas: durante la volatilidad del mercado, las frecuentes cruzadas SMA pueden provocar excesos de operaciones, aumentando los costos de las operaciones y los puntos de deslizamiento, lo que afecta el rendimiento general de la estrategia.
Riesgo de recuperación: aunque la recuperación puede aumentar la rentabilidad de la estrategia, también aumenta el riesgo de pérdidas. En caso de pérdidas continuas, el saldo de la cuenta puede reducirse rápidamente, lo que limita la capacidad de recuperación de la estrategia.
Optimización de parámetros: optimización del ciclo de la SMA para encontrar la combinación óptima de parámetros para mejorar el rendimiento de la estrategia. Se puede hacer un retroceso con datos históricos y utilizar algoritmos de optimización como la búsqueda de la red o los algoritmos genéticos para encontrar los parámetros óptimos.
Gestión de riesgos: Introducción de medidas de gestión de riesgos, tales como stop loss y stop-loss, para limitar las pérdidas de una sola operación y proteger los beneficios. Los niveles de stop loss y stop-loss se pueden ajustar según la dinámica de la volatilidad del mercado para adaptarse a diferentes condiciones del mercado.
Filtración de tendencias: Además de las cruzadas SMA, se introducen otros indicadores de confirmación de tendencias, como MACD o ADX, para filtrar falsas señales y mejorar la calidad de la señal. Para aumentar la fiabilidad de la estrategia, solo se realiza una operación cuando varios indicadores confirman una tendencia al mismo tiempo.
Optimización de la administración de posiciones: reglas de administración de posiciones para optimizar las estrategias de ganancias, como la introducción de medidas de control de riesgos, limitando el umbral de riesgo de una sola operación. Se puede considerar el uso de la fórmula de Kelly o el porcentaje de riesgo fijo para determinar el tamaño de la posición de cada operación para equilibrar el riesgo y la ganancia.
La estrategia es una estrategia de seguimiento de tendencias basada en SMA cruzada, que utiliza el concepto de revalorización para administrar el tamaño de la posición. Sus ventajas son su sencillez, facilidad de comprensión, capacidad de seguimiento de tendencias, gestión de posiciones dinámica y adaptabilidad. Sin embargo, también se enfrenta a desafíos como riesgo de mercado, riesgo de parámetros, exceso de comercio y riesgo de revalorización. Para mejorar la estrategia, se puede considerar la optimización de parámetros, la introducción de medidas de gestión de riesgos, filtración de tendencias y la optimización de las reglas de gestión de posiciones.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Umesh SMA Crossover Strategy", overlay=true)
// Input parameters
fast_length = input.int(9, title="Fast SMA Length")
slow_length = input.int(21, title="Slow SMA Length")
// Calculate SMAs
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)
// Plot SMAs
plot(fast_sma, color=color.blue, title="Fast SMA")
plot(slow_sma, color=color.red, title="Slow SMA")
// Strategy logic
longCondition = ta.crossover(fast_sma, slow_sma)
shortCondition = ta.crossunder(fast_sma, slow_sma)
// Initialize cumulative profit with netprofit
var float cumulative_profit = na
if (na(cumulative_profit))
cumulative_profit := strategy.netprofit
// // Initialize starting balance
// var float starting_balance = na
// if (na(starting_balance))
// starting_balance := strategy.equity
// Initialize starting balance
var float starting_balance = na
if (na(starting_balance))
starting_balance := 100000.0 // Initial balance
// Calculate profit or gains
if (strategy.opentrades != 0)
cumulative_profit := strategy.netprofit + (strategy.equity - starting_balance)
// Calculate position size based on current balance and cumulative profit
//position_size = 100000
position_size = starting_balance + cumulative_profit
// Entry conditions
if (longCondition)
strategy.entry("Long", strategy.long, qty = position_size / close)
if (shortCondition)
strategy.entry("Short", strategy.short, qty = position_size / close)
// // Entry conditions
// if (longCondition)
// strategy.entry("Long", strategy.long, qty = 100000 / close)
// if (shortCondition)
// strategy.entry("Short", strategy.short, qty = 100000 / close)
// Plot strategy.equity
plot(strategy.equity, color=color.green, title="Cumulative Profit")
// Print cumulative profit value on chart
label.new(x = bar_index, y = strategy.equity, text = str.tostring(strategy.equity), style=label.style_label_down, color=color.new(color.green, 0), size=size.small)
// Plot cumulative profit
plot(cumulative_profit, color=color.green, title="Cumulative Profit")
// Print cumulative profit value on chart
label.new(x = bar_index, y = cumulative_profit, text = str.tostring(cumulative_profit), style=label.style_label_down, color=color.new(color.green, 0), size=size.small)
// Plot cumulative profit
plot(position_size, color=color.green, title="Cumulative Profit")
// Print cumulative profit value on chart
label.new(x = bar_index, y = position_size, text = str.tostring(position_size), style=label.style_label_down, color=color.new(color.green, 0), size=size.small)