A idéia central desta estratégia é usar a forma de linha K, que está entre os ciclos, para determinar a direção da tendência e usá-la como sinal de entrada. Quando surge uma forma de linha K, que está entre os ciclos, podemos inferir que o momento atual é um momento de conversão de tendência, momento em que podemos optar por fazer mais no pico anterior à ruptura, ou fazer vazio no pico anterior à ruptura, e configurar um stop loss e um stop loss.
A lógica de julgamento é: o ponto mais alto da linha K atual é menor que o ponto mais alto da linha K anterior, e o ponto mais baixo da linha K atual é maior que o ponto mais baixo da linha K anterior.
Se o preço de fechamento for maior do que o preço de abertura, será positivo; se o preço de fechamento for menor do que o preço de abertura, será negativo.
Se a linha K anterior for tendência e houver uma forma de inter-ciclo implícito, configuramos um stop order de compra dentro de 10% do ponto mais alto da linha K anterior.
Se a linha K anterior for baixa e uma forma de inter-ciclo implícito ocorrer, estabelecemos um stop-sell dentro de 10% da linha K anterior.
Uma vez que a parada é acionada para a formação de uma posição, nós definimos uma parada de perda e uma parada de parada. A distância de parada e a distância de parada são proporcionais à amplitude da linha K anterior.
Se o intervalo entre os períodos de conexão ocorrer novamente, nós vamos priorizar a liquidação e reiniciar a nova lista pendente.
A estratégia tem as seguintes vantagens:
O uso de lógica intrínseca na linha K permite uma precisão de tempo de entrada. A forma implicada entre os ciclos geralmente significa que uma reversão ou aceleração de tendência está por vir, o que nos oferece uma melhor hora de entrada.
As regras da estratégia são claras, fáceis de entender e de usar.
O risco pode ser controlado usando o alto e o baixo do ciclo anterior para definir a posição de parada de perda.
Cada vez que um novo item aparece, ele é redefinido para acompanhar uma nova tendência.
A estratégia também traz alguns riscos:
A forma interna entre os ciclos não necessariamente leva a uma reversão ou aceleração da tendência, existindo um certo risco de falso sinal.
A distância de travamento pode ser muito pequena para suportar grandes choques.
A distância de parada pode ser muito grande para que você não consiga lucrar a tempo.
A estratégia é mais dependente da tendência, com pouco espaço para lucro em uma situação de balanço.
O número de transações pode ser muito frequente e os custos de transação podem ser altos.
Resposta:
Pode ser combinado com outros indicadores de filtragem de sinais de confirmação contidos entre os ciclos, reduzindo a taxa de falso sinal.
A distância de suspensão pode ser liberada adequadamente, mas não deve exceder 50% da amplitude da linha K anterior.
A distância entre o pára-choques e a linha K anterior pode ser reduzida em cerca de 50%.
Optimizar o gerenciamento de fundos, reduzir posições individuais e responder à liquidação.
A liberalização adequada das condições de entrada e a redução do número de transações.
A estratégia pode ser otimizada em vários aspectos:
Combine os indicadores de tendência para determinar a direção da tendência e evite a negociação frequente durante a liquidação. Por exemplo, para participar do MACD para determinar a tendência, considere a entrada apenas quando o MACD estiver em equilíbrio.
Optimizar a estratégia de stop loss, usando stop loss móvel ou stop loss de proteção de lucro, para tornar o stop loss mais flexível.
Teste diferentes configurações de proporções de stop-loss para encontrar a combinação de parâmetros mais adequada.
A reentrada é um mecanismo de reentrada que capta a tendência de novo após a saída de parada de perda.
Optimizar a gestão de posições, ajustando as posições individuais de acordo com a volatilidade do mercado.
Otimizar a gestão de fundos, como a taxa de utilização de fundos fixos.
Teste a eficácia da estratégia em diferentes variedades e períodos de tempo.
Em resumo, é uma estratégia que utiliza um ponto de inflexão de tendência para determinar a forma entre os ciclos, e configura uma lista para capturar uma tendência de reversão. Tem vantagens como a clareza do tempo de entrada, regras de estratégia simples e risco controlável, mas também existe um certo risco de falso sinal e espaço para otimização. Podemos melhorar ainda mais a estabilidade e a lucratividade da estratégia combinando indicadores de tendência, otimizando o stop loss e ajustando a posição.
/*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)