브레이크아웃 손절매 반전 전략


생성 날짜: 2024-02-05 14:56:16 마지막으로 수정됨: 2024-02-05 14:56:16
복사: 0 클릭수: 645
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

브레이크아웃 손절매 반전 전략

개요

이 전략은 돌파 이론에 기반한 긴 짧은 선의 양적 거래 전략이다. 그것은 최근 100 거래일간의 최고 폐쇄 가격을 계산하여 돌파가 발생했는지 판단한다. 가장 최근의 하루의 폐쇄 가격이 이전 100 일간의 최고 폐쇄 가격을 초과하면 구매 신호를 발산한다.

전략 원칙

이 전략의 핵심 논리는 기술 분석의 중추적 돌파구 이론에 기초한다. 돌파구 이론은 가격이 이전 기간 동안의 최고점이나 최저점을 넘어서는 것이 시장의 전환을 의미하며 새로운 상승 또는 하락 추세로 들어갈 수 있다고 주장한다.

특히, 이 전략은 Pine Script의 내장 함수를 호출함으로써 수행됩니다.ta.highest(), 지난 100 바의 최고 폐쇄 가격을 계산 . 그리고 현재 K 선의 폐쇄 가격이 그 최고 폐쇄 가격보다 높지 않은지 비교 . 만약 폐쇄 가격이 100 일 최고 폐쇄 가격을 다면 상향으로 파격이 발생하면 구매 신호를 발생 .

일단 상위 포지션에 들어가면, 전략은 상위 포지션의 상쇄 조건을 설정한다. 호출을 통해ta.barssince()함수는 통계로 들어가서 더 많은 바의 수를 하고, 바의 수가 25을 초과할 때, 강제적으로 손해배상 청산을 하게 된다.

이 전략의 상장 논리는 다음과 같다.

  1. 최근 100일간의 최고 마감값을 계산합니다.
  2. 현재 K 라인 종료 가격과 최고 종료 가격의 비교
  3. 만약 이보다 높으면, 구매 신호를 생성하고, 다방향으로 들어갑니다.
  4. 포지션이 25 거래일 안에 들어간 후, 강제적인 상쇄

우위 분석

이 전략의 가장 큰 장점은 가격 트렌드의 전환점을 포착하는 데 있습니다. 또한, 단편 손실을 효과적으로 제어 할 수있는 스톱 손실 논리 설정이 있습니다.

이 장점은 다음과 같습니다:

1. 순차적 거래, 높은 성공률

돌파 이론은 가격이 핵심 가격 영역을 넘어서면 새로운 트렌드에 진입하는 것을 나타냅니다. 이 전략은 바로 이 이론을 기반으로 설계되었으며, 따라서 가격 반전의 시점을 포착하여 부진 거래를 실현할 가능성이 높습니다.

2. 위험도 조절할 수 있고, 손해 방지 장치가 있습니다.

이 전략은 25 거래일 후에 손실을 막고 탈퇴하는 메커니즘을 설정하여 단일 손실을 일정 범위 내에서 제어하여 큰 손실을 피하고 전반적인 위험을 통제 할 수 있습니다.

3. 중·장선 지주에 적합하다

전략의 지분 기간은 기본적으로 25 거래일, 약 1개월이다. 이것은 중장선 전략에 있어 비교적 적합한 지분 기간 범위이며, 너무 짧은 기간에 휘파람을 일으키지 않으며, 너무 긴 기간에 지분 기간이 위험을 증가시키지 않는다.

4. 적은 수의 변수, 쉽게 최적화할 수 있다

이 전략의 주요 파라미터는 돌파 창 기간과 지주 기간 두 개밖에 없으며, 파라미터는 테스트 및 최적화하기 쉽지 않아 최적의 파라미터를 찾으며, 실 디스크 운영 비용이 낮다.

5. 여러 품종 사이를 전환할 수 있다

전략은 특정 품종의 고유한 지표를 사용하지 않으며 거래 논리는 주식 지수, 외환, 상품 및 암호화폐와 같은 여러 품종에 적용되며 시장 상황에 따라 다른 품종 사이를 전환하여 전략의 적응성을 높일 수 있습니다.

위험 분석

이 전략의 장점에도 불구하고, 실무에서의 위험은 다음과 같습니다.

1. 함정에 빠질 위험

전략은 이동 스톱 또는 추적 스톱 메커니즘을 설정하지 않습니다. 진입 트렌드가 형성되지 않거나, 또는 파장이 실제로 가짜 파장이 될 경우, 이 때 스톱 포인트에 고정 될 수 있습니다. 이것은 전략의 가장 큰 위험점입니다.

2. 최적화가 필요할 수 있는 변수

기본 파라미터는 반드시 최적의 파라미터가 아니기 때문에, 실판 과정에서 특정 품종과 시장 환경에 적합한 파라미터 구성을 최적화 방법을 통해 찾는 것이 필요할 수 있으며, 이는 전략 조정 및 추적 작업량을 증가시킵니다.

3. 효과와 시장의 연관성

이 전략은 과도하게 추세에 의존하고, 시장을 정리하는 데 좋지 않으며, 모형이 다른 시장 환경에 대한 적응력이 낮다. 불안정한 시장에 부딪히면 자주 피지되거나 중지 손실을 유발하고, 수익이 불안정할 수 있다.

최적화 방향

이 전략이 실판에서 더 안정적인 성능을 얻기 위해 다음과 같은 부분에서 최적화 및 개선이 가능합니다:

1. 이동식 손해 방지 장치를 늘려라

트래킹 스톱 로직을 추가하여 포지션 종이에 수익의 크기에 따라 이동 스톱 포인트를 설정하여 각 거래의 최대 손실을 일정 범위 내에서 제한합니다. 이것은 개인 위험을 크게 줄일 수 있습니다.

2. 시장 조건에 따라 변수를 조정합니다.

이 전략의 두 가지 주요 변수 (파괴 창 및 지주 시간) 에 대해 범주 또는 값 목록을 설정할 수 있으며, 시장의 상대적 강도에 따라 변수의 값을 동적으로 설정하여 변수를 더 최적화 할 수 있습니다.

3. 트렌드 판단 규칙과 결합

추세가 명확하지 않거나 가짜 돌파가 발생할 경우 위험을 최소화하십시오. 추세 분석 결과를 미리 결합 할 수 있습니다 (예: 시각적 판단이나 양적 분석). 분석이 명확한 추세가있는 경우 거래에 참여하십시오.

4. 다양한 품종과 시장 환경의 테스트

여러 품종 (예: 주식 지수, 상품, 외환 및 암호화폐 등) 및 각 거래 구역 (예: 일선, 60 분 등) 에서 전략 매개 변수 및 규칙을 테스트하고 최적화하여 보다 광범위한 시장 환경에 적응하여 안정성을 증가시킵니다.

요약하다

이 획기적인 스톱소드 리버스 전략은 사용이 간단하고, 트렌드를 판단하고 파악하는 능력이 강하며, 다수 공백 포지션을 효율적으로配置하여 지속적인 수익을 창출할 수 있습니다. 우리는 이것을 코드 분석하여 전략의 장점과 위험점을 알아내고, 전략의 안정성과 실전성을 더욱 향상시킬 수 있는 제안을 제공합니다. 최적화 및 개선 후, 이 전략은 양적 투자에서 훌륭한 기본 모델이 될 수 있다고 믿습니다.

전략 소스 코드
/*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")