하이 및 로우 돌파구 양적 전략


생성 날짜: 2023-11-10 11:09:28 마지막으로 수정됨: 2023-11-10 11:09:28
복사: 0 클릭수: 589
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

하이 및 로우 돌파구 양적 전략

개요

융합 전략은 123 형태 반전 전략과 고저위 돌파 전략을 결합한 양적 거래 전략이다. 이 전략은 다양한 시간 주기의 지표 신호를 종합적으로 판단하여 여러 시간 주기의 자금 장점 조합을 달성하여 중장기선에서 초과 수익을 얻는 목표를 달성한다.

전략 원칙

융합 전략은 두 가지로 구성됩니다.

  1. 123 역전 전략
    이 전략은 울프 센의 ?? 나는 어떻게 선물 시장에서 3배의 수익을 얻을 수 있는가 ?? 의 P183의 아이디어에서 유래했다. 이 전략은 가격의 2일 연속 종결 가격과 전날 종결 가격과의 관계를 판단하여, 스토캐스틱 지표와 결합하여 시장의 초고매 상황을 판단하여, 구매 및 판매 신호를 생성한다. 구체적으로, 2일 연속 종결 가격이 전날 종결 가격보다 상승하고, 스토캐스틱 슬로 지표가 50보다 낮으면 구매 신호를 생성한다. 2일 연속 종결 가격이 전날 종결 가격보다 떨어지고, 스토캐스틱 패스트 지표가 50보다 높으면 판매 신호를 생성한다. 이 전략은 스토캐스틱 지표를 사용하여 시장의 초고매 상황을 판단하여, 시장의 높은 가격에서 구매 및 판매를 피한다.

  2. 높은 낮은 수준의 돌파 전략
    이 전략은 가격이 서로 다른 주기의 높은 낮은 지점을 돌파했는지 판단하여 거래 신호를 결정한다. 그것은 현재 주기와 이전 주기의 최고 가격과 최저 가격을 계산하고, 가격이 최고 가격을 돌파 할 때 구매 신호를 생성하고, 최저 가격을 돌파 할 때 판매 신호를 생성한다. 이 전략의 장점은 서로 다른 주기의 선 모양의 특징을 식별하고, 추세가 형성될 때 일찍 시장에 진입하는 데 있다.

병합 전략은 위의 두 가지 전략을 조합하여 두 가지 전략의 신호 방향이 일치하면 실제 거래 신호를 생성한다. 이렇게하면 단일 전략의 판단 오류로 인해 발생하는 무효 신호를 필터링하여 신호의 신뢰성을 향상시킬 수 있다.

전략적 이점

  1. 다중 시간 주기의 종합 판단, 신호 정확도를 향상
    이 전략은 일선과 더 높은 시간 주기 형태적 특성을 결합하여 거래 신호 판단의 정확성을 높이고, 시장의 단기 변동에 의해 오도되는 것을 피할 수 있다.

  2. 스토카스틱 지표의 과매매 판단을 활용하세요
    StochasticSlow 지표의 적용은 과매도 지역에서 급하게 구매하는 것을 방지하고, StochasticFast 지표의 적용은 과매도 지역에서 급하게 판매하는 것을 방지하여 불필요한 손실을 줄인다.

  3. 트렌드 특성을 파악하여 놓친 기회를 줄이는 방법
    높은 낮은 수준의 돌파 전략은 더 긴 선주기 내에서 가격 돌파의 핵심 영역을 식별하여 추세에 더 일찍 진입하여 놓친 기회의 가능성을 줄일 수 있습니다.

  4. 다중 전략 포트폴리오, 유연하고 최적화 가능
    정책은 여러 개의 하위 정책으로 구성되어 있으며, 최적화 공간이 넓고, 하위 정책의 매개 변수를 조정하거나 새로운 하위 정책을 도입하여 최적화 할 수 있으며, 정책이 더 안정적이고 신뢰할 수 있습니다.

  5. 명확하고 이해하기 쉬운 전략 논리
    정책 구조는 간단하고 명확하며, 이해하기 쉽고 수정할 수 있으며, 후기 유지보수가 용이합니다.

전략적 위험

  1. 다중 시간 주기 통합 증가 신호 지연
    다중 시간 주기의 종합 판단은 신호의 정확성을 향상시킬 수 있지만, 신호의 지연을 어느 정도 증가시킬 수 있으며, 단선 거래 기회를 놓칠 수 있다.

  2. 123 형태는 더 긴 선의 트렌드 반향을 인식하지 못했습니다.
    123 역전 전략은 단지 최근 몇일 동안의 상황을 판단하여 더 긴 기간 동안의 중요한 트렌드 역전점을 식별할 수 없습니다.

  3. 주기 변수 설정이 잘못되면 가짜 신호가 발생할 수 있습니다.
    스토카스틱 지표와 고저위 돌파 사이클 파라미터 설정이 잘못되면 너무 많은 가짜 거래 신호가 발생할 수 있습니다.

  4. 기술적인 지표만 기준으로 특수한 상황에 대한 적응력이 낮다.
    이 전략은 기술적 인 지표에만 기반하고 기본 정보를 고려하지 않으며, 주요 블랙 스 사건이 발생했을 때 적응력이 떨어집니다.

위험과 대응하는 방법:

  1. 계산주기를 적절히 단축하여 신호 지연을 줄인다.

  2. 더 긴 주기 지표나 형태를 필터로 도입해 보세요.

  3. 최적화 파라미터 설정, 재검토에서 파라미터 안정성을 테스트한다.

  4. 기본 요소와 결합된 필터링 신호를 고려하십시오.

전략 최적화 방향

  1. 각 하위 전략의 매개 변수를 테스트하고 최적화하여 더 안정적으로 만들 수 있습니다.

  2. 다른 보조적 의사 결정 논리를 추가하여, 기본 사항, 자금 흐름 등과 같은 지표들을 조합한다.

  3. 한 거래당 최대 손실을 통제하기 위해 Stop Loss 전략을 도입하십시오.

  4. 특정 품종에 대한 매개 변수를 정밀화하여 그 품종에 대한 전략의 적합성을 향상시킵니다.

  5. 더 많은 기계 학습 모델이 의사 결정에 도움을 줍니다.

요약하다

종합적으로 살펴보면, 융합 전략은 여러 시간 척도의 기술 지표의 장점을 통합하여 신호 판단의 정확성과 시간성을 향상시키는 것을 목표로 한다. 단일 기술 지표 전략에 비해, 그것은 더 날카로운 경향 판단 능력과 더 안정적인 신호 발생을 가지고 있다. 그러나 이 전략에는 약간의 지연성이 있으며, 특수 상황의 적응력이 약한 문제 등이 있다.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/11/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This script shows a high and low period value.
//    Width - width of lines
//    SelectPeriod - Day or Week or Month and etc.
//    LookBack - Shift levels 0 - current period, 1 - previous and etc. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

    
HLL(LookBack, SelectPeriod) =>
    pos = 0.0
    xHigh  = security(syminfo.tickerid, SelectPeriod, high[LookBack])
    xLow   = security(syminfo.tickerid, SelectPeriod, low[LookBack])
    vS1 = xHigh
    vR1 = xLow
    pos := iff(close > vR1, 1,
             iff(close < vS1, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & High and Low Levels", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SelectPeriod = input(title="Resolution", type=input.resolution, defval="D")
LookBack = input(1,  minval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLL = HLL(LookBack, SelectPeriod)
pos = iff(posReversal123 == 1 and posHLL == 1 , 1,
	   iff(posReversal123 == -1 and posHLL == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )