Skip to content

devstom/STOM

Repository files navigation

STOM (System Trade Operating Machine)

개요

  • STOM은 1초스냅샷 또는 1분봉 데이터 기반, 단타 전용 시스템트레이딩툴입니다.
  • 단순한 자동매매를 넘어 강력한 백테스팅, 최적화, 전진분석, 주문관리시스템, 각종분석시스템이 적용되어 있습니다.
  • LS증권 국내주식, ETF, ETN, 국내선물, 야간선물, 해외선물 및 업비트, 바이낸스선물 거래소의 API가 연동되어 있습니다.

전략

  • 파이썬 기본 문법 정도만 배우면 누구나 쉽게 전략을 작성할 수 있습니다.
  • 버튼만 누르면 조건이 작성되는 230여개의 전략모듈을 제공합니다.
  • 전략모듈의 버튼들은 사용자가 버튼명 및 조건을 편집하여 사용할 수 있습니다.
  • 사용자 팩터를 만들 수 있는 수식관리자을 제공합니다.
  • 작성한 수식은 차트에 일반선, 조건선, 범위, 화살표 형태로 표시됩니다.
  • 또한 작성한 수식명 그대로 전략 및 백테에서 바로 사용이 가능합니다.
  • 전략 버전관리 시스템을 통해 전략을 쉽게 관리할 수 있습니다. (버전별 비교분석 가능)

백테스트

  • 백파인더: 특정 시점 이후의 등락율을 기준으로 이전 시점의 데이터를 확인합니다.
  • 백테스트: 파라미터의 숫자가 정해진 전략을 과거데이터로 백테스트합니다.
  • 최적화: 파라미터의 숫자가 정해지지 않은 전략을 백테스트하여 파라미터를 최적화합니다.
  • 최적화는 그리드, 유전, 베이지안 알고리즘을 지원하며 OPTUNA의 각종 샘플러까지 사용할 수 있습니다.
  • 최적화테스트: 학습구간의 데이터로 최적화하여 얻은 파라미터의 최적값으로 테스트구간을 백테스트합니다.
  • 조건최적화: 다수의 매수조건들과 매도조건들을 무작위로 조합 후 백테스트하여 최적의 조합을 찾습니다.
  • 전진분석: 최적화테스트를 반복하여 실제 매매에서 사용하는 방식과 똑같이 백테스트합니다.
  • 최적화 방식은 데이터를 나누는 방식에 따라 다음 3가지 방법을 지원합니다.
  • 모두 학습데이터로 사용하는 일반최적화, 학습 및 검증구간으로 나누어 사용하는 검증최적화,
  • 검증구간을 여러개로 나누어 사용하는 교차검증최적화를 지원합니다.

분석 시스템

  • 전략과 백테스트에 리스크분석, 가격대분석, 거래량분석, 변동성분석, 변손익분석 시스템을 제공합니다.
  • 리스크분석은 체결데이터를 기반으로 RSI, 변동성, 모멘텀, 체결강도, 수량불균형, 가격위치, 각종 추세를 분석합니다.
  • 가격대분석은 특정 단위로 분할한 가격대에서 상하방 돌파 및 반등 이벤트를 분석합니다.
  • 거래량분석은 거래량평균 대비 현재거래량의 배수를 특정 단위로 분할하여 이후 가격의 흐름을 분석합니다.
  • 변동성분석은 특정 단위로 분할한 변동성 변화 레벨별로 이후 가격의 흐름을 분석합니다.
  • 변손익분석은 변동성 변화 레벨별로 예상수익률 및 최적 익절수익률, 최적 손절수익률을 분석합니다.
  • 1초스냅샷 데이터 전용, 시장미시구조분석 시스템을 제공합니다.
  • 시장미시구조분석은 호가데이터를 기반으로 호가깊이비율, 불균형, 집중도, 압력레벨, 각종 조작 패턴을 분석합니다.
  • 1분봉 데이터 전용, 캔들분석 시스템을 제공합니다.
  • 캔들분석은 talib 라이브러리에 있는 60여개의 패턴을 활용하여 종목별 패턴 발생과 이후 가격의 흐름을 분석합니다.
  • 모든 분석시스템의 반환값들은 전략 및 백테에서 사용할 수 있습니다.
  • 예: 시그널, 신뢰도, 리스크, 리스크점수, 거래량점수, 거래량신뢰도, 가격대점수, 가격대신뢰도,
  • 변동성점수, 변동성신뢰도, 예상수익률, 익절수익률, 손절수익률, 변손익신뢰도

