적응성 있는 이중 돌파구 거래 전략

저자:차오장, 날짜: 2024-02-06 15:31:36
태그:

img

전반적인 설명

적응성 이중 돌파구 거래 전략 (adaptive dual breakthrough trading strategy) 은 주식의 개장 가격과 폐장 가격 사이의 관계에 따라 판단과 거래 작업을 수행하는 양적 전략이다. 이 전략은 설정된 매개 변수 조건이 충족되면 긴 또는 짧은 포지션을 취한다. 동시에, 개장 및 폐장 가격의 최근의 변화에 따라 현재 포지션에서 언제 벗어날지 결정할 수있는 적응성 출구 메커니즘을 가지고 있다.

전략 원칙

이 전략의 핵심 논리는 개시 가격과 폐쇄 가격 사이의 크기 관계에 기반하여 방향을 판단하는 것입니다. 구체적으로, 종료 가격이 설정된 임계값을 초과하는 개시 가격보다 높으면 긴 신호가 생성됩니다. 개시 가격이 임계값을 초과하는 종료 가격보다 높으면 짧은 신호가 생성됩니다. 포지션이 입력되면 전략은 가격 변화를 계속 모니터링합니다. 개시 및 종료 가격이 설정된 임계값을 초과하면 출구 작업이 실행됩니다. 이 전략은 개시 위치 논리와 출구 논리를 모두 포함하고 비교적 완전한 거래 프레임워크를 형성한다는 것을 볼 수 있습니다.

코드 구현의 관점에서, 전략은 먼저 긴 위치와 짧은 위치 조건을 정의하고, 오픈 포지션 논리가 충족되면 주문을합니다. 이후 종료 조건이 활성화되었는지 지속적으로 감지하고, 종료 조건이 충족되면 종료 작업을 실행합니다. 따라서이 전략은 실시간 시장 변화를 모니터링하고 적응적이고 유연합니다.

전략 의 장점

적응형 이중 돌파구 거래 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 명확하고 간단한 동작, 이해하기 쉽고 실행하기 쉽습니다
  2. 시장 변화에 적응하기 위해 포지션을 동적으로 조정합니다.
  3. 리스크를 제어하기 위한 스톱 로스 기능이 있습니다.
  4. 매개 변수를 조정하여 다른 품종에 적용 할 수 있습니다.
  5. 큰 확장 공간으로 알고리즘을 최적화하기 쉽습니다.

전략 의 위험

이 전략은 몇 가지 장점을 가지고 있지만 다음과 같은 위험도 가지고 있습니다.

  1. 시장의 격렬한 변동 중에 손해를 막는 전략이 실패할 수 있습니다.
  2. 장기적 경향을 파악할 수 없는 경우, 자주 위치 변경
  3. 부적절한 매개 변수 설정은 과잉 거래로 이어질 수 있습니다.
  4. 시스템 장애로 인해 손실을 막을 수 없습니다.

이러한 위험은 실시간 거래 도중 신속하게 매개 변수를 조정하거나 알고리즘을 최적화하기 위해 면밀히 모니터링되어야 합니다.

최적화 방향

이 전략을 최적화하는 주요 측면은 다음과 같습니다.

  1. 스톱 손실 최적화를 강화하여 민감성을 보장하면서 빈번한 위치 전환을 제어합니다.
  2. 트렌드 판단 지표를 추가하여 트렌드 아닌 환경에서 거래 빈도를 줄이십시오.
  3. 전략 수익을 높이기 위해 단기 내일 거래 전략을 결합합니다.
  4. 역동적 임계 조정을 위한 적응적 매개 변수 메커니즘을 최적화한다.
  5. 추세 방향을 판단하기 위해 기계 학습 모델을 추가합니다.

알고리즘과 모델 최적화를 통해 전략의 전반적인 안정성과 수익성을 향상시킬 수 있습니다.

요약

적응성 이중 돌파구 거래 전략은 트렌드 판단과 적응성 출구 메커니즘을 결합하여 위험을 효과적으로 제어 할 수 있습니다. 간단한 원칙과 유연한 매개 변수는 이해하기 쉽고 확장 할 수 있으므로 심도있게 연구 할 수있는 권장되고 가치있는 수치 전략입니다.


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

//@version=3
strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true, calc_on_order_fills=true) // Repaint?
// strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true) // Correct

val1 = input(123)
val2 = input(234)

from_year=input(2018, minval=2000, maxval=2020)
from_month=input(6, minval=1, maxval=12)
from_day=input(1, minval=1, maxval=31)

to_year=input(2019, minval=2007, maxval=2020)
to_month=input(12, minval=1, maxval=12)
to_day=input(31, minval=1, maxval=31)

long = (close-open) > val1
short = (open-close) > val1

exitLong = (open-close) > val2
exitShort = (close-open) > val2

term = true

strategy.entry("LONG", strategy.long, when=long and term)
strategy.close("LONG",  when = exitLong and not short and term)

strategy.entry("SHORT", strategy.short, when=short and term)
strategy.close("SHORT", when = exitShort and not long and term)


더 많은