Estrategia de scalping de Bitcoin basada en patrones de cruce de promedios móviles y candlesticks

El autor:¿ Qué pasa?, fecha: 2024-02-29 12:01:47
Las etiquetas:

img

Resumen general

Estrategia lógica

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:

  1. 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;

  2. Si la vela forma un martillo o marubozu, mostrando un fuerte impulso al alza, se genera una señal de compra;

  3. Establezca el stop loss al 0,5% y tome ganancias al 0,5% después de la entrada.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. Pequeñas reducciones y ganancias constantes - La pérdida por operación es limitada, lo que evita grandes reducciones incluso en los mercados bajistas.

  2. 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.

  3. Fácil automatización: las señales simples y los parámetros ajustables hacen posible el comercio algorítmico.

  4. Adecuado para la volatilidad de Bitcoin: las fluctuaciones frecuentes de Bitcoin proporcionan muchas oportunidades comerciales a corto plazo.

Análisis de riesgos

También hay algunos riesgos:

  1. 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.

  2. Se basa en tendencias fuertes - Los movimientos laterales pueden conducir a operaciones excesivas pero pequeñas ganancias.

Las soluciones son:

  1. Comerciar en grandes cantidades para garantizar una buena relación riesgo-recompensa.

  2. Ajustar los parámetros dinámicamente en función de los cambios del mercado.

  3. Identificar los estados del mercado y evitar negociar en consolidaciones.

Direcciones de optimización

Algunas maneras de optimizar la estrategia:

  1. 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.

  2. Añadir filtros que utilicen otros indicadores, por ejemplo, el índice de rendimiento por sobrecompra/sobreventa, aumento del volumen, etc.

  3. Prueba en otros productos - Aplicar una lógica similar al escalpar materias primas, futuros de índices, etc.

  4. Realizar la optimización de parámetros y las pruebas de retroceso para encontrar parámetros óptimos.

Conclusión

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)


Más.