
A estratégia é um sistema de negociação baseado em rupturas de linhas de tendência, combinando o conceito de média móvel e de ruptura de preço. O núcleo da estratégia é gerar sinais de negociação monitorando a ruptura do preço de fechamento em relação à média móvel e gerenciar o risco com base em paradas e paradas em uma proporção de 2: 1 com base nos níveis mais baixos mais recentes. A estratégia usa a média móvel simples como indicador de tendência e julga a mudança de direção da tendência através do cruzamento do preço com a linha média.
A estratégia usa uma média móvel simples de 20 ciclos (SMA) como indicador de tendência. Quando o preço de fechamento se move de baixo para cima, o sistema gera vários sinais. O ponto de parada é definido no ponto mais baixo das últimas 7 linhas K, evitando ficar muito perto do ponto de entrada. A configuração do ponto de parada adota o clássico 2: 1 de perda, ou seja, a distância de parada é 2 vezes a distância de parada.
Esta é uma estratégia de seguimento de tendências com uma estrutura e uma lógica bem definidas. Produz sinais de ruptura de médias móveis, com um mecanismo de gerenciamento de risco razoável, com boa praticidade. Embora existam alguns riscos inerentes, a estabilidade e a rentabilidade da estratégia podem ser melhoradas com a orientação de otimização sugerida.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Breakout with SL and TP", overlay=true)
// Parametrlar
length = input(25, title="Length for SL Calculation")
trendLength = input(20, title="Trend Line Length")
// Trend chizig'ini hisoblash
trendLine = ta.sma(close, trendLength)
// Yopilish narxi trend chizig'ini yorib o'tganda signal
longSignal = close > trendLine and close[1] <= trendLine
// Oxirgi 7 shamning minimumini hisoblash
lowestLow = ta.lowest(low, 7)
// Stop Loss darajasini belgilash
longSL = lowestLow // SL oxirgi 7 shamning minimumiga teng
// Take Profit darajasini SL ga nisbatan 2 baravar ko'p qilib belgilash
longTP = longSL + (close - longSL) * 2 // TP 2:1 nisbatida
// Savdo bajarish
if longSignal
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit", "Long", limit=longTP)
strategy.exit("Stop Loss", "Long", stop=longSL)
// Grafikda trend chizig'ini chizish
plot(trendLine, title="Trend Line", color=color.blue, linewidth=2)
// Signal chizish
plotshape(longSignal, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
// SL va TP darajalarini ko'rsatish
// if longSignal
// // SL chizig'i
// line.new(bar_index, longSL, bar_index + 1, longSL, color=color.red, width=2, style=line.style_dashed)
// // TP chizig'i
// line.new(bar_index, longTP, bar_index + 1, longTP, color=color.green, width=2, style=line.style_dashed)
// // SL va TP label'larini ko'rsatish
// label.new(bar_index, longSL, "SL: " + str.tostring(longSL), color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)
// label.new(bar_index, longTP, "TP: " + str.tostring(longTP), color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)