접근성

  • 어렵고 복잡하며 단순 반복적인 코딩은 그만하시고 전략연구에 몰두하십시오.
  • STOM은 사용자 친화적인 UI와 많은 예제 및 도움말이 포함되어 있어 누구나 쉽게 사용할 수 있습니다.
  • STOM LIVE 탭에서는 사용자들의 당일실현손익 및 백테결과를 확인할 수 있습니다.
  • 설치 및 사용방법을 포함한 STOM에 대한 모든 강의는 아래 유튜브에 공개되어 있습니다.
  • STOM YouTube
  • STOM Community

파이썬 및 라이브러리 설치 방법

  • https://www.python.org/downloads/windows/ 에서 Python 3.13.** 64비트 버전 설치
  • pip_install.bat 파일 실행으로 라이브러리 설치
  • 나눔고딕 글꼴 다운로드 및 Windows/Fonts 폴더에 설치
  • stom.bat 실행 후 시리얼키 입력, LS증권 RESTAPI 또는 업비트, 바이낸스 계정 설정
  • 윈도우 작업스케쥴러에 stom_login.bat 등록하여 자동 실행
  • 그외 자세한 사항은 유튜브 강의를 참고하시길 바랍니다.
  • 유튜브 강의는 현재 V2.0 기준 강의이며 V3.0 기준 강의는 새로 녹화해서 차차 업로드하겠습니다.

라이선스 및 시리얼키

  • STOM은 시스템트레이딩을 위한 도구일뿐이며 전략을 제공하거나 판매하지 않습니다.
  • 소스코드의 원본 또는 수정본을 상업적으로 이용할 수 없습니다.
  • 위반 시 모든 권한이 박탈되며 저작권 위반에 대한 법적 책임이 따를 수 있습니다.
  • 국내주식 데이터를 타인에게 공유할 경우 코스콤과 법적 다툼이 생길 수 있습니다.
  • 업데이트는 부가적으로 제공되는 것이며 영구 지속되지 않을 수 있습니다.
  • 사용상 발생한 불이익은 사용자 본인의 책임입니다.
버전 시리얼키 실행제한 커뮤니티카페 구글드라이브 단톡방
무료 STOM_PUBLIC IP당 1개 O X X
유료 구독결재 발급키 제한 없음 O O O
  • 무료버전 사용방법: 설정탭 시리얼키 입력란에 STOM_PUBLIC이라고 입력 후 저장
  • 커뮤니티용 카페는 누구나 자유롭게 이용할 수 있습니다. (자유가입, 자동등업)
  • 데이터 공유용 구글드라이브 및 단톡방은 구독결재 후에 이용할 수 있습니다.
  • 구독결재문의
  • 비지니스문의

프로젝트 구조

