이것을 영어 로 읽고 싶으십니까?
VeighNa는 Python 기반의 오픈소스 퀀트 트레이딩 시스템 개발 프레임워크로, 오픈소스 커뮤니티의 지속적인 기여로 출시 이후 점차적으로 금융기관 및 관련 기관에서 많은 사용자를 확보하고 있는 다기능 퀀트 트레이딩 플랫폼으로 성장했습니다. 펀드, 증권회사, 선물회사 등을 포함한 분야입니다.
전문 트레이더를 위한 [VeighNa Elite Quantitative Terminal]이 공식 출시되어 대규모 전략 동시성, 지능형 위치 이동, 알고리즘 분할 실행, 다중 계좌 트레이딩 지원 측면에서 전문 트레이더의 요구를 완벽하게 지원합니다. 자세한 내용을 확인하시려면 아래 QR코드를 스캔하신 후 메뉴바의 [커뮤니티 커뮤니케이션 -> 엘리트 멤버십 서비스]를 클릭해주세요 .
2차 개발(전략, 모듈 등)을 위해 VeighNa를 사용하는 과정에서 궁금한 점이 있으면 VeighNa 프로젝트 문서를 확인하세요. 문제를 해결할 수 없는 경우 공식 페이지 의 [질문 및 도움말] 섹션으로 이동하세요. 도움이 필요 하시면 [경험 공유]에 오신 것을 환영합니다. 이 섹션을 사용하여 경험을 공유하세요!
VeighNa에 대한 더 많은 정보를 원하시나요? [VeighNa 커뮤니티 커뮤니케이션 WeChat 그룹]에 참여할 보조자를 추가하려면 아래 QR 코드를 스캔하십시오.
다양한 거래 인터페이스를 통합하고 특정 전략 알고리즘 및 기능 개발을 위한 간단하고 사용하기 쉬운 API를 제공하여 거래자가 요구하는 정량 거래 애플리케이션을 신속하게 구축할 수 있는 다기능 정량 거래 플랫폼(Trader)입니다.
국내외에서 보유하고 있는 다음과 같은 거래 상품을 다루는 거래 인터페이스(게이트웨이):
국내 시장
CTP(ctp): 국내 선물 및 옵션
CTP Mini(미니): 국내 선물 및 옵션
CTP 증권(sopt): ETF 옵션
Femas: 국내선물
Hang Seng UFT(uft): 국내 선물, ETF 옵션
esunny: 국내 선물, 금 TD
Apex Feichuang (초): ETF 옵션
Vertex HTS(hts): ETF 옵션
Zhongtai XTP(xtp): 국내 증권(A주), ETF 옵션
화신 특이점(토라): 국내 증권(A주), ETF 옵션
Guotai Junan (hft): 국내 증권(A주, 금융 서비스)
토픽스 OST(ost) : 국내증권(A주)
오리엔탈포춘EMT(emt) : 국내증권(A주)
날다람쥐(sgit): 금TD, 국내선물
ksgold: 골드 TD
레이싱자산운용(lstar): 선물자산운용
Rohon: 선물자산운용
Jees: 선물 자산 관리
Zhonghui Yida(comstar): 은행간 시장
너겟(gm): 국내 증권(시뮬레이션)
Hang Seng Cloud UF(uf): 국내 증권(시뮬레이션)
TTS(tts): 국내 선물(시뮬레이션)
해외 시장
인터랙티브 브로커스(ib) : 해외증권, 선물, 옵션, 귀금속 등
Yisheng 9.0 외장디스크(탭) : 해외선물
직접 선물(da): 해외 선물
특수 용도
RQData Quotes(rqdata): 시장 전반(주식, 지수, ETF, 선물)에 대한 실시간 시세
Xun Touyan Quotes (xt): 시장 전반에 걸친 실시간 시세(주식, 지수, 전환사채, ETF, 선물, 옵션)
RPC 서비스(rpc): 분산 아키텍처를 위한 크로스 프로세스 통신 인터페이스
다음 유형의 정량 전략을 다루는 거래 애플리케이션(앱):
cta_strategy: CTA 전략 엔진 모듈은 사용 편의성을 유지하면서 사용자가 CTA 전략 운영 중 위탁 보고 및 출금 동작을 세밀하게 제어할 수 있도록 합니다(거래 슬리피지 감소 및 고빈도 전략 구현).
cta_backtester: Jupyter Notebook을 사용하지 않고 그래픽 인터페이스를 직접 사용하여 전략 백테스트 분석, 매개변수 최적화 및 기타 관련 작업을 수행하는 CTA 전략 백테스트 모듈입니다.
Spread_trading: 스프레드 거래 모듈, 맞춤형 스프레드 지원, 스프레드 견적 및 포지션 실시간 계산, 스프레드 알고리즘 거래 및 자동 스프레드 전략 모드 지원
option_master: 국내 옵션 시장을 위해 설계된 옵션 거래 모듈은 다양한 옵션 가격 책정 모델, 내재 변동성 표면 계산, 그리스 가치 위험 추적 및 기타 기능을 지원합니다.
Portfolio_strategy: 동시에 여러 계약을 거래하는 정량적 전략(알파, 옵션 차익거래 등)을 위한 포트폴리오 전략 모듈로, 과거 데이터 백테스팅 및 실시간 자동 거래 기능을 제공합니다.
algo_trading: TWAP, Sniper, Iceberg, BestLimit 등 일반적으로 사용되는 다양한 지능형 거래 알고리즘을 제공하는 알고리즘 거래 모듈입니다.
script_trader: 다중 표준 정량 전략 및 계산 작업을 위해 설계된 스크립트 전략 모듈이며 명령줄에서 REPL 지침 형식으로 트랜잭션을 구현할 수도 있습니다.
paper_account: 로컬 시뮬레이션 모듈, 순전히 현지화된 시뮬레이션 거래 기능, 거래 인터페이스에서 얻은 실시간 시장 상황을 기반으로 한 위탁 매칭, 위탁 거래 푸시 및 위치 기록 제공
Chart_wizard: RQData 데이터 서비스(선물) 또는 거래 인터페이스를 기반으로 과거 데이터를 획득하고 Tick push와 결합된 실시간 시장 변화를 표시하는 K-라인 차트 모듈입니다.
Portfolio_manager: 독립적인 전략 트레이딩 포트폴리오(서브 계정)를 기반으로 하는 트레이딩 포트폴리오 관리 모듈로 위탁 거래 기록 관리, 트레이딩 포지션 자동 추적, 일별 손익 실시간 통계 기능을 제공합니다.
rpc_service: 특정 프로세스가 서버로 시작될 수 있도록 하는 RPC 서비스 모듈로, 통합된 시장 및 트랜잭션 라우팅 채널로서 여러 클라이언트가 동시에 연결되어 다중 프로세스 분산 시스템을 구현할 수 있습니다.
data_manager: 기록 데이터 관리 모듈, 트리 디렉터리를 통해 데이터베이스의 기존 데이터 개요 보기, 언제든지 데이터를 선택하여 필드 세부 정보 보기, 데이터 가져오기 및 CSV 파일 내보내기 지원
data_recorder: 그래픽 인터페이스를 기반으로 구성된 시장 기록 모듈은 전략 백테스트 또는 실제 시장 초기화를 위해 필요에 따라 Tick 또는 K-line 시장 상황을 데이터베이스에 실시간으로 기록합니다.
excel_rtd: Excel의 다양한 데이터(시장, 계약, 포지션 등)에 대한 실시간 푸시 업데이트를 얻기 위해 pyxll 모듈을 기반으로 하는 Excel RTD(실시간 데이터) 실시간 데이터 서비스입니다.
Risk_manager: 거래 흐름 제어, 주문 수량, 활동 위탁, 총 주문 취소 수 및 기타 규칙에 대한 통계 및 제한을 제공하여 프런트엔드 위험 제어 기능을 효과적으로 구현하는 위험 관리 모듈입니다.
web_trader: BS 아키텍처 요구 사항에 맞게 설계된 웹 서비스 모듈은 활성 함수 호출(REST) 및 수동 데이터 푸시(Websocket)를 제공하는 웹 서버를 구현합니다.
Python 트랜잭션 API 인터페이스 캡슐화(api)는 위 트랜잭션 인터페이스의 기본 도킹 구현을 제공합니다.
REST 클라이언트(rest): 코루틴 비동기 IO 기반의 고성능 REST API 클라이언트로, 이벤트 메시지 루프 프로그래밍 모델을 사용하여 동시성 높은 실시간 트랜잭션 요청 전송을 지원합니다.
웹소켓 클라이언트(websocket): 코루틴 비동기 IO 기반의 고성능 웹소켓 API 클라이언트로, REST 클라이언트와 공유 이벤트 루프의 동시 실행을 지원합니다.
간단하고 사용하기 쉬운 이벤트 중심 엔진(이벤트)은 이벤트 중심 거래 프로그램의 핵심 역할을 합니다.
다양한 데이터베이스(데이터베이스) 도킹을 위한 어댑터 인터페이스:
SQL 클래스
SQLite(sqlite): 경량 단일 파일 데이터베이스, 데이터 서비스 프로그램 설치 및 구성 필요 없음, VeighNa의 기본 옵션, 초보자에게 적합
MySQL(mysql): 매우 풍부한 문서를 갖춘 주류 오픈 소스 관계형 데이터베이스이며 다른 NewSQL 호환 구현(예: TiDB)을 대체할 수 있습니다.
PostgreSQL(postgresql): 더욱 풍부한 기능을 갖춘 오픈 소스 관계형 데이터베이스입니다. 확장 플러그인을 통해 새로운 기능을 지원합니다. 숙련된 사용자에게만 권장됩니다.
NoSQL 클래스
DolphinDB(dolphindb): 고성능 분산 시계열 데이터베이스로 대기 시간이 짧거나 매우 빠른 속도가 요구되는 실시간 작업에 적합합니다.
Arctic(arctic): 시계열 데이터의 효율적인 읽기 및 쓰기를 위해 블록 스토리지, LZ4 압축 등 성능 최적화 솔루션을 채택한 고성능 금융 시계열 데이터베이스입니다.
TDengine(taos): 캐싱, 스트리밍 컴퓨팅, 데이터 구독 및 기타 시스템 기능이 내장된 분산형 고성능 SQL 지원 시계열 데이터베이스로, R&D와 운영 및 유지 관리의 복잡성을 크게 줄일 수 있습니다.
TimescaleDB(timescaledb): PostgreSQL을 기반으로 개발된 시계열 데이터베이스로 플러그인 확장으로 설치되며, 공간과 시간에 따른 자동 파티셔닝을 지원합니다.
MongoDB(mongodb): 분산 파일 저장(bson 형식) 기반의 문서 데이터베이스입니다. 내장된 핫 데이터 메모리 캐시는 더 빠른 읽기 및 쓰기 속도를 제공합니다.
InfluxDB(influxdb): TimeSeries Data용으로 특별히 설계된 시계열 데이터베이스로, 열 데이터 스토리지는 매우 높은 읽기 및 쓰기 효율성과 주변 분석 애플리케이션을 제공합니다.
LevelDB(leveldb): Google에서 출시한 고성능 Key/Value 데이터베이스로 LSM 알고리즘을 기반으로 하는 In-Process 스토리지 엔진을 구현하고 수십억 개의 대용량 데이터를 지원합니다.
다음 유형의 데이터 서비스를 도킹하기 위한 어댑터 인터페이스(데이터피드):
Xun Investment Research(xt): 주식, 선물, 옵션, 펀드, 채권
미강RQ데이터(rqdata): 주식, 선물, 옵션, 펀드, 채권, 금 TD
영춘권 마스터(voltrader): 선물, 옵션
Hang Seng UData(udata): 주식, 선물, 옵션
TuShare(tushare): 주식, 선물, 옵션, 펀드
바람(wind) : 주식, 선물, 펀드, 채권
Tinysoft(타이니소프트) : 주식, 선물, 펀드, 채권
Flush iFinD(ifind): 주식, 선물, 펀드, 채권
Tianqin TQSDK (tqsdk): 선물
분산 배포를 통해 복잡한 거래 시스템을 구현하는 데 사용되는 크로스 프로세스 통신 표준 구성 요소(rpc)입니다.
Python의 고성능 K-라인 차트(차트)는 대용량 데이터 차트 표시 및 실시간 데이터 업데이트 기능을 지원합니다.
커뮤니티 포럼과 Zhihu 칼럼에는 VeighNa 프로젝트에 대한 개발 튜토리얼과 정량 거래 분야에서 Python 적용에 대한 연구가 포함되어 있습니다.
공식 커뮤니케이션 그룹 262656087(QQ)은 엄격하게 관리되고 있으며(오랜 기간 다이버를 유지한 회원은 정기적으로 제외됨), 그룹 참가비는 VeighNa 커뮤니티 기금으로 기부됩니다.
참고: 위의 기능적 특징에 대한 설명은 문서 공개 당시의 상황을 기반으로 하며 향후 업데이트되거나 조정될 수 있습니다. 기능 설명이 실제 존재와 다른 경우, 조정을 위해 Issue를 통해 문의해 주시기 바랍니다.
여기에서 릴리스 버전을 다운로드하고 압축을 푼 후 다음 명령을 실행하여 설치하십시오.
윈도우
install.bat
우분투
bash install.sh
마코스
bash install_osx.sh
참고: VeighNa 프레임워크 설치에 필요한 종속 라이브러리는 setup.cfg에 나열되어 있으며 이러한 종속 라이브러리의 권장 설치 버전은 요구사항.txt에 제공됩니다.
SimNow에 CTP 시뮬레이션 계정을 등록하고 이 페이지에서 브로커 코드와 거래 견적 서버 주소를 얻으세요.
VeighNa 커뮤니티 포럼에 등록하여 VeighNa Station 계정과 비밀번호를 받으세요. (포럼 계정과 비밀번호는 동일합니다.)
VeighNa Station을 시작하고(VeighNa Studio 설치 후 바탕화면에 바로가기가 자동 생성됨) 이전 단계의 계정과 비밀번호를 입력하여 로그인합니다.
거래를 시작하려면 하단의 VeighNa Trader 버튼을 클릭하세요! ! !
알아채다:
VeighNa Station을 기반으로 하는 그래픽 시작 방법 외에도 모든 디렉터리에 run.py를 만들고 다음 샘플 코드를 작성할 수도 있습니다.
from vnpy . event import EventEngine
from vnpy . trader . engine import MainEngine
from vnpy . trader . ui import MainWindow , create_qapp
from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
def main ():
"""Start VeighNa Trader"""
qapp = create_qapp ()
event_engine = EventEngine ()
main_engine = MainEngine ( event_engine )
main_engine . add_gateway ( CtpGateway )
main_engine . add_app ( CtaStrategyApp )
main_engine . add_app ( CtaBacktesterApp )
main_window = MainWindow ( main_engine , event_engine )
main_window . showMaximized ()
qapp . exec ()
if __name__ == "__main__" :
main ()
이 디렉터리에서 CMD를 열고(Shift를 누른 채 마우스 오른쪽 버튼을 클릭하고 여기에서 명령 창/PowerShell 열기) 다음 명령을 실행하여 VeighNa Trader를 시작합니다.
python run.py
VeighNa는 Github를 사용하여 소스 코드를 호스팅합니다. 코드를 제공하려면 github의 PR(Pull Request) 프로세스를 사용하세요.
이슈 생성 - 대규모 변경(예: 새로운 기능, 대규모 리팩토링 등)의 경우 먼저 이슈를 열어 논의하는 것이 좋습니다(예: 문서 개선, 버그 수정 등). PR을 직접 보내세요.
Fork VeighNa - 오른쪽 상단에 있는 Fork 버튼을 클릭하세요.
자신만의 포크를 복제하세요: git clone https://github.com/$userid/vnpy.git
dev 에서 자신만의 기능 브랜치를 생성하세요: git checkout -b $my_feature_branch dev
$my_feature_branch를 수정하고 변경 사항을 포크에 푸시합니다.
포크의 $my_feature_branch 분기에서 기본 프로젝트의 dev 분기로 [풀 요청]을 생성합니다. 여기에서 포크 간 비교를 클릭하고 필요한 포크와 분기를 선택하여 PR을 생성합니다.
검토를 기다리는 중입니다. 계속 개선하거나 병합해야 합니다!
코드를 제출할 때 코드 품질을 향상시키기 위해 다음 규칙을 준수하십시오.
flake8
실행하면 됩니다. MIT