Stochastic Index 지표를 기반으로 한 단기 거래 전략


생성 날짜: 2024-01-18 16:14:34 마지막으로 수정됨: 2024-01-18 16:14:34
복사: 0 클릭수: 632
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

Stochastic Index 지표를 기반으로 한 단기 거래 전략

개요

이 전략은 스토카스틱 인덱스 ((SMI) 지표에 기반한 단선 거래 전략을 설계했으며 주식과 디지털 화폐의 단선 거래에 주로 사용된다. 이 전략은 스토카스틱 인덱스 지표의 오버 바이 오버 셀 신호와 이동 평균의 확인을 결합하여 트렌드 시장에서 중간 회전을 포착하여 더 나은 입시 지점을 제공합니다.

전략 원칙

이 전략은 주로 스토카스틱 인덱스 지표를 사용하여 시장의 과매매 지역을 판단합니다. 스토카스틱 인덱스 지표의 계산 공식은 다음과 같습니다.

SMI = (MA(Close - LL)/(HH - LL)) * 100

그 중, LL은 N일간의 최저 가격,HH는 N일간의 최고 가격이다. 이 지표의 설계 사상은, 종결 가격이 N일간의 최고 가격에 가까워지면, 시장은 초매 상태에 있다. 종결 가격이 N일간의 최저 가격에 가까워지면, 시장은 초매 상태에 있다.

이 전략에서는, SMA 지표 변수 N를 5와 3로, 5일과 3일의 Stochastic Index을 나타냅니다. 일반적으로 단 하나의 변수를 사용하면 잘못된 신호가 발생하기 쉽기 때문에 이 전략은 쌍 SMA 이중 확인을 사용하여 약간의 잡음을 필터링 할 수 있습니다.

또한, 전략에는 이동 평균 EMA 지표가 중첩되어 있으며, 매개 변수가 SMI 지표와 일치하도록 설정되어 SMI 지표의 신호를 추가로 확인하고, 잘못된 판단을 방지합니다.

전략적 이점

  1. 스토카스틱 인덱스 (Stochastic Index) 를 기반으로 오버 바이 오버 셀 영역을 판단하여 역전 기회를 잡습니다.
  2. 이중 SMA 파라미터를 설정하여 오류 신호를 효과적으로 필터링할 수 있습니다.
  3. EMA 지표와 함께 확인하여 잘못된 판단을 피하십시오.

전략적 위험

  1. SMI 지표는 잘못된 신호를 발생하기 쉽다. SMA와 EMA 지표가 쌍으로 설정되어 있더라도 위험을 완전히 피할 수 없습니다.
  2. 동향상 상황에서는 이 전략이 과도한 역동성을 유발하여 전체 수익에 영향을 미칠 수 있습니다.

위험 회피:

  1. 단편적 손실을 제어하기 위한 중지
  2. 이 전략은 사이드웨이 또는 범위 거래 시장에서만 사용하며, 트렌드 상황에서는 사용하지 마십시오.

전략 최적화 방향

  1. 다양한 변수 설정 하에서 SMI 지표를 테스트하여 최적의 변수 조합을 찾습니다.
  2. 다른 지표와 결합하여 확인을 시도합니다. 예를 들어, 브린 밴드, KDJ 등으로 신호의 정확도를 향상시킵니다.
  3. 시장의 변동성에 따라 변경 가능한 상쇄 손실을 설정하여 상쇄 손실 전략을 최적화하십시오.
  4. 동향을 판단하는 지표와 결합하여 동향 상황에서 사용하는 것을 피하십시오.

요약하다

이 전략은 전반적으로 짧은 라인 거래에 적합한 전략이다. 이 전략은 Stochastic Index 지표의 과매매 과매매 특성을 결합하여 이동 평균과 함께 신호 필터링 및 확인을 수행하여 일부 단선 거래 기회를 식별 할 수 있다. 그러나 이 전략은 추세 상황에서 잘못된 신호를 발생시키는 경향이 있으므로 사용 할 때 특별한 주의가 필요합니다. 이러한 상황을 피하기 위해 추세 판단 지표와 함께 사용하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="SMIndex Strategy", shorttitle="SMIndex Strategy", overlay=false, pyramiding=0, initial_capital=1000, currency=currency.USD)
//
sm1 = input(5, 'sm1')
sm2 = input(3, 'sm2')
//
Lower = lowest (low, sm1)
Hight = highest (high, sm1)
Downsideup = Hight - Lower
Upsidedown = close - (Hight+Lower)/2
//
ema1 = ema(ema(Upsidedown,sm2),sm2)
ema2 = ema(ema(Downsideup,sm2),sm2)
smi = ema2 != 0 ? (ema1/(ema2/2)*100) : 0
//
obLevel1 = input(55, "Over Bought Level 1")
obLevel2 = input(35, "Over Bought Level 2")
osLevel1 = input(-55, "Over Sold Level 1")
osLevel2 = input(-35, "Over Sold Level 2")
//
// h1=plot(obLevel1, color=red, title='Sell 1s 55 do', style=dashed, linewidth=2)
// h2=plot(obLevel2, color=maroon, title='Sell 2s 35 do', style=circles, linewidth=2)
// h3=plot(osLevel1, color=red, title='Buy 1s -55 up', style=dashed, linewidth=2)
// h4=plot(osLevel2, color=maroon, title='Buy 2s -35 up', style=circles, linewidth=2)
plot(smi, color=gray, style=line, linewidth=0, transp=5)
plot(ema1, color=orange, style=line, linewidth=0, transp=5)
plot(0, color=gray, style=circles, linewidth=1, title='Base Line')
//
// fill(h1, h2, color=red, transp=55)
// fill(h3, h4, color=green, transp=55)
//Strategy Long Short Entry
longEntry = (smi) < -75 or (smi) < -65 or (smi) < -55 or (smi) < -45 
shortEntry = (smi) > 75 or (smi) > 65 or (smi) > 55 or (smi) > 45 

longCondition = longEntry
if(longCondition)
    strategy.entry("long", strategy.long)
    
shortCondition = shortEntry
if(shortCondition)
    strategy.entry("short", strategy.short)