STOM/
│
├── _database/                           # 데이터베이스용 폴더
│   ├── code_info.db                     # 거래소별 종목정보 저장용 DB
│   ├── setting.db                       # 설정 저장용 DB
│   ├── strategy.db                      # 전략 저장용 DB
│   ├── backtest.db                      # 백테스트 결과 저장용 DB
│   ├── optuna.db                        # OPTUNA 최적화 결과 저장용 DB
│   ├── tradelist.db                     # 체결목록, 거래목록, 당일실현손익, 잔고목록용 DB
│   └── strategy_versions/               # 전략 버전 관리 시스템용 폴더
│
├── _log/                                # 로그 폴더
│
├── ai_agent/                            # AI 에이전트
│   ├── plan/                            # 작업 계획 저장 폴더
│   ├── report/                          # 전략분석, 백태결과분석, 실매매분석 보고서 저장 폴더
│   ├── strategy/                        # AI가 생성한 전략 저장 폴더
│   ├── ruled.md                         # AI 에이전트 규칙용 파일
│   └── strategy.txt                     # 전략 작성 방법 및 변수 설명
│
├── backtest/                            # 백테스트 엔진
│   ├── _graph/                          # 백테스트 결과 그래프 저장
│   ├── _temp/                           # 분할로딩용 임시 폴더
│   ├── binance/                         # 바이낸스선물 백테스트 엔진
│   ├── future/                          # 국내선물 백테스트 엔진
│   ├── future_oversea/                  # 해외선물 백테스트 엔진
│   ├── stock_korea/                     # 국내주식 백테스트 엔진
│   ├── stock_usa/                       # 해외주식 백테스트 엔진
│   ├── upbit/                           # 업비트 백테스트 엔진
│   ├── back_code_test.py                # 전략 문법 오류 및 변수 사용 오류 확인
│   ├── back_static.py                   # 백테스트 공통 함수
│   ├── back_static_numba.py             # 백테스트엔진용 numba 함수
│   ├── back_subtotal.py                 # 중간 집계용 프로세스 클래스
│   ├── backengine_base.py               # 주문관리 미적용 백테스트 엔진 베이스 클래스
│   ├── backengine_base_oms.py           # 주문관리 적용 백테스트 엔진 베이스 클래스
│   ├── backfinder.py                    # 백파인더
│   ├── backtest.py                      # 백테스트
│   ├── optimiz.py                       # 그리드, 검증, 교차검증, OPTUNA 최적화 및 최적화 테스트 
│   ├── optimiz_3d_visualization.py      # 최적화용 3D 시각화
│   ├── optimiz_conditions.py            # 조건 최적화
│   ├── optimiz_genetic_algorithm.py     # 유전 알고리즘(GA) 최적화
│   └── rolling_walk_forward_test.py     # 전진분석
│
├── dashboard/                           # 웹대시보드
│   ├── backend/                         # 백엔드
│   ├── frontend/                        # 프론트엔드
│   └── dashboard_starter.py             # 백엔드, 프론트엔드 실행
│
├── strategy/                            # 전략 및 분석 모듈
│   ├── analyzer_candle_pattern.py       # 캔들 패턴 분석
│   ├── analyzer_microstruc.py           # 시장미시구조 분석
│   ├── analyzer_risk.py                 # 리스크 분석
│   ├── analyzer_volatility_pattern.py   # 변동성 분석
│   ├── analyzer_volatility_stop_take.py # 변손익 분석
│   ├── analyzer_volume_profile.py       # 가격대 분석
│   ├── analyzer_volume_spike.py         # 거래량 분석
│   ├── manager_formula.py               # 수식관리자
│   └── stg_globals_func.py              # 전략 기반 클래스(230여개의 전략 모듈)
│
├── trade/                               # 실시간 트레이딩 모듈
│   ├── binance/                         # 바이낸스선물 API 연동
│   ├── future/                          # 국내선물 API 연동
│   ├── future_oversea/                  # 해외선물 API 연동
│   ├── stock_korea/                     # 국내주식 API 연동
│   ├── stock_usa/                       # 해외주식 API 연동
│   ├── upbit/                           # 업비트 API 연동
│   ├── base_receiver.py                 # 리시버용 베이스 클래스
│   ├── base_strategy.py                 # 전략연산용 베이스 클래스
│   ├── base_trader.py                   # 트레이더용 베이스 클래스
│   ├── restapi_binance.py               # 바이낸스선물 API 연동
│   ├── restapi_ls.py                    # LS증권 API 연동
│   ├── restapi_lsdata.py                # LS증권 API 데이터
│   └── restapi_upbit.py                 # 업비트 API 연동
│
├── ui/                                  # UI
│   ├── _icon/                           # 아이콘 리소스
│   ├── create_widget/                   # 위젯 생성
│   ├── draw_chart/                      # 차트 그리기
│   ├── etcetera/                        # 기타 이벤트 처리
│   ├── event_activate/                  # 콤보박스 액티브 이벤트 처리
│   ├── event_change/                    # 체인지 이벤트 처리
│   ├── event_click/                     # 마우스 클릭 이벤트 처리
│   ├── event_keypress/                  # 키보드 입력 이벤트 처리
│   ├── update_widget/                   # 웨젯 업데이트 이벤트 처리
│   └── main_window.pyd                  # 메인 UI 및 시리얼키 인증 클래스
│
├── utility/                             # 공통 유틸리티
│   ├── _imagefiles/                     # 각종 스크린샷
│   ├── _pycharm/                        # 파이참 규칙 및 테마
│   ├── db_control/                      # 데이터베이스 관리 모듈
│   ├── settings/                        # 설정 관리 모듈
│   ├── static_method/                   # 공통 함수 사용 모듈
│   └── sub_process_and_thread/          # 서브 프로세스 및 스레드 모듈
│
├── _license.txt                         # 라이선스 파일
├── _update.txt                          # 업데이트 목록
├── pip_install.bat                      # 라이브러리 설치
├── pip_install_wd.bat                   # 웹대시보드용 라이브러리 설치
├── stom.bat                             # 메인 실행용 배치 파일
├── stom.py                              # 메인 UI 실행 파일
└── stom_login.bat                       # 자동 로그인 모드로 실행용 배치 파일

