여러 시간 프레임 스토카스틱 크로스오버 전략

저자:차오장, 날짜: 2023-10-24 14:44:00
태그:

img

전반적인 설명

멀티 타임프레임 스토카스틱 크로스오버 전략은 트렌드를 따르는 전형적인 전략이다. 그것은 다른 시간 프레임 (예를 들어, 매일, 주, 월 등) 에서 표준편차 값을 계산하고, 여러 K 및 D 라인을 구성하고, 이동 평균을 만들기 위해 이러한 라인의 평균을 취하고, 빠른 라인이 느린 라인을 넘어서면 길고 빠른 라인이 느린 라인을 넘어서면 짧습니다. 여러 시간 프레임에서 표준편차 라인을 결합함으로써이 전략은 시장 소음을 효과적으로 필터링하고 지배적인 트렌드를 포착 할 수 있습니다.

전략 논리

이 전략의 핵심 논리는 여러 시간 프레임에 걸쳐 표준 편차를 계산하고 평균을 취해서 거래 신호를 생성하는 것입니다.

첫째, 전략은 매일, 주간 및 월간 시간 프레임에 대응하는 5 그룹에 걸쳐 다른 매개 변수에서 표준 편차의 K 값을 계산합니다.

smoothK = input(55)
SMAsmoothK = input(13)  
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)

smoothK1 = input(89) 
SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1) 

...

smoothK4 = input(377)
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

그 다음에는 각각 다른 매개 변수를 가진 D 직선을 계산합니다.

smoothD = input(34)
d = sma(k, smoothD)  

...

smoothD4 = input(233) 
d4 = sma(k4, smoothD4)

다음으로, K와 D 직선의 평균을 계산하여 빠른 직선 Kavg와 느린 직선 Davg를 얻습니다.

Kavg = avg(k,k1,k2,k3,k4)
Davg = avg(d,d1,d2,d3,d4)

마지막으로, Kavg가 Davg 위를 넘을 때 길고, Kavg가 Davg 아래를 넘을 때 짧습니다.

long = crossover(Kavg, Davg)  
short = crossunder(Kavg, Davg)

여러 시간 프레임에 표준 오차 라인을 결합함으로써, 이 전략은 더 큰 시간 프레임에서 시장 소음을 필터링하고 지배적인 트렌드 방향을 포착 할 수 있습니다.

장점

  • 소음을 필터링하고 트렌드를 포착하기 위해 여러 시간 프레임에서 표준편차의 예측 능력을 활용합니다.
  • 시간 프레임 매개 변수를 조정하여 유지 기간을 조정할 수 있는 유연성
  • 표준편차 자체는 다음과 같은 특성에 강한 경향을 나타냅니다.
  • 이동 평균 크로스오버는 단일 가짜 브레이크오버에 의해 오해되는 것을 피합니다.
  • 더 많은 안정성을 위해 이동 평균 기간을 최적화하는 것이 쉽습니다.

위험 과 해결책

  • 여러 시간 프레임 이동 평균 크로스오버는 많은 잘못된 신호를 생성 할 수 있습니다. 이동 평균 기간을 최적화합니다.
  • 표준편차는 변동적인 움직임으로 인한 오류에 취약합니다. 필터를 추가하는 것을 고려하십시오.
  • 고정 기간은 시장 변화에 적응할 수 없습니다. 적응 기간을 채택하십시오.
  • 장기간 보유 기간은 상위와 하위 추격 위험을, 수익을 잠금 하 고 후속 정지 사용
  • KDJ 지표에만 의존하는 것은 제한적입니다. 다른 지표와 결합하십시오.

해결책:

  1. 가짜 브레이크오웃 신호를 피하기 위해 필터를 추가

  2. 시장 변동성에 기초한 적응 기간을 사용

  3. 트레이링 스톱을 사용하여 적시에 거래를 종료하십시오.

  4. 가장 좋은 균형을 위해 이동 평균 기간을 최적화

  5. 탄력성을 높이기 위해 더 많은 지표를 포함

더 나은 기회

이 전략은 다음 영역에서 더 향상될 수 있습니다.

  1. 신호 품질을 향상시키기 위해 MACD, 볼링거 밴드와 같은 다른 지표 신호를 통합

  2. 반대 트렌드 거래를 피하기 위해 SMA 방향, ADX와 같은 트렌드 필터를 추가합니다.

  3. 시장 변동성에 기초한 적응 기간을 활용합니다.

  4. 트레이일링 스톱을 전략 매개 변수에 기초하여 트레이드 종료에 적용합니다.

  5. 가장 좋은 매개 변수를 위해 빠르고 느린 이동 평균 기간을 최적화

  6. 단기 소음에서 잘못된 신호를 피하기 위해 입력 필터를 추가

  7. 이동평균의 교차 후 테스트 브레이크오웃 엔트리

  8. 출구를 최적화하기 위해 Chandelier Exit와 같은 다른 출구 전략을 평가하십시오.

결론

멀티 타임프레임 스토카스틱 크로스오버 전략은 스토카스틱 지표의 트렌드 다음 능력과 이동 평균 전략의 안정성을 결합합니다. 신호를 생성하기 위해 여러 기간 표준편차 K 및 D 라인의 평균을 취함으로써 다른 시간 프레임에 걸쳐 표준편차의 예측 힘을 효과적으로 활용하고 시장 소음을 필터링하고 지배적인 트렌드를 캡처합니다. 이 전략은 매개 변수 조정 및 필터, 정지 등과 같은 추가 개선이 가능합니다. 전반적으로 여러 기술적 분석 도구의 강점을 통합하고 탐색 및 최적화 가치가있는 효율적인 트렌드 다음 전략입니다.


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

//@version=2
strategy(title="Slow Stochastic Multi K&D Average Crossover Strategy", overlay=false, pyramiding=0, calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100)


price = input(close)

///////////////////////////////
smoothK = input(55) 

SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)



smoothD = input(34)
d = sma(k, smoothD)


///////////////////////////

smoothK1 = input(89) 

SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)

smoothD1 = input(55)
d1 = sma(k1, smoothD1)

//////////////////////////////////////

smoothK2 = input(144) 

SMAsmoothK2 = input(5)
k2 = sma(stoch(price, high, low, smoothK2), SMAsmoothK2)

smoothD2 = input(89)
d2 = sma(k2, smoothD2)

/////////////////////////////////////

smoothK3 = input(233) 

SMAsmoothK3 = input(3)
k3 = sma(stoch(price, high, low, smoothK3), SMAsmoothK3)

smoothD3 = input(144)
d3 = sma(k3, smoothD3)

////////////////////////////////////////////////

smoothK4 = input(377) 

SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

smoothD4 = input(233)
d4 = sma(k4, smoothD4)

/////////////////////////////////////////////////

Kavg = avg(k,k1,k2,k3,k4, k4)
plot(Kavg, color=green)

Davg = avg(d,d1,d2,d3,d4, d4)
plot(Davg, color=red)


///////////////////////////////////////
hline(50, color=gray)


long = crossover(Kavg, Davg)// and d < 50
short = crossunder(Kavg, Davg)// and d > 50


last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) 
short_signal = crossover(last_short, last_long)



strategy.entry("Long", strategy.long, when=long_signal)
strategy.entry("Short", strategy.short, when=short_signal) 

//len1 = input(3)

//closelong = d[1] < k[len1]
//closeshort = d[1] > k[len1]

//strategy.close("Long", when=closelong)
//strategy.close("Short", when=closeshort)



더 많은