La idea central de esta estrategia es utilizar la forma de la línea K contenida entre los ciclos de la barra para determinar la dirección de la tendencia y usarla como una señal de entrada. Cuando aparece una forma de la línea K contenida entre los ciclos de la barra anterior, podemos deducir que el momento actual es un momento de conversión de tendencia, momento en el que podemos optar por hacer más en el momento de la ruptura del punto más alto o hacer vacío en el momento de la ruptura del punto más bajo, y configurar un alto y un alto.
La lógica de juicio es: el punto más alto de la línea K actual es inferior al punto más alto de la línea K anterior, y el punto más bajo de la línea K actual es superior al punto más bajo de la línea K anterior.
Si el precio de cierre es más alto que el precio de apertura, es positivo; si el precio de cierre es más bajo que el precio de apertura, es negativo.
Si la línea K anterior es una tendencia alcista y se presenta una forma de interciclo implícito, establecemos una orden de parada de compra dentro del 10% del punto más alto de la línea K anterior.
Si la línea K anterior es bajista y se presenta un patrón entre ciclos implícitos, establecemos una orden de parada en el 10% de la línea K anterior.
Una vez que la parada se activa para formar una posición, se configuran la parada y la parada. La distancia de parada y la distancia de parada son proporcionales a la amplitud de la línea K anterior.
Si vuelve a ocurrir una situación entre períodos, priorizamos la liquidación y luego reestablecemos una nueva lista pendiente.
Las ventajas de esta estrategia son:
Utilizando la lógica interna de la línea K, el tiempo de entrada es preciso. La forma implícita entre los ciclos suele significar un cambio de tendencia o una aceleración inminente, lo que nos ofrece un mejor tiempo de entrada.
Las reglas de la estrategia son claras, fáciles de entender y manejar.
El riesgo se puede controlar mediante el uso de los puntos altos y bajos del ciclo anterior para establecer la posición de parada de pérdida.
Cada vez que vuelve a aparecer una nueva lista de seguimiento, se vuelve a configurar para seguir la nueva tendencia.
La estrategia también tiene sus riesgos:
Las formas implicadas entre los ciclos no necesariamente provocan una reversión o aceleración de la tendencia, y existe un cierto riesgo de señales falsas.
La distancia de frenado puede estar demasiado pequeña para soportar las grandes sacudidas de la situación.
La distancia de frenado puede ser demasiado grande y no se puede obtener ganancias a tiempo.
La estrategia depende más de las tendencias y tiene poco margen de maniobra en la consolidación.
Las transacciones pueden ser demasiado frecuentes y costosas.
Respuesta:
Se puede combinar con otros indicadores para reducir la tasa de falsedad de señales de confirmación que se encuentran en el filtro entre los ciclos.
La distancia de parada se puede relajar adecuadamente, pero no más del 50% de la amplitud de la línea K anterior.
Se puede acortar la distancia entre la parada y la línea K anterior en un 50% aproximadamente.
Optimización de la gestión de fondos, reducción de posiciones individuales y respuesta a la reestructuración.
La liberalización de las condiciones de entrada y la reducción de las transacciones.
Esta estrategia puede ser optimizada en los siguientes aspectos:
Combinar los indicadores de tendencia para determinar la dirección de la tendencia y evitar el comercio frecuente en la liquidación. Por ejemplo, unirse a la tendencia de determinación del MACD solo se considera la entrada cuando el MACD está en sentido contrario.
Optimización de las estrategias de stop loss, como el stop loss móvil o el stop loss de protección de ganancias, para que el stop loss sea más flexible.
Prueba diferentes configuraciones de la proporción de stop loss para encontrar la combinación óptima de parámetros.
La entrada en el mecanismo de reingreso para recuperar la tendencia después de la salida en pérdidas.
Optimización de la gestión de posiciones, ajustando las posiciones individuales según la volatilidad del mercado.
Optimizar la gestión de fondos, por ejemplo, la utilización de fondos fijos.
Probar la estrategia en diferentes variedades y períodos de tiempo.
En resumen, esta es una estrategia que utiliza los puntos de inflexión de la tendencia de juicio de forma implícita entre los ciclos, la configuración de la lista de anclaje para capturar la tendencia de reversión. Tiene la claridad de la hora de entrada, las reglas de la estrategia simple, los riesgos controlables, etc., pero también existe un cierto riesgo de falsa señal y espacio de optimización.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Inside Bar Momentum Strategy
// As defined on Babypips.com
// https://www.babypips.com/trading/forex-inside-bar-20170113
// strategy("Babypips: Inside Bar Momentum Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=5)
From_Year = input(defval = 2018, title = "From Year")
From_Month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
From_Day = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
To_Year = input(defval = 9999, title = "To Year")
To_Month = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
To_Day = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
Start = timestamp(From_Year, From_Month, From_Day, 00, 00) // backtest start window
Finish = timestamp(To_Year, To_Month, To_Day, 23, 59) // backtest finish window
Window = true
Stop_Buy_Perc = input(10, "Stop Buy Order Percentage From Previous Candle's Range")/100
Stop_Loss_Perc = input(20, "Stop Loss Distance from High/Low of Previous Candle")/100
Take_Prof_Perc = input(80, "Take Profit Distance from High/Low of Previous Candle")/100
Risk = input(2, "Percentage Of EQUITY to risk per trade", step=0.1, minval=0, maxval=100)/100
Inside_Bar = high[1] > high[0] and low[1] < low[0]
Prev_Range = high[1] - low[1]
Bullish = open[1] < close[1]
Bearish = open[1] > close[1]
// Get Key Levels
Long_Stop_Buy_Level = high[1] + (Prev_Range * Stop_Buy_Perc)
Short_Stop_Buy_Level = low[1] - (Prev_Range * Stop_Buy_Perc)
Long_Stop_Loss_Level = high[1] - (Prev_Range * Stop_Loss_Perc)
Short_Stop_Loss_Level = low[1] + (Prev_Range * Stop_Loss_Perc)
Long_Take_Prof_Level = high[1] + (Prev_Range * Take_Prof_Perc)
Short_Take_Prof_Level = low[1] - (Prev_Range * Take_Prof_Perc)
// Position Sizing
long_qty = floor((strategy.equity * Risk) / (Long_Stop_Buy_Level - Long_Stop_Loss_Level))
short_qty = floor((strategy.equity * Risk) / (Short_Stop_Loss_Level - Short_Stop_Buy_Level))
// -------------------------- LONG CONDITIONS --------------------------------//
// The first candlestick must be bullish (green or white) and if the second
// candlestick is completely contained by the first, set a buy stop order at
// the first candle’s high plus 10% of its range (high minus low).
// Place the stop loss at the first candle’s high minus 20% of its range
// and set the target at the first candle’s high plus 80% of its range
// If another inside bar pattern forms, the current position should be closed
// or the pending buy/sell order must be canceled and entry orders must be
// updated to the latest candles.
Long_Condition = Window and Inside_Bar and Bullish
if (Long_Condition)
// Incase we still have a buy stop order in the market
strategy.cancel_all()
// Close any existing positions according to the rules
strategy.close_all()
strategy.entry("Bullish IB", strategy.long, stop=Long_Stop_Buy_Level)
strategy.exit("Bullish Exit","Bullish IB", stop=Long_Stop_Loss_Level, limit=Long_Take_Prof_Level)
// -------------------------- SHORT CONDITIONS -------------------------------//
// The first candlestick must be bearish (red or black) and if the second
// candlestick is completely contained by the first, set a sell stop order at
// the first candle’s low minus 10% of its range (high minus low).
// Place the stop loss at the first candle’s low plus 20% of its range and
// set the target at the first candle’s low minus 80% of its range.
// If another inside bar pattern forms, the current position should be closed
// or the pending buy/sell order must be canceled and entry orders must be
// updated to the latest candles.
Short_Condition = Window and Inside_Bar and Bearish
if (Short_Condition)
// Incase we still have a buy stop order in the market
strategy.cancel_all()
// Close any existing positions according to the rules
strategy.close_all()
strategy.entry("Bearish IB", strategy.short, stop=Short_Stop_Buy_Level)
strategy.exit("Bearish Exit","Bearish IB", stop=Short_Stop_Loss_Level, limit=Short_Take_Prof_Level)
// ----------------------------- PLOTTING ------------------------------------//
plotshape(Inside_Bar, style=shape.arrowdown, location=location.abovebar, color=purple)