이중 요인 추진력 추적 역전 전략

저자:차오장, 날짜: 2024-01-18 11:33:40
태그:

img

전반적인 설명

이 전략은 가격 반전 요인과 주식 동력 요인을 결합하여 단기적 반전과 시장의 장기적 지속에서 발생하는 기회를 포착하기 위한 이중 요인 모델을 구축합니다. 먼저 123 차트 패턴을 사용하여 단기적 가격 반전 신호를 결정하고, 중장기적 경향을 판단하기 위해 Laguerre RSI 지표를 통합하여 궁극적으로 이중 요인 신호의 효과적인 통합을 달성합니다.

전략 원칙

이 전략은 두 부분으로 구성됩니다.

  1. 123 반전 패턴 요인

    이 부분에서는 지난 2일 동안의 폐쇄 가격의 변화를 조사함으로써 단기 가격 반전 신호를 감지합니다. 구체적으로, 어제의 폐쇄 가격이 전날의 두 일보다 낮고 오늘의 폐쇄 가격이 어제보다 높으면 상승 가격 반전 신호로 결정 될 수 있습니다. 주식 지표는 판단을 돕기 위한 보조 수단으로 사용됩니다.

  2. 라구레 필터 RSI 요인

    이 부분은 라거 필터를 사용하여 더 반응적인 RSI 지표를 만듭니다. 가격 변화에 대한 전통적인 RSI 지표의 민감도는 상대적으로 낮습니다. 반대로, 라거 필터는 적은 역사적 데이터를 사용하여 지표를 구성하여 가격 변동에 대한 민감도를 향상시킬 수 있습니다. 새로운 RSI 지표는 중장기 트렌드를 결정하는 데 사용됩니다.

궁극적으로 전략은 두 가지 요인으로부터의 신호를 결합하여 전반적인 시장 추세에 맞춰 단기적 반전이 발생하도록 보장하여 리트레이싱 기회를 활용합니다.

전략 의 장점

이 전략의 가장 큰 장점은 반전 요인과 트렌드 요인의 성공적인 조합에 있다. 반전 요인은 가격 통합 후 단기적 인 회귀 기회를 포착하고, 트렌드 요인은 전체 장기 / 단기 편향이 변하지 않도록 보장합니다. 독립적인 반전 또는 추진력 모델에 비해 이 이중 요인 모델은 잘못된 신호를 낮추면서 장기 / 단기 신호의 정확성을 향상시킬 수 있습니다.

또한, 라구에르 RSI의 도입은 가격 변화에 대한 모델의 감수성을 높이고, 이는 특히 고주파 거래에 매우 중요합니다.

위험 분석

이 전략이 직면하는 주요 위험은 두 가지 요인으로부터의 충돌 신호의 가능성이다. 특히 변동적인 시장 보정 과정에서 단기 가격은 종종 역전될 수 있으며 중장기 트렌드도 변화하기 시작합니다. 그러한 경우 두 가지 유형의 신호가 쉽게 부합하거나 지연을 경험할 수 있습니다. 이것은 잘못된 전략 신호와 놓친 진입 기회 또는 불필요한 손실로 이어집니다.

또한, 열악한 매개 변수 구성은 또한 열악한 전략 성과를 초래할 수 있다. 역전 및 트렌드 요인에 속하는 기술적 지표의 매개 변수는 별도로 최적화 및 테스트되어야 한다. 부적절한 매개 변수 조합은 전략의 효과를 크게 감소시킬 수 있다.

최적화 방향

이 전략의 미래의 최적화의 주요 초점은 신호 필터링과 매개 변수 선택입니다. 더 많은 필터링 조건이 이중 요소 신호 충돌 시 효력을 발휘하도록 도입 될 수 있으며, 거래가 고확정 시나리오에서만 이루어지는 것을 보장합니다. 이것은 잘못된 신호를 크게 줄일 수 있습니다.

매개 변수 선택의 경우 기계 학습 및 과학적 실험 방법을 사용하여 다양한 매개 변수 조합을 체계적으로 테스트하여 최적의 구성에 도달 할 수 있습니다. 이것은 상당한 컴퓨팅 힘을 필요로하지만 전략의 안정성을 크게 향상시킬 수 있습니다.

요약

이 전략은 단기적 인퇴와 중장기적 인 지속성을 활용하기 위해 이중 요인 모델을 통해 역전 및 트렌드 요인을 성공적으로 통합했습니다. 라구레 필터 RSI의 도입은 가격 변화에 대한 모델 민감도를 향상시킵니다. 다음 단계는 전략을 더욱 향상시키기 위해 신호 필터링 및 매개 변수 최적화에 초점을 맞출 것입니다.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/01/2021
// 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
// This is RSI indicator which is more sesitive to price changes. 
// It is based upon a modern math tool - Laguerre transform filter.
// With help of Laguerre filter one becomes able to create superior 
// indicators using very short data lengths as well. The use of shorter 
// data lengths means you can make the indicators more responsive to 
// changes in the price.
//
// 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

LB_RSI(gamma,BuyBand,SellBand) =>
    pos = 0.0
    xL0 = 0.0
    xL1 = 0.0
    xL2 = 0.0
    xL3 = 0.0
    xL0 := (1-gamma) * close + gamma * nz(xL0[1], 1)
    xL1 := - gamma * xL0 + nz(xL0[1], 1) + gamma * nz(xL1[1], 1)
    xL2 := - gamma * xL1 + nz(xL1[1], 1) + gamma * nz(xL2[1], 1)
    xL3 := - gamma * xL2 + nz(xL2[1], 1) + gamma * nz(xL3[1], 1)
    CU = (xL0 >= xL1 ? xL0 - xL1 : 0) + (xL1 >= xL2 ? xL1 - xL2 : 0)  + (xL2 >= xL3 ? xL2 - xL3 : 0)
    CD = (xL0 >= xL1 ? 0 : xL1 - xL0) + (xL1 >= xL2 ? 0 : xL2 - xL1)  + (xL2 >= xL3 ? 0 : xL3 - xL2)
    nRes = iff(CU + CD != 0, CU / (CU + CD), 0)
    pos := iff(nRes > BuyBand, 1,
    	     iff(nRes < SellBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Laguerre-based RSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
gamma = input(0.5, minval=-0.1, maxval = 0.9)
BuyBand = input(0.8, step = 0.01)
SellBand = input(0.2, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLB_RSI = LB_RSI(gamma,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posLB_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posLB_RSI == -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 )

더 많은