리소스 로딩... 로딩...

스톱 로스로 브레이크오웃 역전 전략

저자:차오장, 날짜: 2024-02-05 14:56:16
태그:

img

전반적인 설명

브레이크아웃 (breakout) 이론을 기반으로 하는 긴/단한 양적 거래 전략이다. 지난 100 거래일 동안 가장 높은 클로즈 가격을 계산하고 최신 클로즈 가격이 그 수준을 초과하는 경우를 기준으로 브레이크아웃이 발생하는지 여부를 결정한다. 브레이크아웃이 검출되면 긴 신호가 발생한다. 긴 입시에 따라 포지션은 25 바 후에 스톱 로스로 종료된다.

전략 논리

이 전략의 핵심 논리는 기술적 분석에서 브레이크아웃 이론을 활용합니다. 브레이크아웃 이론은 가격이 한 기간 동안 최근 최고 또는 최저 수준을 돌파하면 반전을 신호하고 시장이 새로운 상승 추세 또는 하락 추세를 시작할 수 있다고 믿습니다.

구체적으로 이 전략은 파인 스크립트 내장 기능을 사용합니다ta.highest()지난 100 바에서 가장 높은 클로즈를 계산합니다. 그러면 현재 바의 클로즈 가격이 그 수준보다 높는지 비교합니다. 클로즈 가격이 100 일 최고 클로즈 가격을 돌파하고 초과하면 긴 엔트리 신호가 활성화됩니다.

긴 포지션에 들어가면, 전략은 포지션을 닫기 위해 스톱 로스 조건을 설정합니다.ta.barssince()롱에 들어가기 전까지의 바를 계산하면 25바를 지나면 포지션을 닫을 수 있습니다.

입력 논리는 다음과 같이 요약될 수 있습니다.

  1. 최근 100 거래일 중 가장 높은 클로즈를 계산합니다.
  2. 현재 바의 종료 가격이 가장 높은 종료 가격을 초과하는 경우 비교
  3. 초과되면 장거리 입력 신호를 켜
  4. 25바를 마친 후 스톱 로스로 긴 포지션을 닫습니다.

이점 분석

이 전략의 가장 큰 장점은 트렌드를 따르는 거래의 상대적으로 높은 성공률로 가격 반전 지점을 포착하는 것입니다. 또한, 중지 손실 논리는 단일 거래 손실 금액을 효과적으로 제어 할 수 있습니다.

구체적인 장점은 다음과 같습니다.

1. 추세 를 따르고 성공률 이 높다

브레이크아웃 이론은 가격이 핵심 수준을 초과 한 후에 새로운 트렌드를 시작할 수 있다고 믿습니다. 이 전략은 이러한 논리에 기반하여 설계되었으며, 따라서 가격 반전 지점을 파악하고 트렌드 추후에서 이익을 얻을 수있는 확률이 상대적으로 높습니다.

2. 스톱 로스로 통제 가능한 위험

이 전략은 25 바를 거쳐 최대 단일 거래 손실까지 강제 스톱 로스 출구를 설정하여 큰 손실을 피합니다.

3. 중장기 보유에 적합

기본 보유 기간은 25 바, 약 1 개월입니다. 이 빈도는 중장기 전략에 적합합니다.

4. 몇 가지 매개 변수, 최적화하기 쉽다

주로 2가지 조정 가능한 매개 변수가 있습니다. 몇 개의 매개 변수를 사용하면 실제 거래에 최적의 매개 변수를 테스트하고 찾기가 쉽습니다.

5. 서로 다른 제품으로 옮길 수 있습니다.

이 전략은 특정 제품의 특수한 지표에 대한 답변을 하지 않습니다. 그것의 논리는 주식, 외환, 재화, 암호화폐 등에 적용됩니다. 그래서 제품 간 전환을 유연합니다.

위험 분석

이 전략은 몇 가지 우위를 가지고 있지만, 실제 거래에 배치 할 때 몇 가지 위험이 있습니다. 주로:

1. 손실 포지션 보유 위험

