양방향 돌파를 기반으로 한 적응형 거래 전략


생성 날짜: 2024-02-06 15:31:36 마지막으로 수정됨: 2024-02-06 15:31:36
복사: 0 클릭수: 683
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

양방향 돌파를 기반으로 한 적응형 거래 전략

개요

양방향 돌파 자조 거래 전략은 주식의 개시 가격과 폐시 가격 사이의 관계에 따라 판단과 거래 작업을 수행하는 양적 전략이다. 이 전략은 설정된 매개 변수 조건에 따라 더하거나 더 적은 작업을 수행한다. 동시에, 그것은 자조 탈퇴 메커니즘을 가지고 있으며, 최근 개시 가격의 변화에 따라 현재 입장에서 탈퇴 할 때 결정할 수 있습니다.

전략 원칙

이 전략의 핵심 논리는 오픈 가격과 클로즈 가격의 크기의 관계에 따라 방향을 판단하는 것이다. 구체적으로, 클로즈 가격이 오픈 가격보다 큰 설정된 마이너스 val1이 있다면, 다중 신호를 발생시킨다; 오픈 가격이 클로즈 가격보다 큰 설정된 마이너스 val1이 있다면, 마이너스 신호를 발생시킨다. 일단 포지션에 진입한 후, 전략은 가격 변화를 계속 모니터링한다.

코드 구현에서 볼 때, 전략은 먼저 장점과 단점의 조건 표현을 정의하고, 다음에는 포지션 구축 논리에 부합하는 경우 단일 입장을 수행한다. 그 다음에는 탈퇴 조건이 유발되었는지 지속적으로 검출하고, 탈퇴 조건이 충족되면 평형 포지션 작업을 수행한다. 따라서, 이 전략은 시장 변화를 실시간으로 모니터링하고, 적응성과 유연성을 갖는다.

전략적 이점

양방향의 돌파구 적응 거래 전략에는 다음과 같은 장점이 있습니다.

  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)