TrumpBollingerEMEstrategia de candelería

El autor:¿ Qué pasa?, Fecha: 2023-10-07 15:30:27
Las etiquetas:

Resumen general

Esta estrategia utiliza bandas de Bollinger, EMA y patrones de velas para el comercio de apuestas de doble línea, que pertenecen a estrategias comerciales a corto plazo.

Principios

La estrategia consta de las siguientes partes:

  1. Las bandas de Bollinger Generar rieles superiores e inferiores basados en el precio de cierre y la desviación estándar.

  2. La EMA Calcular la media móvil exponencial de 21 días y generar señales comerciales cuando el precio cruza la EMA.

  3. Patrones de candeleros Identificar los puntos de reversión del precio, como la cubierta de nubes oscuras inferior y el patrón de perforación superior para activar las operaciones.

  4. Juegos de apuestas de doble línea Ir largo y corto simultáneamente basado en señales de Bollinger, EMA cruce y patrones de candlestick.

La lógica es:

Utilice bandas de Bollinger para identificar puntos de reversión potenciales, sea corto en el tren superior y largo en el tren inferior. Calcule la EMA de 21 días y sea largo en la cruz dorada, sea corto en la cruz de la muerte. También use patrones de velas para identificar reversiones, sea largo en la nube oscura inferior y corto en la perforación superior. Combine las tres señales para tomar decisiones comerciales finales de doble dirección.

La estrategia integra múltiples señales de confirmación para mejorar la eficiencia de las decisiones comerciales.

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. Mejora de la precisión con confirmación de señales múltiples

El uso de Bollinger, EMA y candlestick juntos mejora la precisión mediante la validación de señales. Esto ayuda a evitar señales falsas y operaciones erróneas.

  1. Respuesta oportuna y detección de las reversiones

Las señales combinadas identifican rápidamente los puntos de reversión potenciales para la negociación oportuna antes de que las reversiones se extiendan.

  1. Una mayor rentabilidad con el comercio de doble línea

Mantener tanto posiciones largas como cortas se beneficia de grandes movimientos en ambas direcciones, lo que reduce los riesgos en mercados unidireccionales.

  1. Flexibilidad para las operaciones a corto plazo

Los indicadores Bollinger y EMA de corto plazo permiten captar movimientos a corto plazo, adecuados para operaciones frecuentes y para responder a fluctuaciones de alta frecuencia.

  1. Directamente utilizable y fácil de operar

El código completo de la estrategia hace que sea directamente utilizable para el comercio en vivo.

Análisis de riesgos

Los riesgos potenciales son:

  1. Posibilidad de pérdida de detención consecutiva

Las señales de Bollinger, EMA y candlestick pueden causar pérdidas consecutivas. Ajuste los parámetros para garantizar una pérdida de parada razonable.

  1. Riesgos más elevados en las operaciones de doble línea

El mantenimiento tanto largo como corto puede amplificar las pérdidas. Se requiere un capital suficiente para soportar los riesgos. Se recomienda un tamaño de posición más bajo.

  1. Se requiere una estrecha vigilancia para las operaciones a corto plazo

El comercio frecuente a corto plazo requiere un seguimiento cercano del mercado.

  1. Espacio de optimización limitado

Bollinger y la EMA tienen un espacio de optimización relativamente pequeño.

  1. Los patrones comunes de candeleros pueden ser poco claros

Parte de la estrategia se basa en señales de candelero que a veces pueden no ser claras.

Direcciones de optimización

La estrategia puede mejorarse en los siguientes aspectos:

  1. Integrar más señales de indicadores

Añadiendo otros indicadores como KD, el MACD diversifica las fuentes de señal y mejora la precisión de la decisión.

  1. Incorporar el aprendizaje automático

Utilice algoritmos de aprendizaje automático para analizar datos históricos y aumentar o reemplazar algunas señales de indicadores para reducir la intervención manual.

  1. Optimización de las pérdidas y ganancias

Introduzca un stop profit adaptativo basado en el rendimiento y un stop loss posterior para reducir el riesgo.

  1. Mejorar la gestión de riesgos

Optimizar la asignación de capital, el tamaño de las posiciones y las estrategias de control de riesgos de acuerdo con las condiciones del mercado.

  1. Pruebas de retroceso cuantitativas y optimización

Utilice backtesting y comercio de papel para optimizar repetidamente los parámetros y ayudar a las decisiones comerciales en vivo.

  1. Comercio automatizado

Parametrizar la estrategia basada en los resultados de backtest e incorporar en el sistema de negociación automatizado para la ejecución de manos libres.

Conclusión

Esta estrategia integra señales de Bollinger, EMA y candlestick para validación múltiple. El comercio de doble línea mejora aún más la rentabilidad. Con una respuesta rápida, es adecuado para el comercio frecuente a corto plazo. Una parada de ganancia / pérdida efectiva y la optimización de parámetros pueden mejorar aún más el rendimiento al tiempo que reducen el riesgo. En general, esta estrategia simple y práctica tiene un fuerte valor práctico.


/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Design by MrPhu in August,10,2018
strategy("TrumpShipper_Long_Short V26", overlay=true)
filterFractals = input(true, title=" Follow Code #Trump On/Off")
dt = 0.0001
confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1])
prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1]

