La estrategia utiliza dos promedios móviles con diferentes períodos para la determinación de la tendencia. El MA de 9 períodos es más sensible y puede capturar tendencias a corto plazo. El MA de 15 períodos es más estable y puede filtrar algo de ruido. Cuando el MA más rápido cruza por encima del MA más lento, indica que la tendencia a corto plazo está subiendo. Lo contrario es cierto para una tendencia a corto plazo que baja.
Además, los patrones de velas se utilizan para la confirmación de señales. Las señales de compra solo se generan en velas fuertes como martillos y marubozus.
Las señales y reglas de negociación específicas son:
El MA de 9 períodos se cruza por encima del MA de 15 períodos y el ángulo del MA de 15 períodos es superior a 30 grados, lo que indica una tendencia al alza;
Si la vela forma un martillo o marubozu, mostrando un fuerte impulso al alza, se genera una señal de compra;
Establezca el stop loss al 0,5% y tome ganancias al 0,5% después de la entrada.
Las ventajas de esta estrategia son:
Pequeñas reducciones y ganancias constantes - La pérdida por operación es limitada, lo que evita grandes reducciones incluso en los mercados bajistas.
Las señales claras - el cruce de MA combinado con los patrones de vela identifican los puntos de inversión de tendencia de manera efectiva.
Fácil automatización: las señales simples y los parámetros ajustables hacen posible el comercio algorítmico.
Adecuado para la volatilidad de Bitcoin: las fluctuaciones frecuentes de Bitcoin proporcionan muchas oportunidades comerciales a corto plazo.
También hay algunos riesgos:
Se requiere ajuste de parámetros - La eficacia disminuye si los períodos de admisión y los ajustes de beneficios no coinciden con las condiciones del mercado.
Se basa en tendencias fuertes - Los movimientos laterales pueden conducir a operaciones excesivas pero pequeñas ganancias.
Las soluciones son:
Comerciar en grandes cantidades para garantizar una buena relación riesgo-recompensa.
Ajustar los parámetros dinámicamente en función de los cambios del mercado.
Identificar los estados del mercado y evitar negociar en consolidaciones.
Algunas maneras de optimizar la estrategia:
Añadir mecanismos de adaptación para el stop loss y el take profit - Por ejemplo, el stop loss trasero en las medias móviles, el take profit dinámico, etc.
Añadir filtros que utilicen otros indicadores, por ejemplo, el índice de rendimiento por sobrecompra/sobreventa, aumento del volumen, etc.
Prueba en otros productos - Aplicar una lógica similar al escalpar materias primas, futuros de índices, etc.
Realizar la optimización de parámetros y las pruebas de retroceso para encontrar parámetros óptimos.
En resumen, esta es una estrategia efectiva de scalping de Bitcoin. Es simple de implementar y altamente configurable. Con optimizaciones continuas puede proporcionar ingresos de scalping constantes. Sin embargo, los riesgos de negociación deben gestionarse con prudencia controlando el tamaño de las posiciones y el stop loss.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true) // Define input parameters fast_length = input(9, "Fast MA Length") slow_length = input(15, "Slow MA Length") stop_loss_percent = input(0.5, "Stop Loss (%)") target_percent = input(0.5, "Target (%)") angle_threshold = input(30, "Angle Threshold (degrees)") // Calculate moving averages fast_ma = sma(close, fast_length) slow_ma = sma(close, slow_length) // Define candlestick patterns is_pin_bar() => pin_bar = abs(open - close) > 2 * abs(open[1] - close[1]) high_tail = max(open, close) - high > abs(open - close) * 1.5 low_tail = low - min(open, close) > abs(open - close) * 1.5 pin_bar and high_tail and low_tail is_marubozu() => marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75 no_upper_shadow = high == max(open, close) no_lower_shadow = low == min(open, close) marubozu and no_upper_shadow and no_lower_shadow is_full_body() => full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95 full_body // Plot moving averages plot(fast_ma, color=color.blue, title="Fast MA") plot(slow_ma, color=color.red, title="Slow MA") // Calculate angle of slow moving average ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159)) // Generate buy/sell signals based on angle condition and candlestick patterns buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body()) sell_signal = crossunder(fast_ma, slow_ma) // Calculate stop-loss and target levels stop_loss_level = close * (1 - stop_loss_percent / 100) target_level = close * (1 + target_percent / 100) // Execute trades based on signals with stop-loss and target strategy.entry("Buy", strategy.long, when=buy_signal) strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level) // Plot buy/sell signals on chart (optional) plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Plot angle line hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)