황소와 곰 균형 전략

저자:차오장, 날짜: 2023-11-02 17:12:40
태그:

img

전반적인 설명

황소와 곰 균형 전략은 추세를 따르는 전략의 개선이다. 현재 바와 이전 바 사이의 관계를 기반으로 상승세와 하락세 사이의 균형을 분석하고 균형이 깨지면 거래 신호를 생성한다. 아이디어는 전통적인 엘더 레이 지표에서 왔지만 추세를 더 정확하게 판단하기 위해 개선되었다.

전략 논리

이 전략의 핵심 지표는 nBBB입니다. 현재 바와 이전 바의 상승과 하락 세력의 균형을 반영합니다. nBBB는 다음과 같이 계산됩니다.

nBBB = 값2 - 값

여기 가치와 가치2는 현재 바와 이전 바의 상승세와 하락세 세력을 각각 계산한다. 계산은 매우 복잡하며, 닫기, 열기, 높은 가격과 낮은 가격 사이의 관계에 대한 판단을 포함한다. 그러나 일반적으로 가치는 현재 바의 황소/곰 세력을 측정하고, 가치2는 이전 바의 힘을 측정한다. 그 차이점은 황소/곰 균형의 변화를 반영한다.

nBBB가 SellLevel의 임계치 아래로 떨어지면 짧은 신호가 생성됩니다. nBBB가 BuyLevel의 임계치 이상으로 올라가면 긴 신호가 생성됩니다. 임계치는 매개 변수를 통해 조정 할 수 있습니다.

장점

이 전략의 주요 장점은 다음과 같습니다.

  1. 촛불의 반전 신호를 바탕으로 강력한 트렌드 전환점을 식별할 수 있습니다.

  2. 황소/곰 균형을 측정하면 신호가 더 정확하고 신뢰할 수 있습니다.

  3. 기존 바와 현재의 바를 비교하면 더 명확한 신호를 얻기 위해 소음을 필터합니다.

  4. 다양한 시간 프레임에 적용 가능하고 유연합니다.

  5. nBBB 지표는 직관적이고 신호는 간단하고 명확합니다.

위험성

주의해야 할 몇 가지 위험 요소:

  1. nBBB는 잘못된 신호를 생성하여 가격 확인을 요구할 수 있습니다.

  2. nBBB에만 의존하는 것은 맹점이 있습니다. 다른 지표를 포함하는 것이 좋습니다.

  3. SellLevel와 BuyLevel 매개 변수는 성능에 직접적인 영향을 미치며 신중한 최적화가 필요합니다.

  4. 극심한 변동이 있을 때 신호가 늦어질 수 있어 위험 평가가 필요합니다.

  5. 중장기, 단기에는 더 적합합니다.

개선

전략을 강화하는 몇 가지 방법:

  1. 가장 잘 맞는 역 테스트를 기반으로 SellLevel와 BuyLevel를 최적화합니다.

  2. 리스크를 제어하기 위해 트레일링 스톱 로스 같은 스톱 로스 메커니즘을 포함합니다.

  3. 부피, 스토카스틱 등과 같은 다른 지표를 추가하여 의사 결정의 정확성을 향상시킵니다.

  4. 기계 학습을 도입하여 매개 변수를 자동으로 최적화하고 더 나은 신호를 생성합니다.

  5. 다른 제품과 시간 프레임에 대한 별도의 매개 변수 최적화

결론

황소와 곰 균형 전략은 황소 / 곰 힘의 변화를 측정하여 트렌드 역전을 판단하여 비교적 간단하고 실용적인 트렌드 다음 전략으로 만듭니다. 특정 장점이 있지만 위험도 있습니다. 매개 변수 최적화, 스톱 손실, 추가 지표 등으로 추가적으로 개선 될 수 있습니다. 전반적으로 더 깊은 연구와 응용을 가치가있는 흥미로운 수치적 접근 방식을 제시합니다.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/02/2017
//    This new indicator analyzes the balance between bullish and
//    bearish sentiment.
//    One can cay that it is an improved analogue of Elder Ray indicator.
//    To get more information please see "Bull And Bear Balance Indicator" 
//    by Vadim Gimelfarb. 
////////////////////////////////////////////////////////////
strategy(title = "Bull And Bear Balance Strategy")
SellLevel = input(-15, step=0.01)
BuyLevel = input(15, step=0.01)
reverse = input(false, title="Trade reverse")
hline(SellLevel, color=red, linestyle=line)
hline(BuyLevel, color=green, linestyle=line)
value =  iff (close < open , 
          iff (close[1] > open ,  max(close - open, high - low), high - low), 
           iff (close > open, 
             iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
              iff(high - close > close - low, 
               iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                 iff (high - close < close - low, 
                  iff(close > open, max(close - low, high - close),open - low), 
                   iff (close > open, max(close[1] - open, high - close),
                     iff(close[1] < open, max(open - low, high - close), high - low))))))

value2 = 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))))))
nBBB = value2 - value
nBBBc = nBBB < 0 ? red : green
pos = iff(nBBB < SellLevel, -1,
	   iff(nBBB >= BuyLevel, 1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nBBB, style=line, linewidth=1, color=nBBBc)
plot(nBBB, style=histogram, linewidth=1, color=gray)


더 많은