동적 추세 추종 반전 전략


생성 날짜: 2024-01-16 15:35:18 마지막으로 수정됨: 2024-01-16 15:35:18
복사: 0 클릭수: 327
1
집중하다
1166
수행원

동적 추세 추종 반전 전략

개요

동적 트렌드 추적 역전 전략은 JD Sequential 지표에 기반한 단기 양적 거래 전략이다. 이 전략은 가격의 고점과 낮은 곳을 실시간으로 추적하여 현재의 트렌드 방향과 강도를 판단하여 시장의 역전점을 효율적으로 포착하고 진입과 출퇴근을 시정한다. 전통적인 JD Sequential 전략에 비해 다음과 같은 개선이 이루어졌다.

  1. 가격의 변화를 더 빨리 잡기 위해, 종점보다 고점과 저점을 사용하여 추세를 판단하십시오.
  2. 카운터 최대 숫자는 9이 아닌 7이므로 거래 신호를 더 빨리 생성할 수 있다.
  3. 지원 저항선과 5 카운트 반전으로 손실을 중지하는 옵션이 추가되었습니다.

이 전략은 5분, 15분과 같은 짧은 시간 사이클에 적합하며, 단기 가격 변동과 역전 기회를 효과적으로 포착할 수 있다.

전략 원칙

역동적 추세를 추적하는 역전 전략의 핵심 논리는 JD Sequential 지표에 기반합니다. 이 지표는 현재 주기의 고점과 이전 두 주기의 낮은 점을 비교하여 가격이 연속적으로 더 높은 고점을 만들거나 더 낮은 낮은 점을 만들지 여부를 판단하여 1-7의 순서적 수를 제공합니다. 이 수치는 7까지 누적되면 거래가 발생합니다.

특히, 이 전략은 다음과 같은 변수를 정의합니다.

  • sp_up: 최고점 가격이 이전 두 번째 주기 최고점 가격을 초과할 때 true
  • sp_dn: 최저점 가격이 이전 2주기 최저점 가격보다 낮을 때 true
  • sp_ct: 현재 카운트를 기록합니다. sp_up 또는 sp_dn가 TRUE 인 경우 + 1 카운트, 최대 7
  • sp_com: 계산이 7이 되면 true
  • sp_usr: 7을 계산하고 sp_up 시의 중도값, 상향 저항으로
  • sp_dsr: 7을 세고 sp_dn 시의 중도값, 하향 지원으로

거래 신호의 생성 논리는 다음과 같습니다.

  • 긴 포지션 신호: sp_com은 true이고 sp_dn은 true이며, 계산이 완료되고 하향 추세에 있음을 나타냅니다.
  • 짧은 위치 신호: sp_com은 true이고 sp_up은 true이며, 카운트가 완료되고 상승 추세에 있음을 나타냅니다.

