긴 브레이크 라인 거래 전략

저자:차오장, 날짜: 2023-09-19 17:19:55
태그:

전반적인 설명

이것은 가격이 고정된 룩백 범위에서 벗어날 때 신호를 생성하는 것을 기반으로 하는 거래 전략입니다. 가격이 룩백 기간의 가장 높은 수준을 넘을 때 긴 포지션을 취하고, 가격이 최고 수준 이하로 떨어지면 포지션을 닫습니다. 거래 방향은 쉽게 전환 할 수 있습니다.

전략 논리

  1. 뷰백 기간 매개 변수를 설정, 예를 들어 4 일.

  2. 지난 4일 동안 가장 높은 수치를 계산합니다.

  3. 오늘 최고가 4일 최고보다 높을 때 롱으로 이동하세요.

  4. 가격이 4일 최고치를 넘지 못하면 포지션을 닫습니다.

  5. 거래 방향은 역변수를 통해 전환할 수 있습니다.

이점 분석

이 전략의 장점:

  1. 탈출은 간단하고 신호는 명확합니다.

  2. 고정된 분출 범위가 복잡한 최적화와 과잉 조정을 피합니다.

  3. 롱/코트 사이를 쉽게 전환할 수 있고 다양한 시장 조건에 적응할 수 있습니다.

  4. 뷰백 범위는 지속적인 트렌드 추적을 위해 노이즈를 필터합니다.

  5. 복잡한 지표가 필요없고 효율적인 전략입니다.

위험 분석

주요 위험:

  1. 고정된 브레이크오웃 범위는 시장 변화에 적응할 수 없습니다.

  2. 스톱 로즈가 없다면 전략은 위험 용량을 초과하는 과도한 손실에 노출됩니다.

  3. 시장 체제 변화에 취약한 고정 매개 변수

  4. 과도한 소음 거래는 거래 비용을 증가시킬 수 있습니다.

  5. 매개 변수 최적화 부족으로 최적의 결과를 얻을 수 없습니다.

최적화 방향

개선 사항:

  1. 가장 좋은 조합을 찾기 위해 주요 매개 변수를 최적화합니다.

  2. ATR 등을 기반으로 한 동적 범위를 도입합니다.

  3. 트레일링 스톱 로스 (trailing stop loss) 또는 고정된 비율의 스톱 로스를 추가하는 것을 고려하십시오.

  4. 트렌드 필터를 적용하여 다양한 시장에서 과잉 거래를 피합니다.

  5. 더 많은 거래 도구에 대한 매개 변수 안정성을 테스트합니다.

  6. 자동 매개 변수 최적화를 위한 기계 학습을 추가합니다.

요약

전체적으로 이것은 매우 간단한 가격 브레이크업 거래 전략입니다. 최적화된 매개 변수 범위, 스톱 손실, 트렌드 필터 및 기타의 향상으로 구현하기 쉽고 실용적인 양적 전략이 될 수 있습니다.


/*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)

더 많은