다중 요인 반전 거래 전략

저자:차오장, 날짜: 2023-09-19 21:13:04
태그:

전반적인 설명

이 전략은 가격 반전을 식별하기 위해 여러 기술적 지표를 결합하여 다중 요인 중심의 반전 거래 전략으로 만들어집니다. 123 패턴을 포라라이제드 프랙탈 효율성 (PFE) 지표와 통합하여 양쪽이 잘못된 신호를 필터링하고 승리율을 향상시키기 위해 신호에 동의 할 때만 거래를합니다.

전략 논리

이 전략은 두 가지 주요 구성 요소로 구성됩니다.

  1. 123 패턴 식별: 매출 신호는 매출 시그널이 2 일 연속으로 상승하고 3 일째로 하락할 때 생성되며, 스토카스틱 빠른 라인은 느린 라인 아래에 있습니다. 판매 신호는 반대로 발생하면 생성됩니다.

  2. PFE 지표의 임계: 상위 한도를 초과한 PFE는 판매 신호를 나타내고, 하위 한도를 초과한 PFE는 구매 신호를 나타냅니다.

거래는 123 패턴과 PFE 지표가 일치할 때만 입력됩니다. 그렇지 않으면 포지션은 평평합니다.

123 패턴은 잠재적 인 반전을 식별합니다. PFE는 잘못된 브레이크오웃을 피하기 위해 트렌드 효율성을 측정합니다. 그들은 다 인자 확인을 통해 정확성을 향상시킵니다.

장점

  • 123 패턴과 PFE는 서로 검증하여 잘못된 신호를 줄입니다.
  • PFE는 가격 효율성을 평가하는 데 확실한 이론적 근거가 있습니다.
  • 다중 요인 구동으로 정확도가 향상됩니다.
  • 반전 패턴과 트렌드 지표를 결합하면 유연성을 제공합니다.
  • 변경 가능한 매개 변수

위험 및 완화

  • 개별적 인 요인 들 은 잘못된 신호 를 줄 수 있다
  • 인자 조정은 지속적인 최적화를 필요로 합니다.
  • 단기 보유 기간 위험 빈번한 스톱 러스

완화:

  1. 정확성 향상을 위한 추가 요인
  2. 강화된 견고성을 위한 매개 변수 최적화
  3. 최적의 매개 변수를 찾기 위한 자동 최적화 방법
  4. 고정 또는 후속 스톱 손실을 사용

더 나은 기회

이 전략은 다음을 통해 강화될 수 있습니다.

  1. 변동성 기반의 정지
  2. 기계 학습을 통한 모든 매개 변수 자동 최적화
  3. 강한 트렌드 중 반전 빈도를 줄이는 것
  4. 시장 변동에 대한 조정에 따른 적응 지표
  5. 리스크를 다양화하고 수익을 향상시키기 위한 포트폴리오 조합

결론

이 전략은 전환점을 식별하기 위해 여러 요인을 결합하여 이론적 건전성과 구현의 용이성을 제공합니다. 다중 요인 접근법은 단일 지표보다 정확성을 향상시킵니다. 추가 개선은 매개 변수 최적화, 스톱 로스 관리, 포트폴리오 조합 및 기타를 통해 이루어질 수 있습니다.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/04/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
// The Polarized Fractal Efficiency (PFE) indicator measures the efficiency 
// of price movements by drawing on concepts from fractal geometry and chaos 
// theory. The more linear and efficient the price movement, the shorter the 
// distance the prices must travel between two points and thus the more efficient 
// the price movement.
//
// 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


PFE(Length,LengthEMA,BuyBand,SellBand) =>
    pos = 0.0
    PFE = sqrt(pow(close - close[Length], 2) + 100)
    C2C = sum(sqrt(pow((close - close[1]), 2) + 1), Length)
    xFracEff = iff(close - close[Length] > 0,  round((PFE / C2C) * 100) , round(-(PFE / C2C) * 100))
    xEMA = ema(xFracEff, LengthEMA)
    pos := iff(xEMA < SellBand, -1,
    	      iff(xEMA > BuyBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & PFE (Polarized Fractal Efficiency)", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- PFE ----")
LengthPFE = input(9, minval=1)
LengthEMA = input(5, minval=1)
BuyBand = input(50, step = 0.1)
SellBand = input(-50, step = 0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPFE = PFE(LengthPFE,LengthEMA,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posPFE == 1 , 1,
	   iff(posReversal123 == -1 and posPFE == -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 )

더 많은