
Esta é uma estratégia de acompanhamento de tendências baseada na lei de negociação da torcida. A estratégia usa o ATR (Average True Rate) para determinar a direção da tendência e o tamanho da posição de negociação. A estratégia abre uma posição a mais ou a menos quando o preço quebra o preço mais alto ou mais baixo do período anterior.
O núcleo da estratégia é o uso do indicador ATR para determinar a direção da tendência e o tamanho da posição de negociação. O indicador ATR pode medir a volatilidade do mercado, ajudando-nos a determinar o ponto de parada e o tamanho da posição apropriados. Os principais passos da estratégia são os seguintes:
Desta forma, a estratégia é capaz de capturar uma forte tendência, enquanto o risco é rigorosamente controlado. O uso do indicador ATR pode nos ajudar a ajustar dinamicamente o tamanho da posição para melhor se adaptar à volatilidade do mercado.
Para combater esses riscos, as seguintes soluções podem ser consideradas:
Com estas melhorias, a estabilidade e a rentabilidade da estratégia podem ser melhoradas.
A estratégia de ruptura de turtle-ATR é uma estratégia de acompanhamento de tendências baseada nas regras de negociação de turbinas. A estratégia usa o indicador ATR para determinar a direção da tendência e o tamanho da posição de negociação, abrindo posições e mantendo posições até a reversão da tendência, rompendo os preços mais altos ou mais baixos do tempo passado. A vantagem da estratégia reside na capacidade de capturar um forte comportamento de tendência, enquanto o risco é rigorosamente controlado.
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © luisfeijoo22
//@version=5
strategy("Estrategia de las tortugas_ES", overlay=true, pyramiding=3)
// Parámetros
atrLength = input.int(20, "Longitud del ATR")
atrFactor = input.float(2, "Factor del ATR")
entryBreakout = input.int(20, "Breakout de entrada")
exitBreakout = input.int(10, "Breakout de salida")
longOnly = input.bool(false, "Solo largos")
shortOnly = input.bool(false, "Solo cortos")
// Cálculo del ATR
atr = ta.atr(atrLength)
// Cálculo de los niveles de breakout
longEntry = ta.highest(high, exitBreakout)[1]
longExit = ta.lowest(low, exitBreakout)[1]
shortEntry = ta.lowest(low, exitBreakout)[1]
shortExit = ta.highest(high, exitBreakout)[1]
// Cálculo del tamaño de la posición
nContracts = math.floor((strategy.equity * 0.01) / (atrFactor * atr))
// Filtra las fechas según el rango deseado
// in_range = time >= timestamp(year(start_date), month(start_date), dayofmonth(start_date))
// Condiciones de entrada y salida
longCondition = not longOnly and close > longEntry and time >= timestamp("2023-03-15")
if longCondition
strategy.entry("Long", strategy.long, qty = nContracts)
shortCondition = not shortOnly and close < shortEntry and time >= timestamp("2023-03-15")
if shortCondition
strategy.entry("Short", strategy.short, qty = nContracts)
strategy.exit("Exit Long", "Long", stop = longExit)
strategy.exit("Exit Short", "Short", stop = shortExit)
// Visualización de los niveles de breakout
plot(longEntry, "Entrada larga", color.green, style = plot.style_line)
plot(longExit, "Salida larga", color.red, style = plot.style_line)
plot(shortEntry, "Entrada corta", color.green, style = plot.style_line)
plot(shortExit, "Salida corta", color.red, style = plot.style_line)