스토카스틱 인덱스에 기초한 단기 거래 전략

저자:차오장, 날짜: 2024-01-18 16:14:34
태그:

img

전반적인 설명

이 전략은 주식 및 디지털 화폐의 단기 거래를 위해 주식 지수 (SMI) 지표에 기반한 단기 거래 전략을 설계합니다. 이 전략은 트렌딩 시장의 중간 인기를 잡기 위해 주식 지수 지표의 과반 구매 및 과반 판매 신호와 이동 평균의 확인을 통합합니다.

전략 원칙

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

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

LL는 N일 최저 가격, HH는 N일 최저 가격이다. 이 지표의 설계 개념은 종료 가격이 N일 최저 가격에 가까울 때 시장이 과잉 매입 상태이며 종료 가격이 N일 최저 가격에 가까울 때 시장이 과잉 매매 상태이다.

이 전략에서는 SMA 매개 변수 N는 5과 3를 취하고, 5일 및 3일 스토카스틱 인덱스가 사용된다는 것을 나타냅니다. 일반적으로 하나의 매개 변수를 사용하는 것은 잘못된 신호를 쉽게 생성 할 수 있습니다. 따라서이 전략은 두 번째 SMA 이중 확인을 채택하여 약간의 소음을 필터링 할 수 있습니다.

또한, EMA 지표는 전략에 겹쳐지고, SMI 지표의 신호를 더 확인하고 잘못된 판단을 피하기 위해 SMI 지표와 일치하도록 매개 변수가 설정됩니다.

전략 의 장점

  1. 역전 기회를 파악하기 위해 스토카스틱 인덱스 지표에 기초하여 과잉 구매 및 과잉 판매 영역을 판단합니다.
  2. 이중 SMA 매개 변수 설정은 효과적으로 잘못된 신호를 필터링 할 수 있습니다.
  3. 잘못된 판단을 피하기 위해 EMA 지표와 결합하여 확인

전략 의 위험

  1. SMI 지표는 잘못된 신호를 생성하는 경향이 있습니다. 두 개의 SMA와 EMA 지표로도 위험을 완전히 피할 수 없습니다.
  2. 트렌드 시장에서 이 전략은 너무 많은 역수행을 발생시켜 전체 이익에 영향을 줄 수 있습니다.

위험 예방:

  1. 단일 손실을 제어하기 위해 스톱 손실을 사용
  2. 트렌딩 시장에서 사용하는 것을 피하기 위해 측면 또는 범위 거래 시장에서만 이 전략을 사용하십시오.

최적화 방향

  1. SMI 지표를 다양한 매개 변수 설정 하에서 테스트하여 최적의 매개 변수 조합을 찾습니다.
  2. 신호 정확성을 향상시키기 위해 볼링거 밴드, KDJ 등과 같은 확인을위한 다른 지표와 결합하려고 노력하십시오.
  3. 스톱 로스 전략을 최적화하고 시장 변동성에 따라 변수 스톱 로스를 설정합니다.
  4. 트렌드 시장에서 사용을 피하기 위해 트렌드 판단 지표와 결합

요약

일반적으로, 이것은 단기 거래에 적합한 전략이다. 이는 스토카스틱 지표의 과반 구매 및 과반 판매 특성을 이동 평균 확인 및 필터링과 결합하여 일부 단기 거래 기회를 식별한다. 그러나, 이 전략은 트렌딩 시장에서 잘못된 신호를 생성하는 경향이 있으므로, 그것을 사용할 때 특별한 주의를 기울여야 한다. 그러한 상황을 피하기 위해 판단 트렌드 지표와 함께 사용하는 것이 가장 좋습니다. 일반적으로, 이 전략은 범위 제한 시장에서 일부 단기 거래 기회를 포착할 수 있지만, 사용 중에 위험 통제와 스톱-러스 출구에 주의를 기울여야 한다.


/*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)


더 많은