바이너리 모멘텀 브레이크아웃 반전 전략


생성 날짜: 2024-02-28 17:20:02 마지막으로 수정됨: 2024-02-28 17:20:02
복사: 0 클릭수: 633
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

바이너리 모멘텀 브레이크아웃 반전 전략

개요

이중 동력 돌파 반전 전략은 스토크 지수와 황소 지수를 결합하여 이중 신호 필터링을 구현하고, 시장의 반전 지점에서 반전 거래를 수행하여 오버 하락 오버 상승을 추구한다.

전략 원칙

이 전략은 두 부분으로 구성되어 있습니다.

  1. 123 역전 전략

울프 젠슨이 그의 책에서 제시한 미래 시장에서 자금을 3배로 늘리는 방법의 역전 전략을 사용하십시오. 종결 가격이 전날 종결 가격보다 2일 연속으로 높고, 9일 느린 K 선 주식 지표가 50보다 낮을 때 더 많이; 종결 가격이 전날 종결 가격보다 2일 연속으로 낮고, 9일 빠른 K 선 주식 지표가 50보다 높을 때 더 많이;

  1. 황소 지표

와디미 기멜파브가 그의 책집인 불곰 균형지표 에서 제시한 운동지표. 현재 K선과 이전 K선의 관계를 계산하여 다공간력을 판단하고, 다공간을 하는 신호를 준다.

이 전략은 위와 같은 두 개의 단일 신호 전략을 결합하여 두 신호가 일치할 때 거래 신호를 발산하여 듀얼 필터링으로 가짜 신호를 줄인다.

우위 분석

이 전략은 반전 전략과 추적 전략의 장점을 결합하여 시장에서 반전 신호가 발생했을 때 적시에 포착할 수 있으며, 이중 신호 필터링을 통해 가짜 신호를 줄이고, 상하를 추적하는 것을 피합니다. 구체적인 장점은 다음과 같습니다:

  1. 123 형태를 사용하여 시장의 전환점을 판단하고, 과매매의 초과 구매 지점을 식별할 수 있다.
  2. 듀얼 신호 필터링 메커니즘, 단일 지표가 생성하는 가짜 신호를 방지하고 신호 품질을 향상한다.
  3. 역전 거래 방식을 사용하여 시장의 역전으로 인한 트렌드 기회를 잡습니다.
  4. 매개 변수 최적화 공간은 넓고, 지표 매개 변수를 조정하여 다양한 시장 환경에 적응할 수 있다.

위험 분석

이 전략에는 위험도 있습니다. 주요 원인은 다음과 같습니다.

  1. 역전 실패 위험. 역전 신호를 식별하는 데는 약간의 어려움이 있으며, 역전 신호가 발신된 후 가격이 원래의 경향을 계속하는 확률도 높습니다.
  2. 이중 필터링 신호가 일치하지 않으면 거래할 수 없는 기회를 잃는다.
  3. 변수가 잘못되어 역전 신호 인식이 정확하지 않다.
  4. 이 전략은 중장기 거래에 더 적합하며, 단기 거래는 그다지 효과가 없습니다.

대응 방법은 다음과 같습니다.

  1. 단독 손실을 통제하기 위해 Stop Loss 전략을 사용하십시오.
  2. 최적화 매개 변수, 다른 품종은 다른 매개 변수 조합을 선택할 수 있다.
  3. 다른 지표와 함께 보조적인 판단으로

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 전략 효과에 대한 다양한 매개 변수의 영향을 테스트하고, 최적의 매개 변수 조합을 찾습니다. 예를 들어, 스토크 지표의 조정 주기 매개 변수, KDJ 지표의 평형 매개 변수 등이 있습니다.
  2. 단편 손실을 제어하기 위해 스톱 손실 전략을 추가하십시오. ATR 지표와 결합하여 스톱 손실을 설정할 수 있습니다.
  3. 다른 지표와 결합하여 신호 검사를 한다. 예를 들어 MACD, KD, RSI 등의 지표가 신호를 생성할 때 거래 신호를 발송하는 것을 고려한다.
  4. 기계 학습 알고리즘을 사용하여 파라미터를 최적화하여 파라미터를 동적으로 조정합니다.

요약하다

이중 동력 돌파 반전 전략은 스토크 지표와 황소 지표의 결합을 통해 이중 신호 필터링과 반전 거래를 실현한다. 그것은 시장 반전 기회를 포착하고 단일 신호의 노이즈를 피할 수 있으며, 안정적이고 효과적인 양적 전략이다. 이 전략은 파라미터 최적화, 스톱 손실 전략, 신호 스쿨링 등의 방법으로 개선될 수 있으며, 더 많은 다양한 품종과 시장 환경에 적합하며, 큰 최적화 공간과 응용 전망을 가지고 있다.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/07/2019
// 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
//  Bull Power Indicator
//  To get more information please see "Bull And Bear Balance Indicator" 
//  by Vadim Gimelfarb. 
//
// 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

BullPower(SellLevel, BuyLevel) =>
    pos = 0
    value = iff (close < open ,  
             iff (close[1] < open ,  max(high - close[1], close - low), max(high - open, close - low)),
              iff (close > open, 
               iff(close[1] > open,  high - low, max(open - close[1], high - low)), 
                 iff(high - close > close - low, 
                  iff (close[1] < open, max(high - close[1], close - low), high - open), 
                   iff (high - close < close - low, 
                     iff(close[1] > open,  high - low, max(open - close, high - low)), 
                      iff (close[1] > open, max(high - open, close - low),
                       iff(close[1] < open, max(open - close, high - low), high - low))))))
    pos := iff(value > SellLevel, -1,
	         iff(value <= BuyLevel, 1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & Bull Power", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(15, step=1)
BuyLevel = input(3, step=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBullPower = BullPower(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBullPower == 1 , 1,
	   iff(posReversal123 == -1 and posBullPower == -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 )