이 논리는 다음과 같습니다.

  • 장거리 상쇄: 5로 회수 (sp_up는 true) 또는 가격 위에 sp_usr
  • 단위 상장 손실: 5 ((sp_dn가 참) 로 카운트 역전 또는 가격 하락 sp_dsr

이 전략은 실시간 비교 높은 낮은 점으로 트렌드 방향과 강도를 결정하고, 카운터 타이밍으로 출전을 할 수 있으며, 단기 반전 기회를 효과적으로 포착할 수 있다. 동시에 위험을 제어하기 위해 스톱 라인을 설정한다.

우위 분석

전통적인 JD Sequential 전략에 비해 동적 트렌드 추적 역전 전략은 다음과 같은 장점이 있습니다.

  1. 더 빠른 신호 발생 높은 낮은 점 비교를 사용하여 마감 가격보다 더 빨리 트렌드를 잡을 수 있으며, 7 카운트는 9 카운트보다 더 빨리 신호를 생성 할 수 있습니다
  2. 손해 제도를 늘리십시오. 5 카운트 리버스 및 지원 저항 손해를 추가하면 위험을 더 잘 제어 할 수 있습니다.
  3. 조정 가능: 스톱로스를 추가하고 부분 카운트를 표시하는 것을 선택할 수 있습니다.
  4. 단선에 적합하다. 높은 주파수 신호는 적절한 정지와 함께, 특히 단선 시간 주기에는 적합하다.

이 전략의 주요 장점은 신속한 반응으로 단기적 급격한 사건으로 인한 큰 변동성을 효과적으로 포착할 수 있다는 것입니다. 또한, 완전히 수동 거래에 비해 알고리즘 신호 생성 및 정지 손실은 거래자의 정서적 영향을 줄여 안정성을 높일 수 있습니다.

위험 분석

동적 트렌드를 추적하는 역전 전략에는 위험도 있습니다.

  1. 높은 주파수 거래는 거래 비용을 증가시킵니다. 높은 주파수 거래는 더 많은 수수료와 슬라이드 포인트 비용을 발생시킵니다.
  2. 잘못된 신호가 발생하기 쉽다. 흔들리는 시장에서, 높은 낮은 점의 비교가 거래 신호를 자주 유발할 수 있으며, 함축되기 쉽다.
  3. 너무 급진적이기 때문에 하드 스톱은 쉽게 초출이 가능하며, 적시에 이동 스톱을 고려할 수 있다.

위와 같은 위험을 줄이기 위해 다음과 같은 측면에서 최적화할 수 있습니다.

  1. 포지션 규모를 조정하여 단일 거래에 걸리는 자본을 줄이십시오.
  2. 위기상황에서 거래를 중단하여 무효화되는 거래를 피하십시오.
  3. 이동 상쇄 또는 간격 상쇄를 사용하여 상쇄될 확률을 줄입니다.

전략 최적화 방향

동적 트렌드 추적 및 역전 전략에 대해 최적화할 수 있는 방안이 많습니다. 주요 방향은 다음과 같습니다.

  1. 다중 시간 주기 포트폴리지는 더 높은 시간 주기에서 주 트렌드 방향을 결정할 수 있으며, 주 트렌드와 상반되는 거래를 피할 수 있다.

  2. 다른 지표와 조합. 변동률 지표, 교류량 지표 등과 조합하여 신호의 질을 향상시킬 수 있다.

  3. 기계 학습 필터링. 기계 학습 알고리즘을 사용하여 거래 신호에 대한 보조 판단을 함으로써 잘못된 거래를 줄인다.

  4. 매개 변수 최적화. 수회주기 수, 거래시간, 포지션 비율 등의 매개 변수를 최적화하여 다른 시장 조건에 맞게 최적화할 수 있다.

  5. 더 많은 위험 관리 장치. 이동 상쇄, 포지션 제어와 같은 더 풍부한 위험 관리 수단이 추가되어 위험을 더욱 제한합니다.

  6. 재검사 축적 데이터 ᆞ 재검사 샘플량과 시간 간격을 확장하고, 테스트 파라미터의 안정성을 ᆞ

요약하다

동적 트렌드 추적 역전 전략은 실시간으로 비교적 높은 낮은 점을 판단하여 트렌드 방향과 강도를 판단하고, JD Sequential 지표의 7개의 계산 규칙을 사용하여 거래 신호를 생성하여, 단기 반전 기회를 잡을 수 있습니다. 전통적인 JD 전략에 비해, 이 전략은 높은 낮은 점 판단, 카운트 사이클을 단축하고, 스톱 로즈 메커니즘을 추가하는 등의 개선을 통해 더 적시에 거래 신호를 얻을 수 있습니다.

이 전략의 주요 장점은 빠른 반응과 짧은 선에 적합한 반향을 잡는 데 적합하며, 거래 빈도, 손실 급진성 등의 위험도 존재한다. 미래 최적화 방향은 파라미터 조정, 위험 제어 장치 강화, 다중 시간 주기 조합 등이다. 지속적인 최적화와 반복을 통해 이 전략은 단기 반향 신호를 효율적으로 잡는 강력한 도구가 될 전망이다.

전략 소스 코드
/*backtest
start: 2023-12-16 00:00:00
end: 2024-01-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @NeoButane 7 Dec. 2018
// JD Aggressive Sequential Setup
// Not based off official Tom DeMarke documentation. As such, I have named the indicator JD instead oF TD to reflect this, and as a joke.
//
// Difference vs. TD Sequential: faster trade exits and a unique entry. Made for low timeframes.
// - Highs or lows are compared instead of close.
// - Mirrors only the Setup aspect of TD Sequential (1-9, not to 13)
// - Count maxes out at 7 instead of 9. Also part of the joke if I'm going to be honest here

// v1 - Release - Made as a strategy, 7 count
//    . S/R on 7 count
//   .. Entry on 7 count
//  ... Exit on 5 count or S/R cross

//@version=3
title = "JD Aggressive Sequential Setup"
vers  = " 1.0 [NeoButane]"
total = title + vers
strategy(total, total, 1, 0)

xx        = input(true, "Include S/R Crosses Into Stop Loss")
show_sp   = input(true, "Show Count 1-4")
sp_ct     = 0
inc_sp(x) => nz(x) == 7 ? 1 : nz(x) + 1
sp_up     = high > high[2]
sp_dn     = low < low[2]
sp_col    = sp_up ? green : red
sp_comCol = sp_up ? red : green
sp_ct    := sp_up ? (nz(sp_up[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : sp_dn ? (nz(sp_dn[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : na
sp_com    = sp_ct == 7
sp_sr     = valuewhen(sp_ct == 5, close, 0)
sp_usr    = valuewhen(sp_ct == 7 and sp_up, sma(hlc3, 2), 0)
sp_usr   := sp_usr <= sp_usr[1] * 1.0042 and sp_usr >= sp_usr[1] * 0.9958 ? sp_usr[1] : sp_usr
sp_dsr    = valuewhen(sp_ct == 7 and sp_dn, sma(hlc3, 2), 0)
sp_dsr   := sp_dsr <= sp_dsr[1] * 1.0042 and sp_dsr >= sp_dsr[1] * 0.9958 ? sp_dsr[1] : sp_dsr
locc = location.abovebar
plotchar(show_sp and sp_ct == 1, 'Setup: 1', '1', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 2, 'Setup: 2', '2', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 3, 'Setup: 3', '3', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 4, 'Setup: 4', '4', locc, sp_col, editable=false)
plotshape(sp_ct == 5, 'Setup: 5', shape.xcross, locc, sp_comCol, 0, 0, '5', sp_col)
plotshape(sp_ct == 6, 'Setup: 6', shape.circle, locc, sp_comCol, 0, 0, '6', sp_col)
plotshape(sp_ct == 7, 'Setup: 7', shape.circle, locc, sp_comCol, 0, 0, '7', sp_col)
// plot(sp_sr, "5 Count Support/Resistance", gray, 2, 6)
plot(sp_usr, "7 Count Resistance", maroon, 2, 6)
plot(sp_dsr, "7 Count Support", green, 2, 6)

long  = (sp_com and sp_dn)
short = (sp_com and sp_up)
sl_l  = xx ? crossunder(close, sp_dsr) or (sp_ct == 5 and sp_up) or short : (sp_ct == 5 and sp_up) or short
sl_s  = xx ? crossover(close, sp_usr) or (sp_ct == 5 and sp_dn) or long : (sp_ct == 5 and sp_dn) or long

strategy.entry('L', 1, when = long)
strategy.close('L', when = sl_l)
strategy.entry('S', 0, when = short)
strategy.close('S', when = sl_s)