골든 비율 브레이크오웃 장기 전략

저자:차오장, 날짜: 2023-11-28 13:40:35
태그:

img

전반적인 설명

골든 비율 브레이크아웃 장기 전략은 지난 21 일 동안 가장 높고 가장 낮은 가격의 골든 비율 수준을 기반으로하는 스윙 거래 전략입니다. 백테스팅 메커니즘, 장기 단위 설정 및 장기 보유 기간이 있습니다.

전략 논리

이 전략은 먼저 21일 최고 가격 (high21) 과 21일 최저 가격 (low21) 을 계산하고, 그 다음 그 사이의 차이를 디프로 계산합니다. 거래 신호는 현재 낮은 가격이 디프21 + 0.382 * 디프보다 높을 때 시작되며 이전 바의 폐쇄는 이전 바보다 높습니다. 스톱 손실은 디프21 + 0.236 * 디프로 설정됩니다. 다른 말로, 가격이 최근 21일 가격 범위의 38.2%의 황금 비율 라인을 상향 탄력성으로 깨면 긴 포지션이 시작됩니다. 스톱 손실 라인은 23.6%의 황금 비율 라인입니다.

황금 비율 수준은 일반적으로 일반적인 시장 지원 및 저항 영역에 해당하기 때문에 여기에 사용됩니다. 0.382과 0.236은 리트레이싱 및 반등 수준으로 관찰되며, 황금 비율은 자연에서 가장 흥미로운 수치 중 하나입니다.

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 성숙한 기술 분석 방법론 - 황금 비율 이론에 의해 인도됩니다.

  2. 장기적인 설정만 하면 시스템 위험을 줄일 수 있습니다.

  3. 트렌드 추적 메커니즘은 정확한 입시 시기를 식별합니다.

  4. 명확한 스톱 손실은 위험을 통제합니다.

  5. 사용자 정의 가능한 백테스트 매개 변수는 다른 시장 환경에 적합합니다.

위험 분석

또한 몇 가지 위험이 있습니다.

  1. 역사적인 데이터에 의존하는 것은 시장 체제 변화에 민감하지 않게 만듭니다.

  2. 꽉 차 있는 스톱 손실은 하루 간 간격으로 멈출 수 있습니다.

  3. 잘못된 백테스트 기간에 치열한 가격 변동이 발생하면 잘못된 신호가 발생할 수 있습니다.

  4. 미끄러짐은 수익성에 영향을 미칩니다.

이러한 위험은 백테스트 기간을 조정하고, 스톱 손실 배치 최적화, 미끄러짐 비용을 고려하여 감소 할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 측면에서 업그레이드 될 수 있습니다.

  1. 기계 학습 알고리즘으로 파라미터를 자동으로 최적화하여 현재 시장에 더 잘 맞게 합니다.

  2. 포지션 증폭을 위해 지수 선물과 같은 레버리지 제품을 포함합니다.

  3. 가격 격차와 같은 극단적인 사건의 처리 개선.

  4. 스톱 로스 규칙을 최적화합니다. 예를 들어 변동성에 따라 동적 스톱을 설정합니다.

결론

결론적으로, 이것은 골든 비율 이론에 기초한 명확한 엔트리 및 스톱 로스 로직을 제공하는 긴 전략입니다. 매개 변수 조정, 모델 최적화, 포트폴리오 조합 및 기타 향상 기술을 통해 강력한 양적 거래 전략으로 전환 할 수 있습니다.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omkarkondhekar

//@version=4
strategy("GRBLong", overlay=true)

highInput = input(title = "High Days", type = input.integer, defval = 21, minval = 11)
lowInput = input(title = "Low Days", type = input.integer, defval = 21, minval = 5)

// Configure backtest start date with inputs
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2019, minval=1800, maxval=2100)

// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))

high21 = highest(high, highInput)
low21 = lowest(low, lowInput)

diff = high21 - low21

longEntrySignal = low > low21 + (diff * 0.382) and close[1] > open[1] 

strategy.entry("Long", strategy.long, limit = low, when = longEntrySignal and afterStartDate)
strategy.exit("Long Exit", "Long", stop = low21 + (diff * 0.236))

plot(low21 + (diff * 0.382), color= color.green)
plot(low21 + (diff * 0.236), color = color.red)


더 많은