
이것은 서로 다른 시간 축에 있는 핵심 가격으로 두 개의 돌파구를 형성하여 거래 신호를 만드는 전략이다. 그것은 트렌드 가격이 핵심 지지 또는 저항 지점을 돌파할 때 중장선 트렌드를 잡기 위해 상장 또는 상장 할 수 있다.
이 전략은 동시에 두 개의 다른 시간 축 (tf 및 tf2) 에서 가격 움직임을 분석합니다. tf 시간 축은 더 길고 중장선 추세를 나타냅니다. tf2 시간 축은 더 짧고 단기간의 움직임을 나타냅니다. 전략은 다음과 같은 거래 신호를 모니터링합니다.
거래 신호의 형성 조건은: up1과 up2가 동시에 true인 경우 중장선과 단기선이 모두 부진한 것을 나타냅니다. 이 때 더 많이 한다. dn1과 dn2가 동시에 true인 경우 중장선과 단기선이 모두 부진한 것을 나타냅니다. 이 때 공백한다.
이 전략은 또한 반사 모서리와 색상 K 선 필터링과 같은 필터링 조건을 추가하여 비정상적인 트렌드 브레이크가 잘못된 신호를 생성하는 것을 방지합니다.
전체적으로 볼 때, 이 전략은 다중 시간 분기 분석의 장점을 최대한 활용하여 중장기 트렌드가 예상에 부합하는 것을 보장하면서도 단기 시장 소음으로 방해받지 않고 고품질의 거래 신호를 형성합니다.
이 전략은 두 시간 축에 걸쳐 중요한 가격 돌파구를 모니터링하여 트렌드 초기 단계에서 명확한 진입 시점을 잡을 수 있습니다.
두 개의 다른 시간 축에서 동시에 돌파하면, 임의의 파동으로 인한 잘못된 신호를 크게 줄이고, 신호 품질을 향상시킬 수 있다.
반사 모서리와 색상 K선 판단을 추가하여, 몇 가지 저품질의 돌파 신호를 필터링하여 심각한 손실을 방지할 수 있다.
이 전략은 두 개의 시간축 파라미터가 있어야만 작동하며, 파라미터를 선택하면 다양한 품종에 적합합니다.
전략 구조는 명확하고, 원칙을 이해하기 쉽다. 또한 실황 특성에 따라 매개 변수를 조정하여 전략을 최적화 할 수 있다.
단일 돌파구와 비교하여, 이중 돌파구로 인해 약간의 진입이 지연되고, 초기 강세를 보이는 수익을 놓칠 수 있다.
다양한 품종과 시장주기에 따라 적절한 핵심 가격을 선택하는 것이 매우 중요합니다. 그렇지 않으면 잘못된 신호를 받을 수 있습니다.
이중 돌파를 하더라도 돌파가 실패한 후 재빨리 회수되는 경우도 있을 수 있으며, 이로 인해 손실이 발생한다.
트렌드 후기 입장은 급격한 반전으로 인해 큰 손실을 초래할 수 있습니다.
단순함에도 불구하고, 최적의 변수 조합을 찾기 위해서는 많은 반복 테스트가 필요하며, 최적화하기가 더 어렵습니다.
이동 상쇄 또는 시간 상쇄를 설정할 수 있으며, 손실이 확대되기 전에 상쇄 출전을 할 수 있다.
다른 역축 폭 변수를 테스트하거나 다른 필터링 방법을 시도할 수 있습니다.
시장의 변화에 따라 키값을 동적으로 변경할 수 있고, 정적인 설정이 아닙니다.
기계학습을 통해 다양한 품종의 최적의 파라미터 조합을 최적화할 수 있다.
거래량 확인을 추가하여 수많은 가짜 신호를 차단할 수 있습니다.
이 전략은 전반적으로 단순하고 실용적인 트렌드 추적 전략이다. 이 전략은 동시에 두 개의 시간축 분석을 사용하여 중장선에서 기대에 부합할 때 입장을 취하며, 일부 잡음을 효과적으로 필터링 할 수 있다. 전략 신호는 명확하고 읽기 쉽고, 파라미터 설정도 비교적 간단하다. 그러나 동시에 입점 시기가 좋지 않고, 핵심 가격 선택이 어려운 문제도 있다.
/*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()