이중 이동 평균 크로스오버와 황소 곰 힘 균형 조합 전략

저자:차오장, 날짜: 2024-01-08 17:09:48
태그:

img

전반적인 설명

이 전략은 먼저 시장 진입의 기본 기준으로 2 기간 및 20 기간 EMA의 이중 이동 평균 라인을 사용하여 가격이 이동 평균을 깨는지 여부를 결정합니다. 동시에 보조 지표 Bull Bear Power Balance Indicator는 잘못된 작업을 피하기 위해 황소와 곰 사이의 상대적 힘을 추가로 식별합니다. 두 유형의 지표가 공동으로 최종 거래 신호를 생성합니다.

전략 원칙

  1. 이중 이동 평균 지표

    • 2주기 및 20주기 기하급수적 이동 평균 (EMA) 을 계산합니다.
    • 닫기 가격이 이동 평균의 한쪽에서 다른 쪽으로 돌파 할 때 거래 신호를 생성합니다.
    • 20-EMA를 뚫는 것은 트렌드 방향을 결정합니다.
    • 2-EMA를 통과하면 특정 입구점을 결정합니다.
  2. 황소 곰 힘 균형 지표

    • 별도로 황소 힘 값과 곰 힘 값을 계산
    • 황소와 곰 사이의 상대적 힘을 결정하기 위해 두 값을 비교
    • 더 강한 방향은 진입에 대한 보조 판단으로 사용됩니다.
  3. 두 가지 지표의 합성 판단

    • 이중 이동 평균 지표는 주요 트렌드 방향을 판단합니다.
    • 황소 곰 힘 균형 지표는 지역 지역 판단
    • 두 지표가 일관된 판단을 할 때 거래 신호를 발행합니다.

이점 분석

이 조합 전략의 가장 큰 장점은 더 신뢰할 수있는 거래 판단을 달성하기 위해 다양한 종류의 지표를 통합하는 것입니다. 구체적으로 다음과 같은 장점이 있습니다.

  1. 주요 방향을 결정하기 위해 이중 이동 평균을 사용하여 지역 변동에 속지 마십시오.
  2. 특정 입력 지점을 정확하게 파악하기 위해 지역 지역 판단을 위해 황소 곰 힘 균형 지표를 사용
  3. 두 종류의 지표가 서로 확인되고 거래 위험을 줄이기 위해 일부 잘못된 작업을 필터링 할 수 있습니다.
  4. 다양한 시장 품종에 최적화 할 수있는 유연한 매개 변수 설정
  5. 전략 아이디어는 간단하고 명확하고 이해하기 쉽고 나중에 최적화 할 수 있습니다

위험 분석

이 전략의 몇 가지 위험 요소는 다음과 같습니다.

  1. 지표 신호의 지연은 깊은 스톱 손실 지점 이상으로 이어질 수 있습니다.
  2. 이중 이동 평균 지표는 매개 변수 설정에 민감합니다.
  3. 황소 곰 균형 지표는 단기 동향을 판단하는 데 약간 낮은 정확도를 가지고 있습니다.
  4. 특정 시장 조건에서 두 지표 모두에 대한 판단 편차가 발생할 수 있습니다 (일반적인 잘못된 파업 신호)

대책:

  1. 적당하게 유지 기간을 단축하거나 적절한 이동 중지 손실을 설정
  2. 최적의 매개 변수를 찾기 위해 다른 매개 변수 조합을 테스트
  3. 확인을 위해 다른 지표를 참조하십시오.
  4. 다양한 품종의 특성에 따라 매개 변수를 최적화

최적화 방향

이 전략은 다음 측면에서 더 이상 최적화 될 수 있습니다.

  1. 더 많은 이동 평균 지표 매개 변수 조합을 테스트합니다.
  2. 단일 스톱 손실을 통제하기 위해 스톱 손실 전략을 증가
  3. 변동성 지표를 포함하여 매개 변수 자체 적응성을 개선합니다.
  4. 동적 매개 변수 최적화를 달성하기 위해 기계 학습 모델을 추가
  5. 다른 트렌드를 따르는 지표를 시도하여 황소 곰 힘 균형을 대체하십시오.
  6. 다양한 매개 변수를 쉽게 사용자 테스트를 위해 시각 인터페이스를 개발

결론

이 전략은 이중 이동 평균 지표를 통해 주요 추세를 판단하고 입시 시기를 결정하는 데 도움이되는 황소 곰 힘 균형 지표를 사용합니다. 두 지표는 서로를 확인하고 잘못된 작업의 확률을 효과적으로 줄일 수 있습니다. 전략 매개 변수는 유연하며 다양한 품종에 최적화 할 수 있습니다. 전반적으로 전략은 간단하고 실용적이며 대부분의 투자자가 배우고 사용하는 가치가 있습니다. 후속 최적화는 전략 성능을 더욱 향상시킬 수 있습니다.


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

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/05/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
//    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. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


BBB(SellLevel,BuyLevel) =>
    pos = 0.0
    value = close < open ? 
              close[1] > open ?  math.max(close - open, high - low) : high - low : 
                 close > open ? 
                  close[1] > open ? math.max(close[1] - low, high - close) : math.max(open - low, high - close) :
                   high - close > close - low ? 
                     close[1] > open ? math.max(close[1] - open, high - low) :high - low : 
                      high - close < close - low ? 
                         close > open ? math.max(close - low, high - close) : open - low : 
                           close > open ? math.max(close[1] - open , high - close) :
                             close[1] < open ? math.max(open - low, high - close) : high - low
    
    value2 =close < open ? 
              close[1] < open ?  math.max(high - close[1], close - low) : math.max(high - open, close - low) : 
               close > open ? 
                 close[1] > open ?  high - low : math.max(open - close[1], high - low) : 
                  high - close > close - low ? 
                   close[1] < open ? math.max(high - close[1], close - low) : high - open : 
                     high - close < close - low ? 
                      close[1] > open ?  high - low : math.max(open - close, high - low) : 
                       close[1] > open ? math.max(high - open, close - low) :
                         close[1] < open? math.max(open - close, high - low): high - low
    nBBB = value2 - value
    pos :=  nBBB < SellLevel ? -1 :
    	     nBBB >= BuyLevel ? 1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Bull And Bear Balance', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════  Bull And Bear Balance ═════●'
SellLevel = input.float(-15, step=0.01, group=I2)
BuyLevel = input.float(15, step=0.01, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosBBB = BBB(SellLevel,BuyLevel)
iff_1 = posEMA20 == -1 and prePosBBB == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBBB == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
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)

더 많은