이 전략은 시장에서 반전 기회를 발견하기 위해 반전 요인과 동력 요인을 결합하는 다중 요인 조합 전략이다. 전략은 먼저 범위 제한 하락 후 반전 기회를 식별하기 위해 장기 반전 요인을 사용하고, 그 다음 단기 반전 중재 기회를 잠금하기 위해 주요 트렌드 하에서 잘못된 반전 신호를 필터링하기 위해 2차 검사를위한 동력 지표를 사용합니다.
이 전략은 두 부분으로 구성됩니다.
123 반전 요인
이 부분은 하루 내 반전 개념을 사용하여 전날의 종료 가격과 2일 전의 종료 가격 사이의 관계를 결정하여 느린 K-라인으로 전환 기회를 식별합니다. 구체적인 논리는 다음과 같습니다.
매수 신호: 매수 가격이 2일 연속 하락한 후, 매수 가격이 당일 상승하고, 9일 느린 K 라인이 50보다 낮으면 매수 신호가 생성됩니다.
판매 신호: 폐쇄 가격의 2 일 연속 상승 후, 현재 날에 종료 가격이 하락하고, 9 일 빠른 K 라인이 50보다 높으면 판매 신호가 생성됩니다.
에일러스 동적 모멘텀 오시레이터 (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의 2차 EMA 평형이다. 지표는 xTSI와 xEMA_TSI 사이의 관계에 기초하여 거래 신호 방향을 결정한다.
마지막으로, 전략은 두 부분의 신호를 AND하고, 두 요소의 신호가 일치할 때만 실제 거래 명령을 발행합니다.
이 전략의 가장 큰 장점은 잘못된 신호를 필터링하고 고품질의 거래 기회를 발견 할 수있는 다중 요소 설계에 있습니다. 구체적으로 세 가지 주요 포인트가 있습니다.
123 반전 요인은 범위 제한 하락 후 단기 리바운드 포인트를 식별 할 수 있습니다.
에일러스 모멘텀 지표는 주요 트렌드의 방향을 효과적으로 결정할 수 있습니다. 주요 트렌드 아래에서 발생하는 반전 신호를 피하기 위해 잘못된 신호를 필터링합니다.
두 신호 부분의 AND 동작은 신호 품질을 향상시키고 전략 안정성을 향상시킬 수 있습니다.
비록 전략은 위험을 통제하기 위해 여러 요소를 채택하지만, 여전히 다음과 같은 주요 위험이 있습니다.
역전 신호가 변동 추세에서 발생하고 수익을 얻지 못할 수 있습니다.
두 요소 사이의 매개 변수 설정에는 주관성이 있으며 특정 제품에 너무 적합 할 수 있습니다.
가격 반전 후 손실 증가 위험이 다시 반전됩니다.
이러한 위험은 더 많은 품종에 적응하도록 매개 변수를 최적화하고, 반전 후 포지션을 제어하고, 지표 관계의 변화의 실시간 모니터링 및 기타 방법을 통해 완화 할 수 있습니다.
이 전략을 최적화하는 주요 측면은 다음과 같습니다.
두 가지 요소의 매개 변수를 조정하여 더 잘 일치하는 데이터 샘플을 찾습니다.
단일 손실을 통제하기 위한 스톱 로스 전략을 늘려
트렌딩과 오스실레이션 품종에 대한 다른 매개 변수 조합을 사용.
더 좋은 성능을 보이는 요소에 더 큰 무게를 부여하기 위해 요소 가중화 메커니즘을 증가시키는 것.
자동 최적화 및 매개 변수 업데이트를 달성하기 위해 기계 학습 알고리즘을 증가시킵니다.
이 전략은 복수 요인 최적화 디자인을 달성하기 위해 반전 요인과 추진량 지표를 성공적으로 결합합니다. 단기적 역전 기회를 효과적으로 식별하고 신호의 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 )