다중 요인 모멘텀 반전 조합 전략


생성 날짜: 2023-11-21 11:20:31 마지막으로 수정됨: 2023-11-21 11:20:31
복사: 1 클릭수: 338
1
집중하다
1166
수행원

다중 요인 모멘텀 반전 조합 전략

개요

이 전략은 반전 인자와 동력 인자를 결합한 다중 요소 조합 전략으로, 시장의 반전 기회를 발견하는 것을 목적으로 한다. 전략은 먼저 장기 부정 반전 인자를 사용하여 상쇄 하락 후의 반전 기회를 식별하고, 동력 지표를 사용하여 두 번째 필터링을 수행하여 큰 추세 아래의 반전 가짜 신호를 필터링하여 단선 반전 중개 기회를 잠금한다.

전략 원칙

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

  1. 123 회전 인자

이 부분은 일내 역전 사고를 적용하여 전날의 종결 가격과 전날의 종결 가격의 관계를 판단하고, 느린 속도 K 선의 역전 기회를 식별합니다. 구체적인 논리는 다음과 같습니다:

  • 구매 신호: 2일 연속으로 종전 가격 하락 후 종전 가격 상승, 그리고 9일 동안 느린 K 선이 50보다 낮으면 구매 신호가 발생한다.

  • 판매 신호: 2일 연속으로 종전 가격 상승 후 종전 가격 하락, 그리고 9일 빠른 K선 50 이상이면 판매 신호가 발생한다.

  1. 엘그딕 동력 흔들림 지표 (ETSI)

이 부분은 세 EMA 평평한 가격 동력의 방법을 사용하여 동력 지표를 구성한다. 지표 공식은 다음과 같다:

   xPrice1 = close - close[1]  
   xPrice2 = abs(close - close[1])
   xSMA_R = EMA(EMA(EMA(xPrice1,r), s), u) 
   xSMA_aR = EMA(EMA(EMA(xPrice2, r), s), u)
   xTSI = xSMA_R / xSMA_aR * 100
   xEMA_TSI = EMA(xTSI, N)

그 중, xSMA_R는 가격 동력의 EMA 평준화 값, xSMA_aR는 가격 변동의 폭에 대한 EMA 평준화 값, xTSI는 둘의 비율을 구성한 동력 지표, xEMA_TSI는 xTSI의 다시 EMA 평준화 이다. 이 지표는 거래 신호로서 xTSI와 xEMA_TSI의 관계를 판단한다.

마지막으로, 전략은 두 부분의 신호를 AND 연산하여, 두 부분의 인자가 동방향으로 신호를 발산할 때만 실제 거래 지시를 생성한다.

전략적 이점

이 전략의 가장 큰 장점은 가짜 신호를 필터링하고 고품질 거래 기회를 발견 할 수있는 다중 요소 설계입니다. 구체적으로 다음 세 가지가 있습니다.

  1. 123 회전 인자는 정리 하락 후의 단기 회전 지점을 식별할 수 있다.

  2. 엘그딕 동력 지표는 큰 트렌드의 방향을 효과적으로 판단하고, 반전 신호가 큰 트렌드에서 발생하지 않도록 하여 가짜 신호를 필터링한다.

  3. 두 부분의 신호는 AND 연산을 적용하여 신호 품질을 향상시키고 전략 안정성을 강화한다.

전략적 위험

이 전략은 다요소적 설계로 위험을 통제하고 있지만, 다음과 같은 주요 위험은 여전히 존재합니다.

  1. 반전 신호는 흔들림 트렌드 중에 발생할 수 있으며 수익을 창출할 수 없습니다.

  2. 두 요소 사이에 파라미터를 설정하는 것은 주관성이 있으며 특정 품종에 적합하지 않을 수 있다.

  3. 반전 후 가격 재조정이 손실 위험을 증가시킬 수 있다.

이러한 위험은 더 많은 품종에 적응하기 위해 파라미터를 최적화하고, 반전 후 보유 시간을 제어하고, 지표 관계의 변화를 실시간으로 모니터링하는 등의 방법으로 완화될 수 있다.

전략 최적화

이 전략은 다음의 몇 가지 측면에서 최적화될 수 있습니다.

  1. 두 인자의 변수를 조정하여 더 잘 일치하는 데이터 샘플을 찾습니다.

  2. 단독 손실을 통제하기 위한 전략이 추가되었습니다.

  3. 트렌드 품종과 진동 품종에 대해 다른 파라미터 조합을 사용한다.

  4. 더 높은 성과를 내는 요소들이 더 큰 무게를 가질 수 있도록 요소 중량 메커니즘을 늘립니다.

  5. 기계 학습 알고리즘을 추가하여 매개 변수의 자동 최적화 및 업데이트를 구현한다.

요약하다

이 전략은 반전 인자와 동력 지표를 성공적으로 결합하여 다중 인자 최적화 디자인을 구현한다. 그것은 단기 반전 기회를 효과적으로 식별하고 동력 지표를 사용하여 신호를 2차 검증하여 전략의 승률을 높인다. 전략에는 여전히 개선의 여지가 있지만, 핵심 아이디어는 양적 전략의 설계에 대한 좋은 참조를 제공합니다.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/07/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
// r - Length of first EMA smoothing of 1 day momentum        4
// s - Length of second EMA smoothing of 1 day smoothing      8    
// u- Length of third EMA smoothing of 1 day momentum         6  
// Length of EMA signal line                                  3
// Source of Ergotic TSI                                      Close
//
// This is one of the techniques described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). If you like to learn more, we advise you to 
// read this book. His book focuses on three key aspects of trading: momentum, 
// direction and divergence. Blau, who was an electrical engineer before becoming 
// a trader, thoroughly examines the relationship between price and momentum in 
// step-by-step examples. From this grounding, he then looks at the deficiencies 
// in other oscillators and introduces some innovative techniques, including a 
// fresh twist on Stochastics. On directional issues, he analyzes the intricacies 
// of ADX and offers a unique approach to help define trending and non-trending periods.  
//
// 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


ETSI(r,s,u,SmthLen) =>
    pos = 0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(ema(xPrice1,r), s),u)
    xSMA_aR = ema(ema(ema(xPrice2, r), s),u)
    Val1 = 100 * xSMA_R
    Val2 = xSMA_aR
    xTSI = iff (Val2 != 0, Val1 / Val2, 0)
    xEMA_TSI = ema(xTSI, SmthLen)
    pos:= iff(xTSI > xEMA_TSI, 1,
    	   iff(xTSI < xEMA_TSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic TSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(4, minval=1)
s = input(8, minval=1)
u = input(6, minval=1)
SmthLen = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posETSI = ETSI(r,s,u,SmthLen)
pos = iff(posReversal123 == 1 and posETSI == 1 , 1,
	   iff(posReversal123 == -1 and posETSI == -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 )