시스템 요구사항

트레이딩 용도

항목 최소 사양 권장 사양
CPU Intel i5 / Ryzen 5 Intel i7 / Ryzen 7 이상
RAM 8GB 16GB 이상
인터넷 10Mbps 50Mbps 이상

백테스트 용도

항목 최소 사양 권장 사양
CPU Intel i7 / Ryzen 7 (8코어) Intel i9 / Ryzen 9 이상 (16코어+)
RAM 32GB 64GB
저장공간 NVMe 500GB NVMe 1TB 이상

STOM 주요 화면 및 기능

다이아그램

다이아그램

홈 화면: 주요 지수 및 시장 지표

홈화면

메인 트레이딩 화면: 관심종목, 체결목록, 잔고목록, 잔고평가, 거래목록, 실현손익

기본창

거래집계: 일별, 월별, 연도별 집계

집계창

전략편집기: 매수/매도 전략 조건 설정 및 편집

전략편집기

백파인더: 전략에 사용할 팩터의 데이터 탐색

백파인더

최적화편집기: 그리드 최적화, 검증 최적화, 교차검증 최적화, 옵튜나 최적화

최적화편집기

테스트편집기: 각종 최적화 테스트

테스트편집기

전진분석: 최적화 테스트를 반복하는 전진분석

전진분석

변수편집기: 최적화 파라미터 설정

변수편집기

범위편집기: 최적화 파라미터의 범위 설정

범위편집기

조건편집기: 조건 조합 최적화로 전략 탐색

조건편집기

GA편집기: 유전 알고리즘 최적화

GA편집기

백테스트로그: 백테스트 진행 상황 및 로그

백테로그

상세기록: 백테스트 결과 기록 및 관리

백테기록

백테스트 그래프 비교: 여러 전략의 백테 그래프 비교

백테기록_그래프비교

백테스트 스케줄러: 여러개의 백테스트 및 최적화를 스케줄링하여 실행

백테스케쥴러

로그: 시스템 로그 및 오류 메시지

로그창

설정: 기본 설정, 전략 설정, 백테 설정, 기타 설정

설정창

주문관리: 주문 관리 설정 및 위험 관리 설정

주문관리

STOM Live: 사용자들의 실시간 매매 및 백테 정보

스톰라이브

데이터베이스 관리

디비관리

김프

김프창

차트: 실시간 및 DB 차트 표시

차트창

수식관리자: 사용자 팩터 추가, 수식명으로 전략 및 백테에서 바로 사용 가능

수식관리자

전략모듈: Ctrl+클릭으로 버튼명 및 내용 편집 가능

전략모듈

호가창: 실시간 호가 정보 및 차트 부가 정보 표시

호가창

기업정보: 기업개요, 공시, 뉴스, 재무재표

기업정보

백테스트엔진: 엔진 설정 및 실행

백테엔진창

전략 버전 관리

전략버전관리

분석시스템

분석시스템

업종별/테마별 트리맵

업종별테마별트리맵

백테스트 결과 그래프

백테결과그래프

백테스트 결과 부가정보

백테결과부가정보

웹대시보드

웹대시보드

About

System Trade Operating Machine

Resources

Stars

Watchers

Forks

Contributors