if (prediction)
    strategy.exit("Close", "Short ")
    strategy.entry("Long ", strategy.long)

if (not prediction)
    strategy.exit("Close", "Long ")
    strategy.entry("Short ", strategy.short)
///////////Bollinger Band///////////////
length = 20
crc = close, title="Source"
mult = 2.0
basis = sma(crc, length)
dev = mult * stdev(crc, length)
upper = basis + dev
lower = basis - dev
spanColor = prediction ? green : red, transp=90

p1 = plot(upper, title="Short", style=line, linewidth=1, color=spanColor)
p2 = plot(lower, title="Long", style=line, linewidth=1, color=spanColor)

fill(p1, p2, color=spanColor, transp=90, title="Fill")

/////////////
Optional_TimeFrame = 'D'

M_HIGH = request.security(syminfo.tickerid, Optional_TimeFrame, high)
M_OPEN = request.security(syminfo.tickerid, Optional_TimeFrame, open)
M_LOW = request.security(syminfo.tickerid, Optional_TimeFrame, low)

H_RANGE = M_HIGH-M_OPEN
L_RANGE = M_OPEN-M_LOW

H_236 = M_HIGH - H_RANGE * 0.236
H_382 = M_HIGH - H_RANGE * 0.382
H_500 = M_HIGH - H_RANGE * 0.500
H_618 = M_HIGH - H_RANGE * 0.618
H_764 = M_HIGH - H_RANGE * 0.764

L_236 = M_LOW + L_RANGE * 0.236
L_382 = M_LOW + L_RANGE * 0.382
L_500 = M_LOW + L_RANGE * 0.500
L_618 = M_LOW + L_RANGE * 0.618
L_764 = M_LOW + L_RANGE * 0.764

pl1=plot(M_HIGH, color=M_HIGH != M_HIGH[1] ?na:black, style=line, linewidth=1, transp=80)

pl2=plot(H_236, color=H_236 != H_236[1] ?na:gray, style=line, linewidth=1, transp=80)
pl3=plot(H_382, color=H_382 != H_382[1] ?na:black, style=line, linewidth=1, transp=80)
pl4=plot(H_500, color=H_500 != H_500[1] ?na:red, style=line, linewidth=1, transp=80)
pl5=plot(H_618, color=H_618 != H_618[1] ?na:gray, style=line, linewidth=1, transp=80)
pl6=plot(H_764, color=H_764 != H_764[1] ?na:gray, style=line, linewidth=1, transp=80)

pl7=plot(M_OPEN, color=M_OPEN != M_OPEN[1] ?na:blue, style=line, linewidth=2)

pl8=plot(L_236, color=L_236 != L_236[1] ?na:gray, style=line, linewidth=1, transp=80)
pl9=plot(L_382, color=L_382 != L_382[1] ?na:black, style=line, linewidth=1, transp=80)
pl10=plot(L_500, color=L_500 != L_500[1] ?na:red, style=line, linewidth=1, transp=80)
pl11=plot(L_618, color=L_618 != L_618[1] ?na:black, style=line, linewidth=1, transp=80)
pl12=plot(L_764, color=L_764 != L_764[1] ?na:gray, style=line, linewidth=1, transp=80)

pl13=plot(M_LOW, color=M_LOW != M_LOW[1] ?na:black, style=line, linewidth=1, transp=80)

SHOW_MA = false
MA_SRC = hlc3
MA_LENGTH = 21

_MA = ema(MA_SRC, MA_LENGTH)
pl14=plot(not SHOW_MA ? na : _MA, color=teal, linewidth=2)

SHOW_SIGNALS = true

BUYX(_F) => cross(_F, MA_SRC) and rising(_MA, 1)
SELX(_F) => cross(_F, MA_SRC) and falling(_MA, 1)

SEL_SIGNAL = SELX(H_236) or SELX(H_382) or SELX(H_500) or SELX(H_618) or SELX(H_764) or SELX(L_236) or SELX(L_382) or SELX(L_500) or SELX(L_618) or SELX(H_764)

BUY_SIGNAL = BUYX(H_236) or BUYX(H_382) or BUYX(H_500) or BUYX(H_618) or BUYX(H_764) or BUYX(L_236) or BUYX(L_382) or BUYX(L_500) or BUYX(L_618) or BUYX(H_764)

//================= Chart 30m =================/////
//Jurij
h_left = 10
h_right = 10
//barCount = nz(barCount[1]) + 1
//check history and realtime PTZ
h_left_low = lowest(h_left)
h_left_high = highest(h_left)
newlow = low <= h_left_low
newhigh = high >= h_left_high
central_bar_low = low[h_right + 1]
central_bar_high = high[h_right + 1]
full_zone_low = lowest(h_left + h_right + 1)
full_zone_high = highest(h_left + h_right + 1)
central_bar_is_highest = central_bar_high >= full_zone_high
central_bar_is_lowest = central_bar_low <= full_zone_low
plotchar(central_bar_is_highest ? -1 : 0, offset=-h_right-1 ,color=red, text="Top")
plotchar(central_bar_is_lowest ? 1 : 0, offset=-h_right-1 ,location=location.belowbar, color=green, text="Bottom")

Más.