Rastreador de toros


Fecha de creación: 2024-01-31 11:01:45 Última modificación: 2024-01-31 11:01:45
Copiar: 1 Número de Visitas: 602
1
Seguir
1617
Seguidores

Rastreador de toros

Descripción general

El sistema de seguimiento de mercados alcistas es un sistema de comercio mecánico basado en el seguimiento de tendencias. Utiliza indicadores de tendencias en gráficos de 4 horas para filtrar señales de comercio, mientras que las entradas se juzgan en indicadores de gráficos de 15 minutos. Los principales indicadores incluyen RSI, indicadores aleatorios y MACD.

El principio

La lógica central de este sistema es la combinación de indicadores de diferentes marcos de tiempo para identificar la dirección de la tendencia y el momento de entrada. En concreto, el RSI, el indicador aleatorio y el EMA en el gráfico de 4 horas deben cumplir los requisitos para determinar la dirección de la tendencia general. Esto puede filtrar eficazmente la mayoría del ruido.

Las ventajas

  1. Combinación de múltiples marcos de tiempo para filtrar eficazmente las señales falsas e identificar las principales tendencias
  2. Indicador de detalle de 15 minutos para obtener un tiempo de entrada más preciso
  3. El conjunto de indicadores utiliza indicadores tecnológicos convencionales como el RSI, el indicador aleatorio y el MACD, que son fáciles de entender y de optimizar.
  4. El uso de estrictos métodos de gestión de riesgos, como mStop, stop loss y tracking stop loss, permite controlar eficazmente el riesgo de una sola transacción

El riesgo

  1. El sistema es sensible a los marcos de tiempo más cortos y puede generar una gran cantidad de señales de transacción, lo que puede conducir a un exceso de transacciones
  2. Riesgo de falsa brecha. Los indicadores de juicio a corto plazo pueden ser erróneos y generar falsas señales de brecha.
  3. Riesgo de fallo de los indicadores. Los indicadores técnicos tienen sus propias limitaciones y pueden fallar en casos extremos.

En consecuencia, el sistema puede ser optimizado en los siguientes aspectos:

  1. Ajustar los parámetros del indicador para adaptarlo mejor a las diferentes circunstancias del mercado
  2. Aumentar las condiciones de filtración para reducir la frecuencia de las transacciones y evitar el exceso de transacciones
  3. Optimización de la estrategia de stop loss para adaptarla mejor a las fluctuaciones del mercado
  4. Probar diferentes combinaciones de indicadores para encontrar la mejor solución

Resumir

El sistema de seguimiento de la bolsa de toros es un sistema de comercio mecánico de seguimiento de tendencias muy práctico en general. Utiliza indicadores combinados de múltiples marcos temporales para identificar tendencias de mercado y momentos clave de entrada. Con una configuración razonable de parámetros y pruebas de optimización continua, el sistema puede adaptarse a la mayoría de los entornos de mercado y lograr un efecto de ganancias estables.

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

//@version=4
strategy("Cowabunga System from babypips.com", overlay=true)
// 4 Hour Stochastics
length4 = input(162, minval=1, title="4h StochLength"), smoothK4 = input(48, minval=1, title="4h StochK"), smoothD4 = input(48, minval=1, title="4h StochD")
k4 = sma(stoch(close, high, low, length4), smoothK4)
d4 = sma(k4, smoothD4)

//15 min Stoch
length = input(10, minval=1, title="15min StochLength"), smoothK = input(3, minval=1, title="15min StochK"), smoothD = input(3, minval=1, title="15min StochD")
k = sma(stoch(close, high, low, length), smoothK)
d= sma(k, smoothD)

//4 hour RSI
src1 = close, len1 = input(240, minval=1, title="4H RSI Length")
up1 = rma(max(change(src1), 0), len1)
down1 = rma(-min(change(src1), 0), len1)
rsi4 = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))

//15 min RSI
src = close, len = input(9, minval=1, title="15M RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi15 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//MACD Settings
source = close
fastLength = input(12, minval=1, title="MACD Fast"), slowLength=input(26,minval=1, title="MACD Slow")
signalLength=input(9,minval=1, title="MACD Signal")
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)

// Stops and Profit inputs
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 400, title = "Trailing Stop", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Offset", minval = 0)

// Stops and Profit Targets
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

//Specific Time to Trade
myspecifictradingtimes = input('0500-1600', title="My Defined Hours")

longCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
longCondition2 = rsi4 <= 80
longCondition3 = k4 >= d4 and k4 <= 80
longCondition4 = ema(close, 80) >= ema(close, 162)
allLongerLongs = longCondition1 and longCondition2 and longCondition3 and longCondition4

longCondition5 = rsi15 <= 80
longCondition6 = k >= d and k <= 80 and fastMA >= slowMA
longCondition7 = ema(close, 5) >= ema(close, 10)
allLongLongs = longCondition5 and longCondition6 and longCondition7

if crossover(close, ema(close, 5)) and allLongerLongs and allLongLongs
    strategy.entry("Long", strategy.long, comment="LongEntry")

shortCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
shortCondition2 = rsi4 >= 20
shortCondition3 = k4 <= d4 and k4 >= 20
shortCondition4 = ema(close, 80) <= ema(close, 162)
allShorterShorts = shortCondition1 and shortCondition2 and shortCondition3 and shortCondition4

shortCondition5 = rsi15 >= 20
shortCondition6 = k <= d and k >= 20 and fastMA <= slowMA
shortCondition7 = ema(close, 5) <= ema(close, 10)
allShortShorts = shortCondition5 and shortCondition6 and shortCondition7

if crossunder(close, ema(close,5)) and allShorterShorts and allShortShorts
    strategy.entry("Short", strategy.short, comment="ShortEntry")

strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)