양적 거래에 대한 높은 낮은 브레이크

저자:차오장, 날짜: 2023-11-10 11:09:28
태그:

img

전반적인 설명

퓨전 전략은 123 역전 패턴 전략과 높은 낮은 브레이크 아웃 전략을 양적 거래 시스템으로 결합합니다. 다른 시간 프레임에 걸쳐 지표 신호를 합성함으로써 다중 시간 프레임 자본 이점을 달성하고 중장기적으로 초과 수익을 창출하는 것을 목표로합니다.

전략 논리

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

  1. 123 역전 전략 이 전략은 울프 젠슨의 책 How I Tripled My Money in the Futures Market의 p183의 아이디어에서 유래되었다. 이는 지난 두 날과 전날의 폐쇄 가격 사이의 관계를 조사함으로써 스토카스틱 지표와 함께 과잉 구매 및 과잉 판매 시장 조건을 측정함으로써 거래 신호를 생성한다. 구체적으로, 두 날 연속 폐쇄 가격이 전날보다 높고, 스토카스틱 슬로우 지표가 50 이하일 때 구매 신호가 생성된다. 두 날 연속 폐쇄 가격이 전날보다 낮고, 스토카스틱 패스트 지표가 50 이상일 때 판매 신호가 생성된다. 스토카스틱 지표를 통합함으로써 이 전략은 시장 정상에서 구매하고 바닥에서 판매하는 것을 피한다.

  2. 높은 낮은 브레이크업 전략 이 전략은 다른 기간에 걸쳐 이전 최고/하위 수준을 초과한 가격 브레이크오프를 탐지함으로써 거래 신호를 식별합니다. 현재와 이전 기간 동안 가장 높은 최고와 가장 낮은 최저를 계산하고 가격이 최고를 넘어서면 구매 신호를 생성하고 가격이 낮을 넘어서면 판매 신호를 생성합니다. 이 전략의 장점은 더 높은 시간 프레임에서 트렌드 패턴 변화를 식별하는 능력으로 더 일찍 진입 할 수 있습니다.

퓨전 전략은 위의 두 전략의 신호를 결합하고 신호 방향이 일치할 때만 실제 거래 신호를 생성합니다. 이것은 단일 전략의 오류로 인한 일부 잘못된 신호를 필터링하고 신호 신뢰성을 향상시킵니다.

전략 의 장점

  1. 멀티 타임프레임 합성은 신호 정확성을 향상시킵니다. 일일 및 더 높은 시간 프레임 패턴의 통합은 거래 신호 생성의 정확성을 향상시키고, 단기 시장 소음으로부터 방해를 피합니다.

  2. 스토카스틱의 과잉 구매/ 과잉 판매 판단을 완전히 활용합니다. 스토카스틱 슬로우 지표의 사용은 과잉 매매 구역에서 열광적인 구매를 방지합니다. 스토카스틱 패스트 지표는 과잉 매매 구역에서 열광적인 판매를 방지합니다. 불필요한 손실이 감소합니다.

  3. 트렌드 패턴을 적시에 파악하고 놓친 기회를 줄이세요 높은 낮은 브레이크 아웃 전략은 더 높은 시간 프레임에서 트렌드 시작을 더 일찍 식별하여 놓친 거래 기회를 줄입니다.

  4. 다양한 하위 전략으로 유연한 최적화 여러 개의 하위 전략으로, 거대한 최적화 공간은 하위 전략의 매개 변수를 조정하거나 전략을 더 안정적이고 신뢰할 수 있도록 새로운 것을 도입 할 수 있습니다.

  5. 단순하고 명확한 논리 간결한 구조와 논리 때문에 전략은 쉽게 이해할 수 있고, 수정될 수 있고, 앞으로도 유지될 수 있습니다.

전략 의 위험

  1. 멀티 타임프레임 합성은 신호 지연을 유발합니다. 정확도가 향상되었지만 시간 프레임에 걸쳐 신호를 결합하면 지연이 발생하고 단기 거래 기회를 놓칠 수 있습니다.

  2. 123 패턴은 더 긴 시간 프레임 트렌드 전환을 식별 할 수 없습니다 123 회전 전략은 최근 일만 보고 더 긴 시간 프레임에서 주요 회전 지점을 놓치고 있습니다.

  3. 잘못된 매개 변수 설정으로 인해 잘못된 신호가 발생할 수 있습니다. 스토카스틱 및 브레이크아웃 기간의 잘못된 매개 변수 조정으로 인해 과도한 잘못된 신호가 발생할 수 있습니다.

  4. 순수 기술, 극한 현상에 대한 약한 적응력 근본적인 요소를 고려하지 않고서는 전략은 블랙 스완 사건에 잘 적응하지 못합니다.

대응 솔루션:

  1. 계산 기간을 적절하게 단축하여 지연을 줄이십시오.

  2. 필터로 장기 지표나 패턴을 도입해보세요.

  3. 매개 변수를 최적화하고 역 테스트에서 견고성을 철저히 테스트합니다.

  4. 신호 필터링을 위한 근본적인 요소들을 포함시키는 것을 고려하세요.

최적화 위한 지침

  1. 탄력성을 위한 하위 전략의 매개 변수를 테스트하고 최적화합니다.

  2. 기본, 현금 흐름 등과 같은 추가 신호를 포함합니다.

  3. 거래당 최대 손실을 제한하기 위해 스톱 로스를 도입합니다.

  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 )

더 많은