
A principal ideia da estratégia é abrir mais posições após o surgimento de uma determinada forma de linha K, ou seja, fazer mais entradas quando a linha K seguinte é aberta, caso haja uma barra de cores que salta para baixo e a próxima linha K retorna ao ponto baixo.
A estratégia de julgamento baseia-se na seguinte condição: a linha K anterior tem um ponto mais baixo e um ponto mais alto do que a linha K anterior, ou seja, um salto para baixo; e a linha K atual tem um ponto mais baixo e um ponto mais baixo do que a linha K anterior, ou seja, um retorno.
Fazer o stop loss como o ponto baixo de retorno, ou seja, o preço mínimo da linha K anterior, e definir o stop loss como mais de 2% do preço de abertura da posição. Quando o preço toca o stop loss ou o preço de stop loss, a posição é fechada.
A maior vantagem dessa estratégia é aproveitar as oportunidades de rebote que são altamente possíveis em curto prazo. Quando surge uma linha K que salta para baixo e depois ocorre um recuo, esta é uma forma de técnica muito poderosa, indicando que a força do arco-íris pode ser esgotada a esse nível e que há uma grande probabilidade de rebote. Portanto, esta é uma estratégia relativamente adequada para operações de linha curta.
O principal risco desta estratégia é a possibilidade de que o preço continue a cair após o final da retracção. Como estamos fazendo muito perto do ponto baixo da retracção, se não conseguirmos parar o prejuízo a tempo, podemos enfrentar grandes perdas. Além disso, se a amplitude da retracção for menor e o ponto de parada for mais próximo, pode ser ajustado.
Pode-se considerar a combinação de outros indicadores para determinar o momento de entrada, como a possibilidade de entrar novamente no momento em que o MACD ocorre, ou pode-se calcular o preço típico para ver se está em posição de suporte, etc., o que pode filtrar alguns falsos sinais e melhorar a estabilidade da estratégia. Além disso, pode-se estudar o desempenho da estratégia em diferentes variedades e diferentes períodos de tempo, procurando o melhor conjunto de parâmetros.
A estratégia é, em geral, uma estratégia típica de reajuste de ruptura de linha curta em várias formas. Ela aproveita a oportunidade de rebote oferecida pela forma forte de salto alto e reajuste. Mas, ao mesmo tempo, enfrenta o risco de não conseguir parar o prejuízo a tempo e causar maiores perdas, portanto, é adequada para operações de linha curta de monitoramento frequente do mercado.
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Created by Leon Ross
//study(title="OutsideDownOpenLower", shorttitle="ODOL", overlay=true)
strategy(title = "Outside", shorttitle = "OB", overlay = true )
//Window of time
//start = timestamp(2018, 01, 01, 00, 00) // backtest start window
//finish = timestamp(2018, 12, 31, 23, 59) // backtest finish window
//window() => time >= start and time <= finish ? true : false // create function "within window of time"
//Conditions
outsideBar = low < low[1] and high > high[1] and close < open
allConditions = outsideBar
//Stop and Take Profit as percentages
//inpTakeProfit = input(2, title='Take Profit %', type=float)/100
//takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit)
//useTakeProfit = inpTakeProfit > 0 ? takeProfitValue : na
//inpStopLoss = input(1, title='Stop Loss %', type=float)/100
//stopLossValue = strategy.position_avg_price * (1 - inpStopLoss)
//useStopLoss = inpStopLoss > 0 ? stopLossValue : na
//entry = strategy.position_avg_price
//Stop as last bars low and profit as percentage
entry = strategy.position_avg_price
inpTakeProfit = input(2.0, title='Take Profit %', type=float)/100
takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit)
useTakeProfit = inpTakeProfit > 0 ? takeProfitValue : na
inpStopLoss = valuewhen(allConditions, low, 0)
stopLossValue = inpStopLoss
useStopLoss = inpStopLoss > 0 ? stopLossValue : na
//Plots
bgcolor(allConditions ==1 ? aqua : na, transp=70)
plot(entry, color=blue, style=linebr, linewidth=2)
plot(useStopLoss, color=red, style=linebr, linewidth=2)
plot(useTakeProfit, color=green, style=linebr, linewidth=2)
//Entires
strategy.entry(id = "Long", long = true, when = allConditions) // use function or simple condition to decide when to get in
//Exits
//if (barssince(allConditions) == 2)
//strategy.close("Long")
//else
strategy.exit("Exit Long", from_entry = "Long", stop = useStopLoss)