Sistema de seguimiento del mercado alcista

El autor:¿ Qué pasa?, Fecha: 2024-01-31 11:01:45
Las etiquetas:

img

Resumen general

El sistema de seguimiento del mercado alcista es un sistema de trading mecánico basado en el seguimiento de tendencias. Utiliza indicadores de tendencia en el gráfico de 4 horas para filtrar las señales de trading, mientras que las decisiones de entrada se toman basándose en indicadores del gráfico de 15 minutos. Los principales indicadores incluyen RSI, Estocástico y MACD. La ventaja de este sistema es que la combinación de múltiples marcos de tiempo puede filtrar eficazmente señales falsas, mientras que los indicadores de marcos de tiempo más cortos pueden identificar un momento de entrada más preciso.

Principios

La lógica central de este sistema es combinar indicadores de diferentes marcos de tiempo para identificar la dirección de la tendencia y el momento de entrada. Específicamente, el RSI, el Estocástico y la EMA en el gráfico de 4 horas deben alinearse para determinar la dirección general de la tendencia. Esto puede filtrar efectivamente la mayor parte del ruido. Al mismo tiempo, el RSI, el Estocástico, el MACD y la EMA en el gráfico de 15 minutos también deben acordar el sesgo alcista o bajista para determinar el momento preciso de entrada. Esto nos permite encontrar buenos puntos de entrada y salida.

Ventajas

  1. Las combinaciones de múltiples marcos de tiempo pueden filtrar eficazmente las señales falsas e identificar las principales tendencias
  2. Los indicadores detallados de 15 minutos pueden capturar un tiempo de entrada relativamente preciso
  3. La combinación de indicadores que incluyen el RSI, el estocástico, el MACD y otros indicadores técnicos convencionales es fácil de entender y optimizar.
  4. Se adoptan métodos estrictos de gestión de riesgos, tales como obtener ganancias, stop loss, trailing stop loss, etc., para controlar eficazmente el riesgo de las operaciones individuales.

Los riesgos

  1. El sistema es bastante sensible a los plazos a corto plazo, que pueden generar muchas señales de negociación, lo que conduce a la sobre-negociación.
  2. Riesgo de ruptura falsa: los juicios de los indicadores a corto plazo pueden ser erróneos, lo que resulta en señales de ruptura falsas
  3. Los indicadores técnicos tienen ciertas limitaciones y pueden fallar en condiciones extremas de mercado

En consecuencia, el sistema puede optimizarse en los siguientes aspectos:

  1. Ajustar los parámetros de los indicadores para que sean más adecuados para diferentes entornos de mercado
  2. Aumentar las condiciones de filtro para reducir la frecuencia de negociación y evitar el exceso de negociación
  3. Optimizar las estrategias de stop profit y stop loss para adaptarse mejor a los rangos de fluctuación del mercado
  4. Prueba diferentes combinaciones de indicadores para encontrar la solución óptima

Resumen de las actividades

En general, el sistema de seguimiento del mercado de toros es una tendencia muy práctica después del sistema de negociación mecánico. Utiliza una combinación de indicadores de marcos de tiempo múltiples para identificar las tendencias del mercado y el momento clave de entrada. Con ajustes de parámetros razonables y pruebas de optimización continua, el sistema puede adaptarse a la mayoría de los entornos del mercado y lograr ganancias constantes. Sin embargo, también debemos ser conscientes de algunos de los riesgos potenciales y tomar medidas proactivas para prevenir y mitigar estos riesgos.


/*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)

Más.