크로스오버 포집 전략으로 가격 반전

저자:차오장, 날짜: 2024-01-17 16:29:13
태그:

img

전반적인 설명

크로스오버 캡처 전략과 함께 가격 역전 전략은 가격 역전 거래 기술과 지표 크로스오버를 결합한 복합 전략이다. 먼저 가격 역전 패턴을 사용하여 거래 신호를 생성하고, 스토카스틱 오시레이터의 과잉 구매 / 과잉 판매 크로스오버로 신호를 필터하여 시장의 단기 역전을 캡처합니다.

전략 논리

이 전략은 두 가지 하위 전략으로 구성됩니다.

  1. 123 역전 전략
  • 닫기 가격이 2 일 이내에 높고 낮게 변하고 9 일 스토카스틱 지표가 하위 대역 (약수 이하) 에있을 때 구매 신호가 생성됩니다.
  • 클로즈 가격이 2일 이내에 하위에서 높은 곳으로 변하고 9일 스토카스틱 인디케이터가 상단역 (한 임계 이상) 에 있을 때 판매 신호가 생성됩니다.
  1. 스토카스틱 크로스오버 전략
  • 양쪽 라인이 오버구입 수준에 있는 동안 %K 라인이 %D 라인의 아래를 넘을 때 판매 신호가 생성됩니다.
  • 양쪽 라인이 과판 수준인 %K 라인이 %D 라인의 위를 넘을 때 구매 신호가 생성됩니다.

복합 전략은 양 부전략의 신호를 확인하고 신호가 같은 방향으로 정렬될 때만 실제 거래를 시작합니다.

장점

이 전략은 가격 역전 패턴과 지표 크로스오버를 결합하여 가격 행동과 지표 정보를 평가하여 잘못된 신호를 필터링하고 수익성을 향상시키기 위한 역전 기회를 발견하는 데 도움이됩니다.

구체적인 장점은 다음과 같습니다.

  1. 장기적인 통합 대기 없이 빠르게 시장 전환을 포착하는 것
  2. 두 가지 하위 전략의 이중 검증으로 신호 정확도가 증가합니다.
  3. 가격 행동 및 지표 분석을 결합한 더 나은 승률

위험성

이 전략에는 몇 가지 위험도 있습니다.

  1. 높은 변동성 동안 가격이 급격히 역전 될 수 있으며 잘못된 신호를 유발할 수 있습니다.
  2. 표시기 매개 변수 조정이 안되면 신호 품질에 영향을 줍니다.
  3. 회전 시점에 대해 확실하지 않습니다, 약간의 시간 위험이 있습니다

이러한 위험은 매개 변수를 조정하거나 스톱 손실 등을 사용하여 관리 할 수 있습니다.

더 나은 기회

전략이 향상될 수 있는 몇 가지 방법:

  1. 지표 매개 변수를 최적화
  2. 부피와 같은 다른 필터를 추가합니다
  3. 기호 및 시장 조건에 기반한 매개 변수를 사용자 정의
  4. 리스크 통제를 위해 스톱 로스를 포함
  5. 신호 식별을 위해 기계 학습을 사용

결론

크로스오버 캡처 전략과 함께 가격 반전은 위험을 통제하면서 수익을 창출하기 위해 여러 상호 보완적인 전략을 결합합니다. 지속적인 개선으로 변화하는 시장에서 번영하는 효율적인 전략으로 조정 될 수 있습니다.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/09/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 back testing strategy generates a long trade at the Open of the following 
// bar when the %K line crosses below the %D line and both are above the Overbought level.
// It generates a short trade at the Open of the following bar when the %K line 
// crosses above the %D line and both values are below the Oversold level.
//
// 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


StochCross(Length, DLength,Oversold,Overbought) =>
    pos = 0.0
    vFast = stoch(close, high, low, Length)
    vSlow = sma(vFast, DLength)
    pos := iff(vFast < vSlow and vFast > Overbought and vSlow > Overbought, 1,
    	      iff(vFast >= vSlow and vFast < Oversold and vSlow < Oversold, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic Crossover", 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, "---- Stochastic Crossover ----")
LengthSC = input(7, minval=1)
DLengthSC = input(3, minval=1)
Oversold = input(20, minval=1)
Overbought = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posmStochCross = StochCross(LengthSC, DLengthSC,Oversold,Overbought)
pos = iff(posReversal123 == 1 and posmStochCross == 1 , 1,
	   iff(posReversal123 == -1 and posmStochCross == -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 )

더 많은