Bitcoin: estrategia de cruce de medias móviles


Fecha de creación: 2023-12-04 13:55:45 Última modificación: 2023-12-04 13:55:45
Copiar: 0 Número de Visitas: 910
1
Seguir
1619
Seguidores

Bitcoin: estrategia de cruce de medias móviles

Descripción general

Esta estrategia está diseñada en base al principio de cruce de promedio móvil de Bitcoin para seguir la tendencia de la estrategia de negociación. La estrategia utiliza el cruce de promedio móvil rápido y el promedio móvil lento como una señal de compra y venta. Cuando se cruza el promedio móvil lento sobre el promedio móvil rápido, se considera como un tenedor de oro, hacer más; cuando se cruza el promedio móvil lento debajo del promedio móvil rápido, se considera un tenedor muerto, hacer vacío.

Principio de estrategia

La estrategia se basa principalmente en dos indicadores:

  1. Moving Average (MA): calcula el promedio de precios de cierre en un período determinado para determinar el movimiento de los precios y las señales de cambio.

  2. Índice de fuerza relativa (RSI): calcula la velocidad de caída de los precios de las acciones en un período determinado para determinar las zonas de sobrecompra y sobreventa.

En concreto, la estrategia utiliza MA de menor longitud como línea rápida y MA de mayor longitud como línea lenta. Cuando la línea rápida cruza la línea lenta, indica que el precio a corto plazo sube y se acelera, produciendo una señal de compra; cuando la línea rápida cruza la línea lenta, indica que el precio a corto plazo baja y se acelera, produciendo una señal de venta.

Al mismo tiempo, la estrategia también establece un umbral para el RSI, generando una señal de compra solo cuando el RSI está por encima de 50 y una señal de venta cuando el RSI está por debajo de 50, para evitar que los cobardes entren en juego cuando el precio fluctúa fuertemente.

Ventajas estratégicas

La estrategia tiene las siguientes ventajas:

  1. El principio es simple, fácil de entender y de implementar.
  2. Las señales de intercambio son fiables y evitan la entrada irracional.
  3. Los parámetros son más pequeños y más fáciles de optimizar.
  4. La tecnología de las medias móviles está madura y es ampliamente utilizada.
  5. El indicador RSI puede identificar el fenómeno de sobreventa y sobrecompra.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Siguiendo una estrategia de tendencia, es fácil que se produzcan grandes pérdidas cuando el precio se invierte.
  2. Los promedios móviles se retrasan y no pueden capturar el cambio de precio a tiempo.
  3. La selección incorrecta de los parámetros puede causar una disminución de la calidad de la señal de negociación.
  4. La estrategia se basa en indicadores técnicos y no tiene en cuenta los factores fundamentales.

Para reducir el riesgo, se recomienda optimizar los parámetros del ciclo de la media móvil, ajustar los puntos de parada y reducir adecuadamente el tamaño de la posición. Se debe suspender el uso de esta estrategia cuando se produzcan cambios significativos en los fundamentos.

Dirección de optimización

La estrategia tiene las siguientes direcciones de optimización principales:

  1. Optimización de los parámetros del ciclo de la media móvil para encontrar la combinación óptima de parámetros. Se puede optimizar mediante métodos como la búsqueda gradual, los algoritmos genéticos, etc.

  2. Se añaden filtros de otros indicadores técnicos, como KDJ, MACD, etc., para mejorar la calidad de la señal de negociación.

  3. Aumentar la vigilancia de las fluctuaciones de los precios, ajustando las posiciones y los paros en función de la volatilidad.

  4. Combina el volumen de transacciones para evitar falsas rupturas. Emite señales solo cuando el volumen de transacciones es grande.

  5. Mecanismo de adaptación de parámetros para el desarrollo. Permite que la estrategia ajuste automáticamente el valor de los parámetros según los diferentes entornos del mercado.

Resumir

Esta estrategia es en general una estrategia de seguimiento de tendencias más típica. Basada en el principio de cruce de medias móviles, la lógica de negociación es simple, clara y fácil de entender y implementar. Al mismo tiempo, la integración del indicador RSI evita operaciones irracionales.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Trading Strategy Warning - Past performance may not equal future performance
//Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown.
//Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended
//Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future
strategy("Bitcoin - MA Crossover Strategy", overlay=true)

// User Input
usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false)
sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false)
sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false)
rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false)

// Create Indicator's
shortSMA = sma(close, sma_fast)
longSMA = sma(close, sma_slow)
rsi = rsi(close, rsi_valu)
strategy.initial_capital = 50000
// Units to buy
amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit)
units = floor(amount / close)

// Specify entry conditions
longEntry = crossover(shortSMA, longSMA)
shortEntry = crossunder(shortSMA, longSMA)

// Specify exit conditions
longExit = crossunder(shortSMA, longSMA)
shortExit = crossover(shortSMA, longSMA)

// Execute long trade
if (longEntry)
    strategy.entry("long", strategy.long, units, when = rsi > 50)

// Exit long trade
if(longExit and strategy.position_size > 0)    
    strategy.order("exit long", strategy.short, abs(strategy.position_size))

// Execute short trade
if (shortEntry)
    strategy.entry("short", strategy.short, units, when = rsi < 50)
    
// Exit short trade
if(shortExit and strategy.position_size < 0)    
    strategy.order("exit short", strategy.long, abs(strategy.position_size))

// Plot Moving Average's to chart
plot(shortSMA)
plot(longSMA, color=color.black)