Estrategia de intercambio de Bitcoin - MA

El autor:¿ Qué pasa?, Fecha: 2023-12-04 13:55:45
Las etiquetas:

img

Resumen general

Esta estrategia es una estrategia de trading basada en el principio de cruce de las líneas de promedio móvil de Bitcoin. La estrategia utiliza el cruce de la línea de promedio móvil rápido y la línea de promedio móvil lento como señales de compra y venta. Cuando la línea de promedio móvil rápido cruza por encima de la línea de promedio móvil lento, se considera una cruz de oro y va largo; cuando la línea de promedio móvil rápido cruza por debajo de la línea de promedio móvil lento, se considera una cruz de muerte y va corto. Al mismo tiempo, la estrategia también incorpora el indicador RSI para evitar la entrada imprudente.

Principio de la estrategia

La estrategia se basa principalmente en dos indicadores:

  1. Promedio móvil (MA): Calcula el precio medio de cierre durante un determinado período para determinar las tendencias de precios y las señales de reversión.

  2. Índice de fortaleza relativa (RSI): Calcula la velocidad de los aumentos y caídas de precios durante un cierto período para juzgar las áreas sobrecompradas y sobrevendidas.

Específicamente, la estrategia utiliza un MA más corto como la línea rápida y un MA más largo como la línea lenta. Cuando la línea rápida cruza por encima de la línea lenta, indica que el aumento de precios a corto plazo se está acelerando y se genera una señal de compra; cuando la línea rápida cruza por debajo de la línea lenta, indica que la caída de precios a corto plazo se está acelerando y se genera una señal de venta.

Al mismo tiempo, la estrategia también establece un umbral para el RSI, generando señales de compra solo cuando el RSI está por encima de 50 y señales de venta solo cuando el RSI está por debajo de 50, evitando una entrada imprudente cuando los precios fluctúan violentamente.

Análisis de ventajas

La estrategia tiene las siguientes ventajas:

  1. El principio es simple y fácil de entender y aplicar.
  2. Las señales comerciales confiables evitan la entrada irracional.
  3. Menos parámetros y fácil de optimizar.
  4. Técnica de media móvil madura con amplia aplicación.
  5. El indicador RSI puede identificar eficazmente los fenómenos de sobrecompra y sobreventa.

Análisis de riesgos

La estrategia también tiene algunos riesgos:

  1. Las estrategias de tendencia son propensas a grandes pérdidas cuando los precios se invierten.
  2. Los promedios móviles se retrasan y no logran capturar rápidamente las reversiones de precios.
  3. La selección incorrecta de parámetros puede provocar un deterioro de la calidad de las señales de negociación.
  4. La estrategia sólo tiene en cuenta indicadores técnicos sin factores fundamentales.

Para mitigar los riesgos, se recomienda optimizar los parámetros del período de media móvil, ajustar las posiciones de stop loss y reducir adecuadamente los tamaños de las posiciones.

Direcciones de optimización

Las principales direcciones de optimización para esta estrategia incluyen:

  1. Optimizar los parámetros del período de media móvil para encontrar la combinación óptima de parámetros, mediante búsqueda incremental, algoritmos genéticos, etc.

  2. Aumentar otros indicadores técnicos para la filtración, como KDJ, MACD, etc., para mejorar la calidad de las señales de negociación.

  3. Supervisar las fluctuaciones de precios y ajustar las posiciones y detener las pérdidas en consecuencia.

  4. Incorporar el volumen de negociación para evitar falsos breakouts, solo emitiendo señales cuando el volumen de negociación se expande.

  5. Desarrollar mecanismos de autoadaptación de parámetros que permitan que las estrategias ajusten automáticamente los valores de los parámetros en función de los diferentes entornos de mercado.

Conclusión

En resumen, esta es una estrategia típica de seguimiento de tendencias. Basada en el principio del cruce de promedios móviles, la lógica de negociación es simple y clara, fácil de entender e implementar. La incorporación del indicador RSI puede evitar la negociación irracional. La estrategia conlleva riesgos y recompensas, adecuada para inversores con cierta experiencia en el comercio de cantidades, pero los riesgos potenciales de pérdida deben ser protegidos. Si los desarrolladores pueden agregar más filtros, optimizar la adaptabilidad de parámetros, puede mejorar aún más la rentabilidad constante 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)

Más.