Indicadores técnicos múltiples Estrategia de ruptura de impulso

El autor:¿ Qué pasa?, Fecha: 2023-11-22 15:56:43
Las etiquetas:

img

Resumen general

Esta estrategia considera múltiples indicadores técnicos de manera integral y toma posiciones largas cuando se juzga que el mercado tiene un fuerte impulso alcista. Específicamente, esta estrategia tiene en cuenta MACD, RSI, ADX, Estocástico y Banda de Bollinger estos 5 indicadores. Genera señales de compra cuando todos estos indicadores cumplen con los criterios alcistas simultáneamente.

Estrategia lógica

La lógica central de esta estrategia es comprar cuando el mercado está determinado a tener un fuerte impulso alcista.

  1. Las barras MACD actuales de los gráficos de 5 minutos, 15 minutos y 60 minutos están subiendo.
  2. RSI es mayor de 60
  3. ADX es superior a 12
  4. El porcentaje estocástico K cruza el porcentaje D
  5. Se eleva la banda superior de la banda de Bollinger

Cuando se cumplen las 5 condiciones anteriores, se considera que el mercado tiene un fuerte impulso alcista.

La regla de salida es cerrar la posición actual cuando el precio de cierre de 5 minutos se rompe por debajo de la EMA de 5 minutos.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. La combinación de múltiples indicadores evita que uno solo pueda inducir a error
  2. El uso de indicadores a través de marcos de tiempo juzga la sostenibilidad del impulso alcista
  3. Un mecanismo de salida estricto evita que las pérdidas aumenten
  4. Frecuencia de negociación adecuada sin sobrenegociación

En general, esta estrategia tiene un juicio preciso, un control adecuado del riesgo y es adecuada para captar tendencias alcistas a corto plazo.

Análisis de riesgos

Esta estrategia también tiene algunos riesgos:

  1. La combinación de múltiples indicadores aumenta la probabilidad de una entrada errónea
  2. El mecanismo de salida puede ser demasiado estricto, causando una salida prematura de las operaciones correctas
  3. La alta frecuencia de negociación aumenta la carga de las comisiones

En resumen, los principales riesgos de esta estrategia se encuentran en la entrada errónea y la salida prematura, que deben mitigarse mediante el ajuste de los parámetros y el ajuste de las reglas.

Direcciones de optimización

Esta estrategia puede optimizarse en los siguientes aspectos:

  1. Optimizar los parámetros MACD para encontrar combinaciones que se adapten mejor al mercado
  2. Ajustar los parámetros del índice de rentabilidad para localizar mejor las zonas de sobrecompra/sobreventa
  3. Optimizar los parámetros estocásticos para mejores cruces
  4. Parámetros de banda de Bollinger ajustados para una mejor reflexión de la volatilidad del mercado
  5. Optimizar o sustituir las reglas de salida para reducir las salidas prematuras

A través de la optimización de parámetros y reglas, la rentabilidad y la capacidad de control de riesgos de esta estrategia pueden mejorarse aún más.

Conclusión

Esta estrategia juzga la tendencia alcista combinando múltiples indicadores con salidas relativamente estrictas. Tiene un juicio preciso, capaz de capturar tendencias a corto plazo y un control adecuado del riesgo. La optimización continua sobre parámetros y reglas comerciales puede mejorar aún más la estrategia. En resumen, esta es una estrategia práctica con una gran usabilidad.


/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © makarandpatil

// This strategy is for Bank Nifty instrument and for intraday purpose only
// It checks for various indicators and gives a buy signal when all conditions are met 
// Bank Nifty when in momentum gives 100-200 points in spot in 5-15 min which is how long the trade duration should be
// Issues - The custom script as per TradingView Pinescripting has an issue of repaint
// More information on repainting issue in this link - https://www.tradingview.com/pine-script-docs/en/v5/concepts/Repainting.html
// Use the script alert only to get notified, however check all the parameters individually before taking the trade
// Also, please perform a backtesting and deep backtesting of this strategy to see if the strategy gave correct buy signals in the past
// The script is made for testing purposes only and is in beta mode. Please use at own risk.

//@version=5
strategy("BankNifty_Bullish_Intraday", overlay=true, margin_long = 100, margin_short = 100)

// Variables
StochLength = input(14, title="Stochastic Length")
smoothK = input(3, title="%K Smoothing")
smoothD = input(3, title="%D Smoothing")
 
 
//INDICATOR CALCULATIONS
 
// 1. MACD
[macdLine, signalLine, histLine] = ta.macd(close[0],12,26,9)
 
macd5 = request.security(syminfo.tickerid, "5", macdLine)
macd15 = request.security(syminfo.tickerid,"15",macdLine)
macd60 = request.security(syminfo.tickerid,"60",macdLine)
 
// 2. RSI Calculation
xRSI = ta.rsi(close, 14)
 
// 3. ADX calculation
[diplus, diminus, adx] = ta.dmi(14,14)
// plot(adx,color = color.black)
 
// 4. Stochastic Calculation
k = ta.sma(ta.stoch(close, high, low, StochLength), smoothK)
d = ta.sma(k, smoothD)
 
// 5. Bollinger Band calculation
[middle, upper, lower] = ta.bb(close, 20, 2)
 
 
//CONDITIONS
 
// 1. Conditions for MACD
macd5Uptick = macd5[0] > macd5[1]
macd15Uptick = macd15[0] > macd15[1]
macd60Uptick = macd60[0] >= macd60[1]
 
// 2. Condition for xRSI
RSIStrong = xRSI > 60
 
// 3. Condition for ADX
ADXUngali = adx >= 12
 
// 4. Condition for Stochastic
StochPCO = k > d
 
// 5. Condition for Bollinger Band
BBCU = upper > upper [1]
 
//Evaluate the long condition
// longCondition = macd5Uptick and macd15Uptick and RSIStrong and ADXUngali and StochPCO and BBCU
longCondition = macd5Uptick and macd15Uptick and macd60Uptick and RSIStrong and ADXUngali and StochPCO and BBCU
// longCondition = macd5Uptick and macd15Uptick and RSIStrong and ADXUngali and StochPCO and BBCU

if (longCondition)
    strategy.entry("Buy", strategy.long,alert_message = "BankNifty_Buy_Momentum")

shortCondition = close < ta.ema(close,5)
if (shortCondition)
    strategy.entry("BuySquareoff", strategy.short, alert_message = "BankNifty_Closed_Below_5EMA")


Más.