돈치안 채널 탈출 전략

저자:차오장, 날짜: 2023-09-19 21:47:41
태그:

전반적인 설명

이 전략은 상위 및 하위 대역의 트레이드 브레이크오프를 위해 돈치안 채널 지표를 사용하며 중장기 트렌드 브레이크오프 전략에 속하는 주식/미래상권/암호/forex 등에 대한 트렌드 다음 거래를 가능하게 합니다.

전략 논리

  1. 주어진 기간 (예: 20일) 동안 가장 높은 최고와 가장 낮은 최저를 계산하여 상위와 하위 대역을 얻습니다.

  2. 중간선은 상단과 하단의 평균입니다. 상단 신호를 깨는 것은 상승 추세, 하단 신호를 깨는 것은 하향 추세입니다.

  3. 가격이 상위 지대 이상으로 닫히면 상승세가 시작됐다는 것을 판단하고, 진입하기 위해 긴 경로로 이동합니다.

  4. 가격이 중간선 아래로 떨어지면 이윤을 취해서 빠져나갑니다.

  5. 실제 거래 신호를 생성하기 위해 백테스트 시간 프레임을 참조할 수 있습니다.

  6. 선택적으로, 하부 대역을 깨는 것도 단축 신호로 작용할 수 있습니다.

이 전략은 채널 브레이크로 트렌드를 시작하여 중간 라인을 수익 출구로 사용하고 중장기 트렌드를 포착합니다. 채널 매개 변수를 시장에 맞게 조정할 수 있습니다.

이점 분석

  1. 돈치안 채널은 계산하고 구현하는 것이 간단합니다.

  2. 가격 경류 채널은 트렌드 변화 신호입니다.

  3. 이윤 취득 수준으로 중간선은 합리적으로 설정됩니다.

  4. 명확한 신호 규칙, 실행하기 쉬운.

  5. 다양한 제품과 시간 프레임에 대한 채널 매개 변수를 유연하게 조정할 수 있습니다.

  6. 장기 또는 단기 거래 성과를 평가할 수 있습니다.

  7. 큰 확장 공간, 다른 기술적 지표를 도입 할 수 있습니다.

위험 분석

  1. 채널의 탈출은 늦어질 수 있어 초기 기회를 놓칠 위험이 있습니다.

  2. 파기 전에 분리를 고려하지 않아서 잘못된 신호를 생성할 수 있습니다.

  3. 시장 변동에 민감한 중간에 고정된 스톱 손실.

  4. 부적절한 백테스트 기간은 지나치게 적합할 위험이 있습니다.

  5. 손실을 멈추지 않으면 손실이 커질 수 있습니다.

최적화 방향

  1. 채널 기간 매개 변수를 테스트하고 최적화합니다.

  2. 다른 MA 유형을 스톱 로스 라인으로 평가합니다.

  3. 볼륨 표시기와 같은 필터를 추가합니다.

  4. 이동 또는 후속 스톱 손실 메커니즘을 추가합니다.

  5. 가격변화를 예측하기 위해 기계 학습을 도입해야 합니다.

  6. 돈 관리, 수익 비율을 최적화 등

  7. 장기/단기 운영 또는 여러 제품을 결합하는 것을 고려하십시오.

요약

이 전략은 트렌드 방향, 거래 브레이크아웃, 전형적인 중장기 트렌드 다음 접근 방식을 결정하기 위해 돈치안 채널을 사용합니다. 채널 매개 변수를 최적화하고 다른 기술적 인 지표를 추가하면 더 견고한 브레이크아웃 시스템을 형성 할 수 있습니다. 명확하고 간결한 논리는 확장을 허용하여 실용적인 유용성이 큰 기초 양자 전략 모듈이됩니다.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-15 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=10000)


testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12, "Backtest Start Month")
testEndDay = input(1, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = 20

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=yellow, style=line, linewidth=1, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close >= dcUpper)
strategy.close("simpleBuy",when=close < dcAverage)
    
//strategy.entry("simpleSell", strategy.short,when=close <= dcLower)
//strategy.close("simpleSell",when=close > dcAverage)
    



더 많은