
A principal idéia da estratégia é determinar a direção de um binário com base na tendência de preços da semana, entrando em um binário após o surgimento de uma forma de linha de sol em um caso de bullish; parando quando o preço sobe até o ponto de parada predeterminado e parando se cair até o ponto de parada predeterminado.
A estratégia define primeiro os critérios para julgar as tendências semanais:
isUptrend = close > close[1]
isDowntrend = close < close[1]
Se o preço de fechamento atual for maior do que o preço de fechamento do dia anterior, será considerado uma tendência de alta, ou vice-versa.
Define então o sinal de negociação intradiária:
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
O preço de fechamento do dia anterior é maior do que o preço de abertura do dia anterior, e o preço de abertura do dia anterior é maior do que o preço de fechamento do dia anterior, e está em uma tendência de otimismo, satisfazendo a condição de entrada múltipla.
Após a entrada, o ponto de parada é definido como o preço de fechamento do dia anterior menos 1.382 vezes o comprimento da linha física do dia anterior:
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
O ponto de parada é definido como o preço de fechamento do dia anterior mais o dobro do ponto de parada e o preço de fechamento:
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)
A fim de alcançar a recuperação dos prejuízos.
A estratégia tem as seguintes vantagens:
A estratégia também apresenta alguns riscos:
Para controlar esses riscos, considere a inclusão das seguintes otimizações:
A estratégia também pode ser melhorada para:
A estratégia é bastante prática no seu conjunto, com a ideia central de destacar o comércio de tendências e controlar o risco. Pode ser usada como estratégia básica para o comércio de linha curta no dia, mas também pode ser modular e otimizada de acordo com diferentes mercados e variedades, permitindo um portfólio de negociações diversificado. Na aplicação prática, é ainda necessário prestar atenção ao controle de custos e prevenção de riscos, mantendo a mentalidade apropriada.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true)
// Function to get previous day's close and open
getPrevDayClose() =>
request.security(syminfo.tickerid, "D", close[1])
getPrevDayOpen() =>
request.security(syminfo.tickerid, "D", open[1])
// Determine weekly trend
isUptrend = close > close[1]
isDowntrend = close < close[1]
// Determine daily conditions for buy
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
// Calculate stop loss and take profit
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)
// Strategy logic
if (isUptrend)
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit)
if (isDowntrend)
strategy.entry("Sell", strategy.short)
// Plotting the trend on the chart
plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar)
// Plotting stop loss and take profit levels on the chart
plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross)
plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)