거북이 탈출 전략


생성 날짜: 2023-12-04 16:25:53 마지막으로 수정됨: 2023-12-04 16:25:53
복사: 0 클릭수: 641
avatar of ChaoZhang ChaoZhang
1
집중하다
1619
수행원

거북이 탈출 전략

개요

이 전략은 브레이크 이론에 기반한 단기 거래 전략이다. 이 전략은 평균선 지표와 최고 가격/최저 가격 지표를 사용하여 브레이크 신호를 식별하여 단기 추세에서 이익을 잡는다.

전략 원칙

이 전략은 20일 최고 가격을 상승 추세를 식별하기 위해 사용하며, 종결 가격이 20일 최고 가격을 돌파했을 때, 더 많은 것을 한다. 10일 최저 가격을 하향 추세를 식별하기 위해 사용하며, 종결 가격이 10일 최저 가격을 넘어갔을 때, 공백을 한다. 동시에, 그것은 더 짧은 10일 최고 가격을 공백의 손실 퇴출 신호로 사용한다.

특히, 이 전략에는 다음과 같은 규칙이 포함됩니다.

  1. 20일 최고가치보다 더 높은 가격에 종식할 때 더 많은 입장을 취합니다.
  2. 10일 최저 가격보다 낮은 가격으로 상장하면 상장합니다.
  3. 10일 최고 가격보다 클로즈 가격이 높을 때, 상점 포지션을 공백;
  4. 10일 최저 가격보다 낮은 가격으로 마감할 때, 상위 포지션을 평행한다.

이 전략은 종전 가격과 다른 주기 상위 가격과 최저 가격과의 관계를 비교하여 짧은 기간 동안의 트렌드 돌파구를 포착하여 단선 작업을 수행합니다.

우위 분석

이 전략에는 다음과 같은 장점이 있습니다.

  1. 전략의 논리는 간단하고 명확하며, 이해하기 쉽고 실행이 가능합니다.
  2. 단기적 추세를 파악할 수 있는 돌파구 이론을 활용할 수 있습니다.
  3. 동시에, 다단계 거래와 공백 거래의 기회를 판단하여 양방향 거래를 할 수 있습니다.
  4. 다른 변수 범위를 설정하여 포지션 시간을 유연하게 조정할 수 있습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 브레이크 트레이드는 쉽게 잡힐 수 있고, 위험을 통제하기 위해 스톱로스를 설정해야 합니다.
  2. 다중 헤드 오브 헤드 전환이 빈번해 거래비용과 슬라이드 포인트 손실을 증가시킵니다.
  3. 잘못된 매개 변수 설정으로 인해 거래가 너무 자주 또는 지연될 수 있다.

리스크를 제어하기 위해, 단독 손실을 제한하기 위해 스톱 손실을 설정할 수 있으며, 거래 주파수를 제어하기 위해 파라미터 범위를 적절히 조정할 수 있다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 다른 지표에 필터를 추가하여 실수로 돌파를 방지합니다.

  2. 동적 탈퇴 메커니즘을 설정하고, 수익을 이용하여 상쇄 손실을 추적한다.

  3. 트렌드를 판단하는 규칙에 가입하고 역동적인 거래를 피한다.

  4. 변수 범위를 최적화하여 다른 주기 및 시장 환경에 적응한다.

요약하다

이 전략은 전체적으로 간단한 실용적인 단기 브레이크 전략이다. 그것은 짧은 기간 동안의 트렌드 기회를 잡는 데 도움이 된다. 그러나, 수축과 높은 거래 빈도의 위험도 존재한다. 필터, 스톱 로스, 변수 최적화 등의 수단을 추가함으로써 위험을 통제하면서 전략의 효율성을 높일 수 있다. 이 전략은 짧은 라인 기회에 초점을 맞추고, 높은 주당 전환을 추구하는 거래자에게 적합하다.

전략 소스 코드
/*backtest
start: 2022-11-27 00:00:00
end: 2023-12-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("TurtleBC Strategy v2 V.Troussel", shorttitle="TurtleBC-V.Troussel", overlay=true, pyramiding=0)

// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2016, title = "From Year", minval = 2016)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 9999)

enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
exit_fast_short=input(10,minval=1)


fastL = highest(close, enter_fast)
fastS = highest(close ,exit_fast_short)
fastLC = lowest(close, exit_fast)
//Sortie pour le short
exitS=close>fastS[1]


enterL1 = close > fastL[1]
exitL1 = close <= fastLC[1]




strategy.entry("Long", strategy.long, when = enterL1 and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))
strategy.close("Long", when = exitL1 and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))

//le trigger de sortie est 
strategy.entry("Short", strategy.short, when = exitL1 and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))
strategy.close("Short", when = exitS and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))