이 전략은 트렌드 트레이딩 규칙에 기반한 트렌드를 따르는 전략이다. 이 전략은 트렌드 방향과 거래 위치 크기를 결정하기 위해 ATR (Average True Range) 를 사용합니다. 가격이 특정 기간 동안 가장 높거나 가장 낮은 가격에서 벗어날 때 전략은 긴 또는 짧은 위치를 열 것입니다. 가격이 특정 기간 동안 가장 낮거나 가장 높은 가격에서 벗어날 때까지 포지션은 유지되며 그 시점에서 전략은 포지션을 닫습니다. 이 전략의 목표는 위험을 엄격하게 통제하면서 강한 트렌딩 시장을 포착하는 것입니다.
이 전략의 핵심은 트렌드 방향과 거래 위치 크기를 결정하기 위해 ATR 지표를 사용하는 것입니다. ATR 지표는 시장 변동성을 측정하여 적절한 스톱 로스 수준과 위치 크기를 결정하는 데 도움이됩니다. 전략의 주요 단계는 다음과 같습니다.
이 접근 방식을 따라 전략은 강력한 트렌드 시장을 포착 할 수 있으며 위험을 엄격하게 제어 할 수 있습니다. ATR 지표의 사용은 시장 변동에 더 잘 적응하기 위해 포지션 크기를 동적으로 조정하는 데 도움이됩니다.
이러한 위험을 해결하기 위해 다음과 같은 솔루션을 고려할 수 있습니다.
위의 최적화를 통해 전략의 안정성과 수익성이 더욱 향상될 수 있습니다.
투르틀-ATR 볼링거 밴드 브레이크아웃 전략 (Turtle-ATR Bollinger Bands Breakout Strategy) 은 투르틀 트레이딩 규칙에 기반한 트렌드를 따르는 전략이다. 이 전략은 트렌드 방향과 거래 위치 크기를 결정하기 위해 ATR 지표를 활용하여 특정 기간 동안 가격이 가장 높거나 가장 낮은 가격에서 벗어날 때 포지션을 열고 트렌드가 역전될 때까지 포지션을 보유한다. 이 전략의 장점은 강력한 트렌딩 시장을 포착하는 동시에 위험을 엄격히 제어하는 능력에 있다. 그러나 이 전략은 또한 트렌드 역전, 불투명한 시장 및 매개 변수 민감성 등의 위험에 직면한다. 전략의 성능을 더욱 향상시키기 위해 더 많은 지표를 도입하고, 매개 변수를 동적으로 조정하고, 이윤 취득 메커니즘을 통합하고, 포지션 관리를 최적화하는 등의 분야에서 최적화를 고려할 수 있다. 전반적으로, TURTLE-ATR 볼링거 밴드 브레이크아웃 전략은 트렌드를 따르는 간단한, 적응 가능한 전략이며 추가 연구와 응용 가치가 있다.
/*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)