리소스 로딩... 로딩...

토틀-ATR 볼링거 밴드 파업 전략

저자:차오장, 날짜: 2024-06-03 10:48:09
태그:ATR

img

전반적인 설명

이 전략은 트렌드 트레이딩 규칙에 기반한 트렌드를 따르는 전략이다. 이 전략은 트렌드 방향과 거래 위치 크기를 결정하기 위해 ATR (Average True Range) 를 사용합니다. 가격이 특정 기간 동안 가장 높거나 가장 낮은 가격에서 벗어날 때 전략은 긴 또는 짧은 위치를 열 것입니다. 가격이 특정 기간 동안 가장 낮거나 가장 높은 가격에서 벗어날 때까지 포지션은 유지되며 그 시점에서 전략은 포지션을 닫습니다. 이 전략의 목표는 위험을 엄격하게 통제하면서 강한 트렌딩 시장을 포착하는 것입니다.

전략 원칙

이 전략의 핵심은 트렌드 방향과 거래 위치 크기를 결정하기 위해 ATR 지표를 사용하는 것입니다. ATR 지표는 시장 변동성을 측정하여 적절한 스톱 로스 수준과 위치 크기를 결정하는 데 도움이됩니다. 전략의 주요 단계는 다음과 같습니다.

  1. ATR 지표 값을 계산합니다.
  2. 롱 포지션과 쇼트 포지션의 브레이크 프라이스 레벨을 결정합니다. 롱 브레이크 프라이스는 특정 기간 동안 가장 높은 가격이고, 짧은 브레이크 프라이스는 특정 기간 동안 가장 낮은 가격입니다.
  3. 만약 가격이 긴 브레이크오프 가격 이상으로 넘어가면, 긴 포지션을 열고, 가격이 짧은 브레이크오프 가격 이하로 넘어가면, 짧은 포지션을 열고,
  4. 각 거래에 대한 포지션 크기를 ATR 지표 값과 계좌 잔액에 기초하여 계산합니다.
  5. 포지션이 특정 기간 동안 가장 낮은 가격 (장기 포지션) 또는 가장 높은 가격 (단기 포지션) 을 넘기기 전까지 포지션을 유지하고, 그 다음 포지션을 닫습니다.

이 접근 방식을 따라 전략은 강력한 트렌드 시장을 포착 할 수 있으며 위험을 엄격하게 제어 할 수 있습니다. ATR 지표의 사용은 시장 변동에 더 잘 적응하기 위해 포지션 크기를 동적으로 조정하는 데 도움이됩니다.

전략적 장점

  1. 트렌드 추적: 전략은 강력한 트렌드 시장을 포착하여 상당한 이익을 창출하는 것을 목표로합니다.
  2. 리스크 제어: ATR 지표를 사용하여 포지션 크기와 스톱 로스 수준을 결정함으로써 전략은 효과적으로 리스크를 제어할 수 있습니다.
  3. 적응성: ATR 지표는 동적으로 조정할 수 있으며, 전략이 다른 시장 환경에 적응할 수 있습니다.
  4. 단순성: 전략의 논리는 명확하고 이해하기 쉽고 실행하기 쉽습니다.

전략 위험

  1. 트렌드 역전: 시장 트렌드가 갑자기 역전되면 전략은 상당한 손실을 입을 수 있습니다.
  2. 불안한 시장: 불안한 시장에서 전략은 종종 포지션을 열고 닫을 수 있으며 높은 거래 비용을 초래합니다.
  3. 매개 변수 민감성: 전략의 성능은 매개 변수 설정에 민감할 수 있으며, 부적절한 매개 변수는 저성능으로 이어질 수 있습니다.

이러한 위험을 해결하기 위해 다음과 같은 솔루션을 고려할 수 있습니다.

  1. 트렌드가 역전될 때 조기에 포지션을 개설하지 않도록 트렌드 확인 메커니즘을 도입해야 합니다.
  2. 포지션 크기를 줄이거나 불안한 시장에서 거래를 중단하십시오.
  3. 가장 좋은 조합을 찾기 위해 매개 변수를 최적화하세요.

전략 최적화 방향

  1. 더 많은 지표를 도입: ATR 지표 외에도 추세 식별의 정확성을 향상시키기 위해 이동 평균과 같은 다른 추세 확인 지표를 도입하는 것을 고려하십시오.
  2. 동적 매개 변수 조정: 시장 변화에 적응하기 위해 ATR 기간과 파업 가격 기간과 같은 다른 시장 환경에 따라 전략 매개 변수를 동적으로 조정합니다.
  3. 이윤을 취하는 메커니즘을 도입하십시오. 특정 이윤을 달성 한 후 수익을 확보하고 위험을 줄이기 위해 부분적으로 포지션을 폐쇄하는 것을 고려하십시오.
  4. 긴/단기 포지션 관리: 전략의 유연성을 높이기 위해 다른 스톱 로스 및 영업 기준을 사용하는 것과 같이 긴 포지션과 단기 포지션을 별도로 관리하는 것을 고려하십시오.

위의 최적화를 통해 전략의 안정성과 수익성이 더욱 향상될 수 있습니다.

요약

투르틀-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)



관련

더 많은