이것은 가격이 고정된 룩백 범위에서 벗어날 때 신호를 생성하는 것을 기반으로 하는 거래 전략입니다. 가격이 룩백 기간의 가장 높은 수준을 넘을 때 긴 포지션을 취하고, 가격이 최고 수준 이하로 떨어지면 포지션을 닫습니다. 거래 방향은 쉽게 전환 할 수 있습니다.
뷰백 기간 매개 변수를 설정, 예를 들어 4 일.
지난 4일 동안 가장 높은 수치를 계산합니다.
오늘 최고가 4일 최고보다 높을 때 롱으로 이동하세요.
가격이 4일 최고치를 넘지 못하면 포지션을 닫습니다.
거래 방향은 역변수를 통해 전환할 수 있습니다.
이 전략의 장점:
탈출은 간단하고 신호는 명확합니다.
고정된 분출 범위가 복잡한 최적화와 과잉 조정을 피합니다.
롱/코트 사이를 쉽게 전환할 수 있고 다양한 시장 조건에 적응할 수 있습니다.
뷰백 범위는 지속적인 트렌드 추적을 위해 노이즈를 필터합니다.
복잡한 지표가 필요없고 효율적인 전략입니다.
주요 위험:
고정된 브레이크오웃 범위는 시장 변화에 적응할 수 없습니다.
스톱 로즈가 없다면 전략은 위험 용량을 초과하는 과도한 손실에 노출됩니다.
시장 체제 변화에 취약한 고정 매개 변수
과도한 소음 거래는 거래 비용을 증가시킬 수 있습니다.
매개 변수 최적화 부족으로 최적의 결과를 얻을 수 없습니다.
개선 사항:
가장 좋은 조합을 찾기 위해 주요 매개 변수를 최적화합니다.
ATR 등을 기반으로 한 동적 범위를 도입합니다.
트레일링 스톱 로스 (trailing stop loss) 또는 고정된 비율의 스톱 로스를 추가하는 것을 고려하십시오.
트렌드 필터를 적용하여 다양한 시장에서 과잉 거래를 피합니다.
더 많은 거래 도구에 대한 매개 변수 안정성을 테스트합니다.
자동 매개 변수 최적화를 위한 기계 학습을 추가합니다.
전체적으로 이것은 매우 간단한 가격 브레이크업 거래 전략입니다. 최적화된 매개 변수 범위, 스톱 손실, 트렌드 필터 및 기타의 향상으로 구현하기 쉽고 실용적인 양적 전략이 될 수 있습니다.
/*backtest start: 2023-08-19 00:00:00 end: 2023-09-18 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 28/11/2016 // Breakout Range Long Strategy // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Breakout Range Long Strategy Backtest", overlay = true) look_bak = input(4, minval=1, title="Look Bak") reverse = input(false, title="Trade reverse") xHighest = highest(high, look_bak) pos = iff(high > xHighest[1], 1, 0) if (pos == 1 and strategy.position_size == 0 and reverse == false) strategy.entry("Long", strategy.long) if (pos == 1 and strategy.position_size == 0 and reverse == true) strategy.entry("Short", strategy.short) if (pos == 0 and strategy.position_size > 0) strategy.close("Long") if (pos == 0 and strategy.position_size < 0) strategy.close("Short") barcolor(strategy.position_size > 0 ? green: strategy.position_size < 0 ? red: blue) plotshape(pos, style=shape.triangleup, location = location.belowbar, color = green)