종합 스토카스틱 오시레이터와 123 역전 전략

저자:차오장, 날짜: 2023-10-26 17:00:27
태그:

img

전반적인 설명

이 전략은 123 반전 패턴과 스토카스틱 오시레이터를 결합하여 가격이 하위 반전을 표시하고 스토카스틱 오시레이터도 하위에서 반전되면 구매 신호를 생성합니다. 그것은 하위 반전을 효과적으로 식별 할 수 있으며 이중 확인 필터는 거래 빈도를 줄이고 신호 정확도를 향상시킬 수 있습니다.

전략 논리

  1. 123 역전 전략

    • 매수 신호는 종료 가격이 이전 2 일 종료 가격보다 높고 9 일 스토카스틱 빠른 라인이 느린 라인 아래와 50 이하인 경우 생성됩니다.

    • 판매 신호는 종료 가격이 이전 2 일 종료 가격보다 낮고 9 일 스토카스틱 빠른 라인이 느린 라인 위에 있고 50 이상이라면 생성됩니다.

  2. 스토카스틱 오시레이터 전략

    • 구매 신호는 스토카스틱 %K 라인이 상단 범위를 넘으면 생성됩니다. (디폴트 20).

    • 판매 신호는 스토카스틱 %K 라인이 하위 밴드 (디폴트 80) 아래로 넘어가면 생성됩니다.

  3. 이중 확인

    구매 신호는 123 역전 및 스토카스틱 전략이 구매 신호를 제공 할 때만 생성됩니다. 판매 신호는 비슷합니다. 이 이중 확인은 잘못된 신호를 필터링하고 정확도를 향상시킬 수 있습니다.

장점

  1. 이중 확인은 소음을 필터링하고 신호 정확도를 향상시킵니다.

  2. 123 회전값은 하위와 상위 회전값을 잡습니다. 스토카스틱은 거짓 파장을 피합니다.

  3. 스토카스틱은 과잉 구매와 과잉 판매를 효과적으로 식별합니다. 123 회전과 큰 일치입니다.

  4. 매개 변수 조정으로 높은 최적화 유연성

  5. 간단한 논리, 이해하기 쉬운, 초보자에게 좋습니다.

위험성

  1. 이중 확인은 몇 가지 기회를 놓치고 거래 빈도를 줄일 수 있습니다.

  2. 스토카스틱은 잘못된 신호를 생성할 수 있습니다. 신중한 검사가 필요합니다.

  3. 적절한 매개 변수 조정이 필요합니다. 잘못된 설정은 성능에 영향을 미칩니다.

  4. 반전 패턴이 있는 시장에서만 작동합니다. 지속적인 트렌드에서는 아닙니다.

  5. 전략 신호를 엄격히 따르고 자신의 판단에 의한 편견을 피하십시오.

리스크 솔루션: 매개 변수를 최적화하고 신호를 엄격히 따르고 적용 가능한 시장 조건을 조정합니다.

최적화 방향

  1. 안정성을 높이기 위해 스토카스틱 매개 변수를 최적화해

  2. 스톱 로스 전략을 추가합니다.

  3. 신호 품질을 향상시키기 위해 볼륨 확인과 같은 필터를 추가합니다.

  4. 다른 역전 전략과 스토카스틱의 조합을 테스트합니다.

  5. 매개 변수를 훈련하고 최적화하기 위해 기계 학습을 활용합니다.

  6. 다양한 시장에서 전략을 적용하여 견고성을 테스트합니다.

  7. 다른 지표들과의 조합을 탐구합니다.

결론

이 전략은 스토카스틱 오시일레이터와 123 역전 패턴을 결합하여 바닥 역전 기회를 효과적으로 잡습니다. 단일 지표와 비교하면 멀티 지표 조합은 신호 품질과 승률을 크게 향상시킵니다. 여전히 개선할 여지가 있지만 전반적인 논리는 간단하고 이해하기 쉽기 때문에 초보자의 라이브 거래 연습에 이상적입니다. 반복적인 테스트와 최적화로 매개 변수는 일관성있는 긍정적 결과를 위해 더 견고해질 수 있습니다.


/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/07/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 up UpBand line.
// It generates a short trade at the Open of the following bar when the %K line 
// crosses down DownBand line.
//
// 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


Stochastic(Length,DLength,UpBand,DownBand) =>
    pos = 0.0
    vFast = stoch(close, high, low, Length)
    vSlow = sma(vFast, DLength)
    pos := iff(vFast > UpBand, 1,
	         iff(vFast < DownBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic", 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 ----")
LengthS = input(7, minval=1)
DLengthS = input(3, minval=1)
UpBand = input(20, minval=1)
DownBand = input(80, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posStochastic = Stochastic(LengthS,DLengthS,UpBand,DownBand)
pos = iff(posReversal123 == 1 and posStochastic == 1 , 1,
	   iff(posReversal123 == -1 and posStochastic == -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 )

더 많은