이 전략은 수익성 있는 포지션을 따르기 위해 트레일링 스톱 로스를 가지고 있지 않습니다. 가격 트렌드가 예상대로 진행되지 않거나 브레이크 아웃이 가짜 브레이크 아웃으로 판명되면 미리 설정된 스톱 로스 포인트에서 강제 출출출이 큰 손실로 이어질 수 있습니다. 이것은 가장 큰 위험입니다.

2. 매개 변수 조정이 필요 할 수 있습니다.

기본 매개 변수는 최적화되지 않을 수 있습니다. 특정 제품 및 시장 체제에 가장 적합한 것을 찾기 위해 라이브 거래 중에 최적화해야합니다. 이것은 추가 작업을 추가합니다.

3. 시장과의 성과 상관관계

이 전략은 지속적인 가격 추세에 너무 의존합니다. 범위 제한 체제에서는 잘 작동하지 않습니다. 윙사 시장에 부딪히면 불안정한 이익 / 손실로 이어지는 강제 출입이 자주 발생합니다.

최적화

이 전략이 더 견고하고 실질적인 배치에 수익성있게 만들기 위해 다음과 같은 측면에서 몇 가지 개선이 수행 될 수 있습니다.

1. 후속 중지 손실 메커니즘을 추가

유동 이윤을 기반으로 동적으로 스톱 로스 포인트를 업데이트하여 수익성있는 포지션을 추적하기 위해 후속 스톱 로스 로직을 추가하십시오. 이것은 단일 거래의 최대 손실을 제한 할 수 있습니다.

2. 시장에 기반한 적응 매개 변수

브레이크아웃 기간과 보유 기간과 같은 매개 변수를 시장 강도에 따라 조정하고 ATR 같은 매개 변수를 사용하여 정량화합니다. 이것은 매개 변수를 동적으로 조정할 수 있습니다.

**3. 트렌드 필터를 조합하십시오 **

전략을 적용 할 때 추세 분석을 통해 명확하지 않은 추세를 더 잘 필터링합니다. 재량적으로 또는 양적으로. 명확한 추세를 볼 때만 거래를하십시오.

4. 다른 제품 및 간격에서 테스트

최적화된 매개 변수와 규칙을 다른 제품 (예를 들어 인덱스, 상품, 외환, 암호화폐) 과 간격 (예를 들어 매일, 60m 바) 에 테스트하면이 전략이 더 견고하고 널리 적용 될 것입니다.

결론

이 스톱 로스로의 브레이크아웃 역전 전략은 트렌드 식별 및 포지션 관리에 대한 명확한 규칙으로 구현하기가 쉽습니다. 우리는 그것의 강도와 위험을 분석하고 수익성과 적용성을 향상시키기 위한 제안을 제공합니다. 추가 최적화로, 그것은 탄탄한 양적 거래 전략이 될 수 있습니다.


/*backtest
start: 2023-01-29 00:00:00
end: 2024-02-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © All_Verklempt

//@version=5
strategy("Breakout Strategy", overlay=true)

// Input variable for breakout period
breakoutPeriod = input.int(100, title="Breakout Period", minval=1)

// Calculate the highest close of the past breakout period
highestClose = ta.highest(close, breakoutPeriod)

// Input variables for start and end dates
startYear = input.int(2022, title="Start Year", minval=1900)
startMonth = input.int(1, title="Start Month", minval=1, maxval=12)
startDay = input.int(1, title="Start Day", minval=1, maxval=31)

endYear = input.int(2023, title="End Year", minval=1900)
endMonth = input.int(12, title="End Month", minval=1, maxval=12)
endDay = input.int(31, title="End Day", minval=1, maxval=31)

// Convert start and end dates to timestamp
startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)

// Entry condition: Breakout and higher close within the specified date range
enterLong = close > highestClose[1] and close > close[1]

// Exit condition: Close the long position after twenty-five bars
exitLong = ta.barssince(enterLong) >= 25

// Strategy logic
if (enterLong)
    strategy.entry("Long", strategy.long)

if (exitLong)
    strategy.close("Long")


더 많은