[코인]나만의 차트 및 데이터 추출방법 (TSI/SMI) (8)

2025. 1. 10. 08:51코인이야기/PYTHON

 

def getDataFrameConverter_N1(self, idx, ticker, strDate, df):
    try:
        self.df = df

        ####################################################################################
        # TSI _ 1
        ####################################################################################
        ar_TSI = []
        TSI = TA.TSI(self.df, 10, 13, 13)
        TSI_1 = TSI.TSI.iloc[-1]
        TSI_2 = TSI.TSI.iloc[-2]
        TSI_3 = TSI.TSI.iloc[-3]
        TSI_4 = TSI.TSI.iloc[-4]
        TSI_1 = self.AVGUTIL.setIsNAN(TSI_1)
        TSI_2 = self.AVGUTIL.setIsNAN(TSI_2)
        TSI_3 = self.AVGUTIL.setIsNAN(TSI_3)
        TSI_4 = self.AVGUTIL.setIsNAN(TSI_4)


        TSI_SM_1 = TSI.signal.iloc[-1]
        TSI_SM_2 = TSI.signal.iloc[-2]
        TSI_SM_3 = TSI.signal.iloc[-3]
        TSI_SM_4 = TSI.signal.iloc[-4]
        TSI_SM_1 = self.AVGUTIL.setIsNAN(TSI_SM_1)
        TSI_SM_2 = self.AVGUTIL.setIsNAN(TSI_SM_2)
        TSI_SM_3 = self.AVGUTIL.setIsNAN(TSI_SM_3)
        TSI_SM_4 = self.AVGUTIL.setIsNAN(TSI_SM_4)

        time.sleep(0.2)
    except Exception as e:
        print(f" _____ getDataFrameConverter _____ {ticker} _____ {e}")
    finally:
        pass

 

SMI (Stochastic Momentum Index) 계산 코드 설명

**SMI (Stochastic Momentum Index)**는 Stochastic OscillatorMomentum을 결합한 기술적 지표로, 가격의 변화 속도와 추세의 강도를 측정하여 과매수과매도 상태를 분석합니다. SMI는 주로 주식, 외환 및 암호화폐 거래에서 사용됩니다.

1. SMI 계산:

PANTA.smi() 함수는 SMI를 계산하는 함수로 보입니다. 여기서는 self.df['close'] (종가) 데이터를 사용하여 SMI 값을 계산합니다.

SMIIO = PANTA.smi(self.df['close'], 5, 5, 10)
  • 5, 5, 10은 SMI 계산에 사용되는 기간을 나타내는 매개변수입니다.
    • 첫 번째 5: 기본 기간 (Stochastic 기간)
    • 두 번째 5: 평균화 기간 (Momentum의 평활화)
    • 10: 분석 기간 (여기서는 10일 기준으로 설정)

2. SMI 값 추출 및 스케일링:

SMI 지표를 계산한 후, 각각의 SMI 값백분율로 변환하여 저장합니다. 아래와 같이, 각 시점별로 SMI 값과 그에 대응하는 신호선(Signal Line)Smooth 값을 추출합니다.

 

SMI_1 = SMIIO.SMI_5_5_10.iloc[-1] * 100
SMI_2 = SMIIO.SMI_5_5_10.iloc[-2] * 100
SMI_3 = SMIIO.SMI_5_5_10.iloc[-3] * 100
SMI_4 = SMIIO.SMI_5_5_10.iloc[-4] * 100
SMI_5 = SMIIO.SMI_5_5_10.iloc[-5] * 100

 

  • 이 코드는 SMI 값을 추출하여 100배로 변환하여 백분율 값을 계산합니다.
  • SMI 신호선(Signal Line) 값:
SMI_SM_1 = SMIIO.SMIs_5_5_10.iloc[-1] * 100
SMI_SM_2 = SMIIO.SMIs_5_5_10.iloc[-2] * 100
SMI_SM_3 = SMIIO.SMIs_5_5_10.iloc[-3] * 100
SMI_SM_4 = SMIIO.SMIs_5_5_10.iloc[-4] * 100
SMI_SM_5 = SMIIO.SMIs_5_5_10.iloc[-5] * 100

 

 

 

  • **SMI 신호선(Signal Line)**은 SMI의 이동 평균으로, SMI와 신호선의 교차를 통해 매매 신호를 파악할 수 있습니다.
  • SMI Smooth 값:
SMI_SMM_1 = SMIIO.SMIo_5_5_10.iloc[-1] * 100
SMI_SMM_2 = SMIIO.SMIo_5_5_10.iloc[-2] * 100
SMI_SMM_3 = SMIIO.SMIo_5_5_10.iloc[-3] * 100
SMI_SMM_4 = SMIIO.SMIo_5_5_10.iloc[-4] * 100
SMI_SMM_5 = SMIIO.SMIo_5_5_10.iloc[-5] * 100

 

 

  • SMI Smooth 값은 SMI의 스무딩된 버전으로, 지표의 변동성을 줄이고 더 안정적인 신호를 제공합니다.

3. NaN 값 처리:

NaN 값을 처리하여 데이터의 결측이 있을 경우, 해당 값을 0으로 대체하는 방법을 사용하는 것이 일반적입니다. 이를 위해 setIsNAN 같은 유틸리티 함수를 사용할 수 있습니다.

4. 성능 최적화:

time.sleep(0.2)
  • 각 API 호출 후 0.2초 대기하여 서버 과부하를 방지하고, 데이터 추출 시 서버 요청 제한을 피할 수 있습니다.

SEO 최적화된 설명

SMI (Stochastic Momentum Index) 지표:

**Stochastic Momentum Index (SMI)**는 Stochastic OscillatorMomentum Indicator를 결합하여 만든 지표로, 가격의 변동성추세 강도를 분석합니다. SMI는 가격이 빠르게 변화하는 추세를 파악하고, 과매도과매수 상태를 식별하는 데 사용됩니다.

SMI 지표의 활용:

  1. 과매도/과매도 분석: SMI가 +40 이상일 경우 과매수 상태, -40 이하일 경우 과매도 상태를 나타낼 수 있습니다.
  2. 시장 강도 분석: SMI 값신호선의 교차점을 통해 추세 반전 신호를 포착할 수 있습니다.
  3. 시장 변동성 파악: SMI의 스무딩된 버전SMI Smooth는 시장의 변동성을 감소시키고 더 안정적인 신호를 제공합니다.

주요 키워드:

  • SMI (Stochastic Momentum Index)
  • SMI 계산 방법
  • 과매도 과매수 지표
  • SMI 신호선
  • 시장 강도 분석
  • 기술적 분석
  • SMI 신호 교차
  • 주식 분석 도구
  • SMI Smooth
  • 주식 및 암호화폐 기술 분석

결론

SMI는 가격의 강도변동성을 평가하고, 과매도/과매수 구간을 파악하는 데 유용한 지표입니다. Stochastic OscillatorMomentum을 결합하여 더 정확한 시장의 추세를 확인할 수 있으며, SMI 신호선SMI Smooth와의 교차점을 통해 추세 전환을 미리 예측할 수 있습니다. SMI 지표는 주식, 외환, 암호화폐와 같은 다양한 금융 시장에서 기술적 분석을 위한 중요한 도구입니다.

반응형