등록 일자 2023.11.15.
개발
PC 프로그램
기술 자문ㆍ가이드
예상 금액
2,500,000원
금액 조율 가능
예상 기간
21일
기간 조율 가능
지원자 수
8명
모집 마감일
2023년 11월 28일
프로젝트 문의 9
sw******
안녕하세요, 문의 감사합니다.
1. 아닙니다. 틱데이터를 받아 핵심연산을 하는 부분만 C++ 로 변환할 계획입니다.
2. 일반 응용프로그램입니다.
3. 파이썬은 GIL 정책으로 인해 진정한 멀티스레드를 지원하지 않습니다. 일부를 DLL 로 대체한다고 멀티스레드가 가능해지지 않는걸로 알고 있습니다만, 방법이 있으시다면 그쪽 방향도 검토를 해볼수 있습니다.
4. 멀티프로세싱은 개별 프로세스로 처리되어 메모리 공유가 불가합니다. 한종목만 모니터하는것이 아닌 전체 시장상황을 보고 비교판단해야 하는경우가 발생할 수 있기때문에 멀티프로세싱은 현재로서는 고려사항이 아닙니다.
감사합니다. :)
sw******
정확히는 신호발생을 위한 함수에 해당하는 코드의 번역(numpy, pandas calculation)은 본 프로젝트의 범위가 아닙니다. 그부분에 있어 업무설명이 조금 애매한 부분이 있었던것 같습니다. 보충설명을 드리자면, 메인 프로세스에서 수많은 user defined function들을 sequential 하게 호출하고 있는 현재의 메인 코드를 스레드로 분산시켜 병렬, concurrent 한 호출을 하도록 하는것이 목표입니다. 따라서 굳이 라인수로 따지자면 2000줄 정도가 될것 같습니다. 하나의 종목은 하나의 스레드로 처리하되, 개별 종목은 스레드로 분산시키는게 목표입니다. user defined function들을 직번역하지 않고 다만 계산에 소요되는 시간들을 sleep function을 통해 0.01초의 임의적인 딜레이를 부여해서 테스트를 해주셔도 되며, 초당 수천수만개의 데이터가 들어와도 단일 프로세스에서처럼 딜레이가 누적되지 않는 것을 멀티코어 시스템에서 테스트를 해주시고 테스트결과를 보여주시면 됩니다.
몇 가지 질문 하도록 하겠습니다. 개별 종목을 하나의 스레드로 구성하고자 하시는 것으로 판단 됩니다.
1. 기존에 단일 포트와 단일 IP를 사용하여 단일 소켓으로 처리하는 부분은 딜레이가 없다고 하셨는데요,
concurrent connect 수를 몇 개로 보시는지요(예를 들면 초 당 몇 개의 종목 처리가 가능 하면 되는지).
2. 공유 메모리에 저장되는 데이터는 어떤 것 들인지 확인 하고자 합니다.
3. Linux 가 운용될 HW 사양과 Linux OS 버젼은 선정 되었는지요?.
4. 틱 데이터 이면 매도/매수/호가 등의 데이터 일 것으로 판단 되는데 각각의 쓰레드에서 주문과 체결 등의 기능이 포함 되는지요?.
이상 입니다.
파이썬으로 하시다보니 공유 메모리나 다중 스레드를 생각하신것 같아 보입니다. 13900k 윈11 기준 체결 데이터로 캔들 생성 또는 업데이트 후 rsi 볼밴 ta-lib 연산과 커스텀 연산들을 진행할 경우 보통 체결틱당 연산 1회에 약 0.000004~0.000007초 정도 소요됩니다. 종목당 스레드를 가지지 않아도 모든 종목 처리가 가능하고, 다중 스레드로 만들 경우 동기화를 하게 되면 다중 스레드를 사용하는 의미가 없으며 퍼포먼스에서 손해를 보게 됩니다. 선호하는 개발 환경이 리눅스라니 신기하네요.
비밀 댓글입니다.
비밀 댓글입니다.
비밀 댓글입니다.
비밀 댓글입니다.
개발
PC 프로그램
기타(IT 서비스 구축) 외 2개
개발
PC 프로그램
기타
개발 · 기획
PC 프로그램
기타(내부 시스템)
디자인
안드로이드 외 2개
LMSㆍ강의 플랫폼
개발
PC 프로그램
가상화폐ㆍ거래소
비밀 댓글입니다.