
Esta estrategia es una estrategia de negociación de criptomonedas basada en una combinación de indicadores MACD con indicadores aleatorios. Calcula el indicador MACD del precio de Bitcoin y le aplica un indicador aleatorio para generar una señal de negociación que capte los cambios de tendencia en el mercado de criptomonedas.
La estrategia comienza con el cálculo del MACD. El MACD representa el avance de convergencia de la media móvil, un indicador de seguimiento de tendencias. Se compone de una línea rápida y una línea lenta, la línea rápida es el promedio móvil del índice de corto plazo y la línea lenta es el promedio móvil del índice de largo plazo.
Después de calcular el MACD, la estrategia aplica el indicador aleatorio %K al MACD mismo. La fórmula para calcular el indicador aleatorio %K es:
%K = (precio de cierre actual - precio mínimo en N días) / (precio máximo en N días - precio mínimo en N días) * 100
El indicador aleatorio refleja el cambio del precio de las acciones fuera de su rango más reciente. Un valor del% K entre 20 y 80 representa que el precio de las acciones está en el rango de convergencia. Cuando el% K cruza la línea 20 de abajo hacia arriba, es una señal de compra.
Esta estrategia combina la señal de negociación del indicador MACD y el indicador aleatorio %K para negociar en el mercado de criptomonedas. Genera una señal de compra cuando el indicador aleatorio %K cruza 20 hacia arriba; genera una señal de venta cuando el indicador aleatorio %K cruza 80 hacia abajo.
Esta estrategia combina el análisis de tendencias y el indicador de sobrecompra y sobreventa para identificar los puntos de inflexión importantes en el mercado. En comparación con el uso de indicadores MACD o aleatorios, el uso combinado de%K y MACD puede aumentar la fiabilidad de la señal y reducir las falsas señales.
Además, esta estrategia aplica un indicador técnico comúnmente utilizado en el mercado de valores al comercio de criptomonedas, que es un uso transversal. Este indicador también se aplica en el mercado de monedas digitales, e incluso obtiene mejores resultados debido a la alta volatilidad de las monedas digitales.
El mayor riesgo de esta estrategia es la alta volatilidad del mercado de criptomonedas, que es propensa a generar falsas señales que causan pérdidas comerciales. Además, cuando los indicadores técnicos emiten señales, los precios pueden haber generado un cierto grado de cambio, con el riesgo de no poder capturar adecuadamente la tendencia en sus inicios.
Para controlar estos riesgos, se recomienda la adopción de stop loss móvil para bloquear los beneficios y evitar que las pérdidas se expandan aún más. Al mismo tiempo, también se pueden ajustar los parámetros de manera adecuada, utilizando diferentes longitudes de ciclo para descubrir más oportunidades potenciales.
En primer lugar, la estrategia puede intentar combinar el uso de medias móviles con indicadores de volatilidad, como las bandas de Bryn, para establecer parámetros de volatilidad que permitan identificar la efectividad de las rupturas y evitar falsas señales.
En segundo lugar, se puede introducir un modelo de aprendizaje automático para entrenar datos históricos y crear un bosque aleatorio o un modelo de red neuronal LSTM para ayudar a juzgar la eficacia de las señales indicadoras.
En tercer lugar, el aumento de la suspensión de pérdidas. Cuando el precio se mueve en la dirección negativa más allá de un cierto margen, la suspensión de pérdidas se ejecuta automáticamente para controlar el riesgo.
Esta estrategia combina el indicador MACD y el indicador aleatorio %K para desarrollar una estrategia de negociación de criptomonedas utilizando el método en el que ambos indicadores se verifican mutuamente. Esta estrategia de indicadores combinados puede mejorar la precisión de la señal hasta cierto punto. Pero también debemos estar alerta de los efectos de ruido y de retraso que pueden causar una combinación de indicadores demasiado compleja. La configuración de parámetros y el control del riesgo son igualmente importantes y se deben ajustar y optimizar para obtener un mejor rendimiento de la estrategia.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Schaff Trend Cycle Strategy", shorttitle="STC Backtest", overlay=true)
fastLength = input(title="MACD Fast Length", defval=23)
slowLength = input(title="MACD Slow Length", defval=50)
cycleLength = input(title="Cycle Length", defval=10)
d1Length = input(title="1st %D Length", defval=3)
d2Length = input(title="2nd %D Length", defval=3)
src = input(title="Source", defval=close)
highlightBreakouts = input(title="Highlight Breakouts ?", type=bool, defval=true)
macd = ema(src, fastLength) - ema(src, slowLength)
k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))
d = ema(k, d1Length)
kd = nz(fixnan(stoch(d, d, d, cycleLength)))
stc = ema(kd, d2Length)
stc := stc > 100 ? 100 : stc < 0 ? 0 : stc
upper = input(75, defval=75)
lower = input(25, defval=25)
long = crossover(stc, lower) ? lower : na
short = crossunder(stc, upper) ? upper : na
long_filt = long and not short
short_filt = short and not long
prev = 0
prev := long_filt ? 1 : short_filt ? -1 : prev[1]
long_final = long_filt and prev[1] == -1
short_final = short_filt and prev[1] == 1
//alertcondition(long_final, "Long", message="Long")
//alertcondition(short_final,"Short", message="Short")
//plotshape(long_final, style=shape.arrowup, text="Long", color=green, location=location.belowbar)
//plotshape(short_final, style=shape.arrowdown, text="Short", color=red, location=location.abovebar)
strategy.entry("long", strategy.long, when = long )
strategy.entry("short", strategy.short, when = short)