시간 축에 따른 이중 돌파 가격 전략


생성 날짜: 2023-11-15 17:27:36 마지막으로 수정됨: 2023-11-15 17:27:36
복사: 0 클릭수: 667
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

시간 축에 따른 이중 돌파 가격 전략

개요

이것은 서로 다른 시간 축에 있는 핵심 가격으로 두 개의 돌파구를 형성하여 거래 신호를 만드는 전략이다. 그것은 트렌드 가격이 핵심 지지 또는 저항 지점을 돌파할 때 중장선 트렌드를 잡기 위해 상장 또는 상장 할 수 있다.

전략 원칙

이 전략은 동시에 두 개의 다른 시간 축 (tf 및 tf2) 에서 가격 움직임을 분석합니다. tf 시간 축은 더 길고 중장선 추세를 나타냅니다. tf2 시간 축은 더 짧고 단기간의 움직임을 나타냅니다. 전략은 다음과 같은 거래 신호를 모니터링합니다.

  1. 가격이 tf 시간축에서 레벨을 () 위로 돌파할 때, up1=true를 기록한다
  2. 가격이 tf 시간축에서 하향으로 돌파할 때,dn1=true를 기록한다
  3. 가격이 tf2 시간축에서 레벨 2를 돌파했을 때, up2=true
  4. 가격이 tf2 시간축에서 하향으로 돌파할 때,dn2=true를 기록한다

거래 신호의 형성 조건은: up1과 up2가 동시에 true인 경우 중장선과 단기선이 모두 부진한 것을 나타냅니다. 이 때 더 많이 한다. dn1과 dn2가 동시에 true인 경우 중장선과 단기선이 모두 부진한 것을 나타냅니다. 이 때 공백한다.

이 전략은 또한 반사 모서리와 색상 K 선 필터링과 같은 필터링 조건을 추가하여 비정상적인 트렌드 브레이크가 잘못된 신호를 생성하는 것을 방지합니다.

전체적으로 볼 때, 이 전략은 다중 시간 분기 분석의 장점을 최대한 활용하여 중장기 트렌드가 예상에 부합하는 것을 보장하면서도 단기 시장 소음으로 방해받지 않고 고품질의 거래 신호를 형성합니다.

전략적 강점 분석

  1. 중요한 지지 또는 저항 지점을 뚫고 중장선 트렌드를 잡습니다.

이 전략은 두 시간 축에 걸쳐 중요한 가격 돌파구를 모니터링하여 트렌드 초기 단계에서 명확한 진입 시점을 잡을 수 있습니다.

  1. 이중 확인이 오류 신호를 줄입니다.

두 개의 다른 시간 축에서 동시에 돌파하면, 임의의 파동으로 인한 잘못된 신호를 크게 줄이고, 신호 품질을 향상시킬 수 있다.

  1. 반사 모서리와 컬러 K 선 필터

반사 모서리와 색상 K선 판단을 추가하여, 몇 가지 저품질의 돌파 신호를 필터링하여 심각한 손실을 방지할 수 있다.

  1. 간단한 변수 설정

이 전략은 두 개의 시간축 파라미터가 있어야만 작동하며, 파라미터를 선택하면 다양한 품종에 적합합니다.

  1. 이해하기 쉽고 최적화하기 쉽습니다.

전략 구조는 명확하고, 원칙을 이해하기 쉽다. 또한 실황 특성에 따라 매개 변수를 조정하여 전략을 최적화 할 수 있다.

전략적 위험 분석

  1. 이중 침입으로 인해 입학이 지연됐습니다.

단일 돌파구와 비교하여, 이중 돌파구로 인해 약간의 진입이 지연되고, 초기 강세를 보이는 수익을 놓칠 수 있다.

  1. 핵심 지원 저항 비트 선택

다양한 품종과 시장주기에 따라 적절한 핵심 가격을 선택하는 것이 매우 중요합니다. 그렇지 않으면 잘못된 신호를 받을 수 있습니다.

  1. 파격적인 실패

이중 돌파를 하더라도 돌파가 실패한 후 재빨리 회수되는 경우도 있을 수 있으며, 이로 인해 손실이 발생한다.

  1. 추세 반전 손실

트렌드 후기 입장은 급격한 반전으로 인해 큰 손실을 초래할 수 있습니다.

  1. 매개 변수 최적화 문제

단순함에도 불구하고, 최적의 변수 조합을 찾기 위해서는 많은 반복 테스트가 필요하며, 최적화하기가 더 어렵습니다.

전략 최적화 방향

  1. 더 많은 손실을 막는 전략

이동 상쇄 또는 시간 상쇄를 설정할 수 있으며, 손실이 확대되기 전에 상쇄 출전을 할 수 있다.

  1. 필터링 조건을 최적화

다른 역축 폭 변수를 테스트하거나 다른 필터링 방법을 시도할 수 있습니다.

  1. 동적 핵심 가격

시장의 변화에 따라 키값을 동적으로 변경할 수 있고, 정적인 설정이 아닙니다.

  1. 다중 품종 변수 최적화

기계학습을 통해 다양한 품종의 최적의 파라미터 조합을 최적화할 수 있다.

  1. 추가 가격 확인

거래량 확인을 추가하여 수많은 가짜 신호를 차단할 수 있습니다.

요약하다

이 전략은 전반적으로 단순하고 실용적인 트렌드 추적 전략이다. 이 전략은 동시에 두 개의 시간축 분석을 사용하여 중장선에서 기대에 부합할 때 입장을 취하며, 일부 잡음을 효과적으로 필터링 할 수 있다. 전략 신호는 명확하고 읽기 쉽고, 파라미터 설정도 비교적 간단하다. 그러나 동시에 입점 시기가 좋지 않고, 핵심 가격 선택이 어려운 문제도 있다.

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

//Noro
//2018

//@version=2
strategy(title = "Noro's Levels Strategy v1.0", shorttitle = "Levels str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W',  title = "timeframe 1")
tf2 = input('D',  title = "timeframe 2")
src = input(ohlc4, "Source")
ap = input(true, defval = true, title = "antipila")
cf = input(true, defval = true, title = "color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Signals
level = request.security(syminfo.tickerid, tf, src[1])
level2 = request.security(syminfo.tickerid, tf2, src[1])
plot(level, linewidth = 3, color = silver)
plot(level2, linewidth = 3, color = gray)
up1 = close > level and ap == false ? true : low > level ? true : false
dn1 = close < level and ap == false ? true : high < level ? true : false
up2 = close > level2 and ap == false ? true : low > level2 ? true : false
dn2 = close < level2 and ap == false ? true : high < level2 ? true : false

//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]

if up1 and up2 and (close < open or cf == false)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if dn1 and dn2 and (close > open or cf == false)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()