자동 거래 시스템

마지막 업데이트: 2022년 6월 15일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
아무튼 프로젝트에는 다양한 생태계 가 활용된다. DB로 SQLite를 활용하고 있고, beautiful soap 라이브러리를 활용해 네이버 주식의 특정 페이지를 크롤링하는가 하면, Line 프로그램과의 연동으로 푸시 알림 메시지를 연동하기도 한다.

자동거래시스템

알고리즘 트레이딩의 서브셋인 ATS(Automated Trade System)는 컴퓨터 프로그램을 이용해 주문을 만들어 매매하고, 주문을 자동으로 시장 센터나 거래소에 제출한다. [1] 컴퓨터 프로그램은 기술 분석, 고급 통계 및 수학적 계산 또는 다른 전자 출처의 입력에 기초한 거래 전략을 사용하여 사전 정의된 규칙 집합에 근거한 주문을 자동으로 생성한다.

전자통신망, 「다크풀」, 자동화된 거래소 등 자동화된 시장 센터에서 전자거래와 함께 자동화된 거래 시스템이 이용되는 경우가 많다. [2] 자동화된 거래 시스템과 전자 거래 플랫폼은 인간에 상응하는 어떤 것보다 더 빠른 속도로 반복 작업을 실행할 수 있다. 인간의 판단에 의존하는 전통적인 위험 통제와 안전장치는 자동화된 거래에 적합하지 않으며 이는 2010년 플래시 크래시 같은 문제를 야기시켰다. 자동화된 거래 시스템을 다루기 위해 일부 전자 시장에 거래 억제 장치 또는 '회로 차단기'와 같은 새로운 통제가 시행되었다. [3]

자동 매매 시스템은 예를 들어 옵션의 현재 시장 가격과 이론적인 매입 및 매도 가격을 기준으로 주문서를 제출해야 하는지를 결정한다. 이론적 매입 및 매도 가격은 무엇보다도 옵션의 기초가 되는 유가증권의 현행 시장가격에서 도출된다. 조회표는 기초 보안의 현재 시장가격의 일정 범위에 대한 이론적 매입 및 매도 가격을 저장한다. 따라서 기반 보안 가격이 변경됨에 따라 새로운 이론적 가격이 조회 표에 인덱싱될 수 있으므로 그렇지 않으면 자동화된 거래 결정을 지연시킬 수 있는 계산을 피할 수 있다. [4] 분산 처리 온라인 자동 거래 시스템은 구조화된 메시지를 사용하여 시장 메이커(쿼터)와 잠재적 구매자 또는 판매자(요청자) 간의 협상에서 각 단계를 나타낸다. [5]

자동화된 거래 시스템의 장점

사전 설정된 규칙이 충족되면 주문이 자동으로 처리되기 때문에 감정적인 실수가 최소화된다. 그것은 또한 시장의 변동성이 심할 때 무역업자들이 규율을 유지할 수 있도록 돕는다. [6]

자동화된 거래나 기본 알고리즘을 실제로 사용하기 전에 거래자들은 이전 데이터를 사용하여 그들의 규칙을 평가할 수 있다. 그것은 트레이더들이 잠재적인 실수를 최소화하고 예상 수익을 결정할 수 있게 해준다. [6]

미리 정해진 규칙이 충족돼야 주문이 처리되고, 트레이더들이 계획적으로만 거래되기 때문에 트레이더들이 일관성 있게 거래할 수 있도록 돕는다. [6]

컴퓨터는 사전 설정된 규칙이 충족되는 즉시 주문을 처리하므로, 더 높은 주문 입력 속도를 달성하여 시장 상황이 매우 빠르게 변할 수 있는 현재 시장에서 매우 유익하다. [6]

자동화된 거래 시스템을 통해 사용자는 동시에 여러 계정을 거래할 수 있어 포트폴리오를 다양화할 수 있다. 포트폴리오를 다양화하면 다양한 금융상품에 대한 리스크를 분산시켜 이용자가 리스크를 최소화할 수 있다. [6]

자동무역체계의 단점

비록 기본 알고리즘이 실시간 시장에서 좋은 성능을 자동 거래 시스템 발휘할 수 있지만, 인터넷 연결 오작동은 장애를 초래할 수 있다. [6]

컴퓨터가 주문을 처리하고 있지만, 위에 나온 것처럼 기술 고장에 취약하기 때문에 여전히 모니터링이 필요하다. [6]

후방 테스트에서 매우 우수한 성능을 발휘하는 알고리즘은 결국 실제 시장에서 매우 저조한 성능을 보일 수 있다. 역주행 실적이 좋으면 트레이더들로부터 지나치게 낙관적인 기대감으로 이어져 큰 실패를 초래할 수 있다. [6]

"이동 평균, 채널 이탈, 가격 수준 이동, 관련 기술 지표의 추세를 따라 가장 보편적으로 구현되는 전략" [7]

예를 들어, 다음과 같은 공식을 다음과 같은 전략에 사용할 수 있다.

"물량 가중 평균 가격 전략은 대량 주문을 분할하고 동적으로 결정된 더 작은 주문 덩어리를 주식별 과거 물량 프로파일을 사용하여 시장에 출시한다." [7]

볼륨 가중 평균 가격 위키백과 페이지에 따르면 VWAP는 다음 공식을 사용하여 계산된다.

이 전략은 자산의 가치/가격은 평균가격/가치로 되돌아간다는 생각에 기초한다. [7]

"연속 평균 반복 시간 시리즈는 Ornstein-Uhlenbeck 확률적 미분 방정식으로 나타낼 수 있다.

자동화된 거래 시스템의 개념은 1949년 리처드 돈치안이 일련의 규칙을 사용하여 펀드를 사고 팔 때 처음 도입되었다. 그 후 1980년대에 존 헨리 같은 유명 무역업자들이 이런 전략을 쓰기 시작하면서 룰 기반 거래의 개념이 더욱 대중화되었다. 1990년대 중반 일부 모델은 구매가 가능했다. 또한 기술 향상은 소매 투자자들의 접근성을 증가시켰다. [10] 알고리즘 기반의 소프트웨어인 초기 형태의 자동무역시스템은 금융관리자와 중개업자들이 사용해 왔다. 이러한 종류의 소프트웨어는 고객의 포트폴리오를 자동으로 관리하는 데 사용되었다. 그러나, 아무런 감독 없이 자유 시장을 위한 첫 서비스는 2008년에 처음 시작되었는데, 그것은 Jon Stein에 의한 Betterment이다. 이후 이 시스템은 IT 산업의 발달과 함께 개선되고 있다. 현재, 자동화된 무역 시스템은 전 세계의 거대한 자산을 관리하고 있다. [11] 2014년 미국 거래소(뉴욕증권거래소, 나스닥 포함)에서 거래된 주식의 75% 이상이 자동화된 거래 시스템 주문에서 비롯됐다. [12] [13]

자동화된 거래 시스템은 주문 입력 시기, 퇴장 시기, 각 거래 상품에 투자할 금액 등을 결정하는 미리 정의된 규칙을 기반으로 할 수 있다. 시장 상단과 하단을 따지도록 설계한 것도 있지만, 추세를 따르는 것도 있고, 시장에서 눈에 덜 띄도록 주문을 랜덤화하는 등 복잡한 전략을 수반하는 것도 있다. ATS는 무역업자가 주문을 훨씬 더 빨리 실행하고 보호 예방책을 자동으로 생성하여 포트폴리오를 쉽게 관리할 수 있도록 한다. [14]

거래 시스템의 역테스트에는 기본 알고리즘이 예상 결과를 산출할 수 있는지를 판단하기 위해 과거 시장 데이터를 사용하여 프로그램을 실행하는 프로그래머가 포함된다. 역테스트 소프트웨어는 거래 시스템 설계자가 과거 시장 데이터를 사용하고 과거 데이터로 얻은 결과를 최적화함으로써 거래 시스템을 개발하고 테스트할 수 있게 한다. 비록 자동화된 거래 시스템의 역테스팅이 미래의 결과를 정확하게 판단할 수는 없지만, 자동화된 거래 시스템은 과거 가격을 사용하여 과거 시장 환경에서 그 시스템이 활동했다면 이론적으로 어떻게 수행되었는지를 확인함으로써 역테스트를 받을 수 있다. [15] [16]

알고리즘의 전방 시험은 실시간 시장 데이터를 사용한 모의 거래를 사용하여 현재 시장에서 거래 전략의 효과를 확인하는 데 도움을 줄 수 있다. 컴퓨터 코드에 내재된 문제를 밝히는 데 사용될 수 있다.

실시간 테스트는 개발 주기의 마지막 단계다. 이 단계에서는 라이브 퍼포먼스를 백테스트 결과와 비교하고 앞으로 걸어간다. 비교한 지표에는 수익률, 수익률, 최대 인출율 및 거래당 평균 이득이 포함된다. 자동화된 거래 시스템의 목표는 높은 효율 등급으로 역주행한 실적을 충족시키거나 초과 달성하는 것이다. [17]

시장 혼란 및 조작

자동화된 거래, 즉 고주파수 거래는 시장 취약성의 원인이 되는 규제 우려를 야기한다. [18] 미국 규제 당국 releases[19][20]위험성 자동 거래 시스템 통제의 재무 및 규제 통제 컴퓨터 오작동이 발생하거나 인간 실수, 다양한 규제 요건의 물 위의 결과로 잘못된 명령의 입국을 막기 위해 이와 같은 혼란의 정도를 제한하는데 사용될 수 있는 여러가지 유형을 논의하고, 발표하고 있다. exceedi ng 신용 한도 또는 자본 한도.

고주파수거래(HFT) 전략의 사용은 지난 몇 년 동안 상당히 증가했으며 미국 시장에서의 활동의 상당 부분을 주도하고 있다. 비록 많은 HFT 전략이 합법적이지만, 일부는 교묘한 거래에 사용되지 않고 사용될 수도 있다. 전략이 시장에 의도적인 혼란을 일으키거나 그것을 조작하려고 한다면 불법적이거나 심지어 불법이 될 것이다. 그러한 전략에는 "모멘텀 점화 전략"이 포함된다. 시장 참여자가 비보나 피이드 주문을 시장의 한 쪽에 배치하는 스푸핑 및 레이어링(일반적으로, 항상은 아니지만, 입찰보다 위나 아래에 있는 것은 아님)은 다른 시장 참가자가 비보나 피이드 주문에 반응하도록 미끼로 한 다음 오트에서 다른 주문과 거래하는 시도다. 그녀의 시장 쪽 그들은 또한 약탈적/유혹적 전략이라고도 불린다. 이러한 관행이 미칠 수 있는 잠재적 영향의 규모를 고려할 때, 남용 알고리즘에 대한 감시는 규제당국의 높은 우선순위로 남아 있다. 금융산업규제청(FINRA)은 HFT 전략과 기타 거래 알고리즘을 사용하는 기업들에게 이러한 전략이 남용되는 거래로 이어지지 않도록 하기 위해 이러한 전략을 시험할 때 주의를 기울여야 할 의무를 상기시켰다.

FINRA는 또한 미국 이외의 지역에서 활동을 시작하는 후원 참가자를 통해 문제가 있는 HFT와 알고리즘 활동의 진입에 초점을 맞추고 있다. 이런 점에서, FINRA 그들의 감시와 삼성 전자의 시장 접근 규칙과 고시에 멤버 04-66,[21]뿐만 아니라 잠재적인 이슈 고객 계정, 자금 세탁 방지, 이윤 수준 규제 통보서 10-18에[22]과 삼성 전자의 사무소 월간 콤프의 강조 표시된 같은 계정을 다루는 것에 대해 관련된 통제 의무와 기업들을 상기시킨다.liance 2011년 9월 29일자 검사 및 시험의 국가 시험 위험 경고. [23]

FINRA는 기본 주식 유가증권의 가격에 대한 교차 시장 및 교차 상품 조작을 확인하기 위해 감시를 실시한다. 이러한 조작은 일반적으로 기존의 옵션 포지션을 유리한 가격으로 마감하거나 유리한 가격으로 새로운 옵션 포지션을 설정하는 남용적인 거래 알고리즘이나 전략을 통해 이루어진다.

최근 몇 년 동안, 상당한 시장 혼란을 야기시킨 많은 알고리즘 거래 오작동이 있었다. 이러한 것들은 자동화된 시스템을 개발, 구현, 효과적으로 감독할 수 있는 기업의 능력에 대한 우려를 자아낸다. FINRA는 알고리즘 트레이딩 및 기타 자동화된 거래 전략과 관련된 기업의 시험과 통제가 미국 증권거래위원회와 기업의 감독 의무에 비추어 적절한지 평가할 것이라고 밝혔다. 이 평가는 시험과 표적 조사의 형태를 취할 수 있다. 기업은 알고리즘과 거래 시스템에 대해 독립적이고 독립적이며 강력한 사전 구현 테스트를 수행하는지를 다루어야 할 것이다. 또한, 기업의 법률, 컴플라이언스, 운영 담당자가 법적 요건 준수를 위한 알고리즘 및 거래 시스템의 자동 거래 시스템 설계와 개발을 검토하고 있는지 여부를 조사할 것이다. FINRA는 기업이 알고리즘과 트레이딩 시스템을 생산 시스템에 배치한 후 수정 후 세탁 판매, 표시, 레이어링, 모멘텀 점화 전략 등 잠재적 트레이딩 악용을 탐지하는 데 사용되는 절차와 제어 등 적극적으로 모니터링하고 검토하는지 여부를 검토한다. 마지막으로, 기업들은 치명적인 시스템 오작동에 대응하기 위한 절차뿐만 아니라 기업 전체의 분리 또는 "킬" 자동 거래 시스템 스위치에 대한 접근방식을 설명할 필요가 있을 것이다. [ citation needed ]

자동 거래 시스템

당신의 독서를 위한 친구 - 심플 폴더블 LED 독서등/크리스탈 문진/가죽 슬리브 유리 텀블러/모나미 볼펜

[대학생X취준생] 꼭 공부를 해야 할 상황이라면? 2학기, 공부할 결심!

8월 얼리리더 주목신간 : 귀여운 방해꾼 배지 증정

월간 개발자 2022년 8월호

박해선 저자의 머신러닝/딥러닝 패스

[단독]『혼자 공부하는 파이썬』 개정판 출간

직장인을 위한 업무 단축 필살기! 길벗 무따기 오피스

내일은 개발자! 코딩테스트 대비 도서전

[단독] 에듀윌 IT 자격증 기획전 - 가장 빠른 합격출구 EXIT

(핫팩 증정!) 길벗 IT브랜드전

8월 전사

쇼핑혜택

이 책을 구입하신 분들이 산 책

품목정보
출간일 2021년 10월 14일
쪽수, 무게, 크기 420쪽 | 183*235mm
ISBN13 9791165217167
ISBN10 1165217163

책소개 책소개 보이기/감추기

목차 목차 보이기/감추기

1.1 아나콘다 설치
__1.1.1 아나콘다 설치하기
__1.1.2 아나콘다 가상 환경 설정하기
1.2 파이참 설치
__1.2.1 파이참 설치하기
__1.2.2 새 프로젝트 만들기

2.1 Hello World 출력하기
2.2 변수
2.3 주석과 들여쓰기
2.4 자료형
__2.4.1 문자열
__2.4.2 튜플과 리스트
__2.4.3 딕셔너리
2.5 기초 연산
__2.5.1 사칙 연산
__2.5.2 괄호
2.6 다양한 연산자
__2.6.1 비교 연산자
__2.6.2 논리 연산자
__2.6.3 멤버 연산자
2.7 조건문
__2.7.1 if 문
__2.7.2 elif-else 문
2.8 반복문
__2.8.1 for 문
__2.8.2 while 문
__2.8.3 중첩 반복문
__2.8.4 반복문 제어
2.9 함수
__2.9.1 기본
__2.9.2 반환하기
__2.9.3 유효 범위
__2.9.4 더 알면 좋은 것들
2.10 클래스
__2.10.1 들여쓰기
__2.10.2 인스턴스화
__2.10.3 객체 생성
__2.10.4 self
__2.10.5 _ _init_ _
__2.10.6 속성
__2.10.7 인스턴스 확인하기
__2.10.8 상속
2.11 모듈과 패키지
__2.11.1 import
__2.11.2 from import
__2.11.3 as
__2.11.4 패키지
2.12 예외 처리
__2.12.1 예외 발생 확인하기
__2.12.2 try-except-else-finally

3장 Kiwoom API 사용

3.1 환경 구축
__3.1.1 키움증권 계좌 만들기
__3.1.2 증권 인증서 만들기
__3.1.3 Open API 내려받기
__3.1.4 KOA Studio 내려받기
__3.1.5 모의투자 가입
3.2 KOA Studio 사용법
3.3 PyQt5 개요 및 설치
3.4 프로젝트 구조
3.5 API 동작 방식 이해하기
3.6 키움증권 로그인하기
3.7 자동 로그인 설정하기
3.8 계좌 정보 얻어 오기
3.9 종목 정보 얻어 오기
__3.9.1 종목 코드 얻어 오기
__3.9.2 종목명 얻어 오기
__3.10 가격 정보(일봉) 얻어 오기
3.11 예수금 얻어 오기
3.12 주문 접수 및 체결 확인하기
__3.12.1 주문 접수하기
__3.12.2 체결 확인하기
3.13 주문 정보 얻어 오기
3.14 잔고 얻어 오기
3.15 실시간 체결 정보 얻어 오기

4.1 전략 설명
4.2 매수/매도 조건
4.3 유니버스 구성
4.4 백테스팅 결과

5.1 프로젝트 구조
5.2 데이터베이스 사용
__5.2.1 데이터 삽입: insert
__5.2.2 데이터 조회: select
__5.2.3 데이터 수정: update
__5.2.4 데이터 삭제: delete
__5.2.5 연결 객체 종료: with
5.3 유니버스 만들기
__5.3.1 데이터 크롤링
__5.3.2 유니버스 구성하기
5.4 유니버스 저장·조회하기
5.5 일봉 저장·조회하기
5.6 초기화 함수 구성하기
5.7 전략 구현하기
__5.7.1 틀 구성하기 자동 거래 시스템
__5.7.2 매도 조건 확인하기
__5.7.3 매도 주문 접수
__5.7.4 매수 조건 확인 및 주문 접수
5.8 최종 마무리
__5.8.1 LINE 알림 받기 및 예외 처리
__5.8.2 프로그램 무한 실행 방법
__5.8.3 프로그램에 에러가 발생할 때의 대응
__5.8.4 실전 투자 전환 방법

상세 이미지 상세 이미지 보이기/감추기

저자 소개 (1명)

책 속으로 책속으로 보이기/감추기

주식 투자는 시작하기도 편리하며, 소액으로도 충분히 투자할 수 있다는 점에서 큰 인기를 얻고 있습니다. 하지만 주식 투자도 결코 녹록치 않습니다. 내가 샀다 싶으면 최고점이고 이내 하락하는 구간을 견디다가 팔면 오르기를 반복합니다. 행여 타이밍을 놓칠까 걱정되어 집에서나 직장에서나 HTS/MTS에서 눈을 떼지 못하기도 합니다. ‘그때 샀어야 했는데, 팔았어야 했는데’라고 후회하며 나중에는 내 생각이 맞았는데 시간이 없어 실행하지 못했다고 손실이라도 난 것처럼 안타까워합니다. 그런데 시간이 있었다고 한들 ‘그때’ 주식을 사거나 팔 수 있었을까요? 그 순간에 느끼는 공포와 탐욕이 우리 선택을 방해하기 때문에 생각은 하되 행동하지 못하고 마치 일확천금 기회 같았던 ‘그때’를 지나고서야 후회하게 됩니다. 바로 여기서 시스템 트레이딩이 도움을 줄 수 있습니다.
정해진 룰에 따라 트레이딩하는 자동매매 시스템은 규칙대로 매매하며, 우리가 섣불리 하지 못하는 행동들을 대신해 줍니다. 또 주식 시장이 열리는 동안 수백에서 수천 가지의 많은 종목이 내가 정한 매수, 매도 조건에 해당하는지 확인하기 때문에 우리 시간을 훨씬 아껴 줄 수 있습니다. 이렇게 나를 대신해서 매매 종목들을 선별하고 조건에 부합하면 사고팔기까지 하는 트레이딩 시스템 개발은 한순간의 일확천금은 아닐지라도 나 대신 주식 시장에서 꾸준히 돈을 벌 수 있는 분신을 만드는 일이라고 생각합니다.
하지만 이 과정 역시 쉬운 일은 아닙니다. 파이썬 프로그래밍을 알아야 하며, 다소 복잡한 증권사 API 사용법도 익혀야 합니다. 하지만 그렇게 공부했다고 해서 끝난 것은 아닙니다. 배운 내용을 바탕으로 트레이딩 가능한 실전 시스템을 만드는 과정이 필요합니다. 이 책은 이 각
각의 모든 단계를 최대한 상세히 설명하고 마지막 장에서는 프로젝트 개발까지 다룹니다. 이것으로 여러분이 주식 자동매매의 원리를 익히고 자신만의 전략을 개발하여 경제적 자유에 더 가까워질 수 있길 진심으로 기원합니다.

회원리뷰 (24건) 리뷰 총점 9.6

길벗 출판사에 서평 이벤트에 당첨이 되어 쉽게 따라 만드는 파이썬 주식 자동매매 시스템 책을 읽어 보았다. 전반적으로 파이썬의 기본적인 언어를 배우는 것 부터 키움 증권사 API를 활용해서 증권 매매 시스템을 간단하게 따라 구축해 볼 수 있는 책이다. 좀 더 나아가 매매 전략 구현, 실전 투자 전환까지 활용이 가능한 책이다. 필자는 30살 위 아래의 삶;

길벗 출판사에 서평 이벤트에 당첨이 되어 쉽게 따라 만드는 파이썬 주식 자동매매 시스템 책을 읽어 보았다.

전반적으로 파이썬의 기본적인 언어를 배우는 것 부터 키움 증권사 API를 활용해서 증권 매매 시스템을 간단하게 따라 구축해 볼 수 있는 책이다.

좀 더 나아가 매매 전략 구현, 실전 투자 전환까지 활용이 가능한 책이다.


필자는 30살 위 아래의 삶을 살고 있고 1992년 생이라고 한다.

필자는 열심히 일하는 성실함으로 성공할 수 있는 세상이 아니다는 생각이 든다고 한다.

필자가 목표로 하고 생각하는 성공이 그리 대단한 것이 아님에도 직장에서 아무리 야근하며 일을해도 내 집 마련이라는 목표 하나 이루기 힘든 세상이 되었기 때문이다.

껄무새라고 해서 그때 샀어야 했을껄, 팔았어야 했을껄 하며 후회하며 나중에는 내 생각이 맞았는데 시간이 없어 실행하지 못했다고 손살이라도 만회하고자 안타까워 하는 것이 주식 시장의 현실이다.

공포와 탐욕이 우리 선택을 방해하기 떄문에 생각은 하되 행동하지 못하고 기회 같았던 그때를 지나고서야 후회하게 된다.

이런 부분에서 시스템 트레이딩이 우리를 도와줄 수 있다.

정해진 룰에 따라 트레이딩 하는 자동매매 시스템은 규칙대로 매매하며 우리가 생각하는 행동들을 대신해 준다.

또 정해진 알고리즘대로 주식 시장이 열리는 동안 여러가지의 매수, 매도 조건을 확인하고 우리 시간을 훨씬 아껴 줄 수 있게 나를 대신해서 매매 종목들을 선별하고 사고팔기까지 한다.

주식매매 트레이딩 시스템 개발은 한순간의 일확천금은 아닐지라도 나 대신 주식 시장에서 꾸준히 돈을 만드는 벌수 있는 일이라고 필자는 생각한다고 한다.


요즘 드는 생각에 주식매매는 직장인의 필수 교양처럼 자리 잡은 것 같다.

프로그램으로 주식을 사고 팔 수 있다고 알고 있었지만 관련 지식이 없는 직장인 입장에서는 어디서부터 시작해야 할지 막연한 것이 사실이다.

퇴근 후에나 주말에 짬을 내어 책 내용대로 코드를 입력한다면 전부 이해하지 못하더라도 큰 골치 아픔 없이 프로젝트를 완성할 수 있다는 것이 장점이다.

이후의 좀 더 잘 갖추어진 알고리즘을 통해 투자 알고리즘을 개선해 나가는 것은 독자의 몫이 될 것이다.

내가 이 책을 통해서 나만의 주식 자동매매 시스템을 만드는 방법에 입문을 했듯이 다른 분들도 이 책을 통해 편하게 파이썬으로 나만으 주식 자동매매 시스템을 한번 만들어 본다면 간단한 매매부터 시작해서 점차 어려운 매매들도 자동화 할 수 있지 않을까 생각이 든다.


이 글을 길벗 출판사로 부터 책을 증정받아 작성되었습니다.

Python 기반의 주식 자동매매 시스템 개발 방법을 안내하는 도서로 약간의 용응을 더할 경우 다양한 용도의 프로그램으로 활용할 수 있는 확장성 높은 프로그램을 개발할 수 있도록 구성된 점이 특징이다. Python으로 주식 자동매매 시스템을 개발하는 방법을 담은 책이다. 워렛버핏은 자면서도 돈을 벌 수 있는 시스템을 만들지 않으면 평생 일해야 한다고 말했다 한다. 자면서도 돈;

Python 기반의 주식 자동매매 시스템 개발 방법을 안내하는 도서로 약간의 용응을 더할 경우 다양한 용도의 프로그램으로 활용할 수 있는 확장성 높은 프로그램을 개발할 수 자동 거래 시스템 있도록 구성된 점이 특징이다.

Python으로 주식 자동매매 시스템을 개발하는 방법을 담은 책이다. 워렛버핏은 자면서도 돈을 벌 수 있는 시스템을 만들지 않으면 평생 일해야 한다고 말했다 한다.

자면서도 돈을 벌 수 있는 시스템으로 여러가지가 있겠지만 일반적으로 가장 접하기 쉬운 재테크 수단은 역시 주식이며 이 역시도 자동화된 프로그램의 도움을 받는다면 더욱 워렌 버핏의 말을 실현하는데 도움이 될 것이라 생각한다.

먼저 본 도서의 실습환경은 아나콘다와 파이참 으로 이루어진다. 아나콘다는 수치 계산 등에 도움이 되는 Python 라이브러리를 호환성을 고려하여 묶어놓은 환경 덕분에 설치 한 번만으로도 파이썬 에코 환경을 활용하기 용이하다는 장점이 있다.

프로젝트를 개발하는 IDE로 본 도서에서는 Pycharm을 활용하고 있다. 기본적으로 파이썬에서 제공하는 IDE 툴에 비하면 Pycharm이 얼마나 편리한지는 이를 활용해 본 독자라면 모두 알고 있을 것이다. 파이참을 선택한 구성이 마음에 들었다.

개발환경을 구성하는데 있어 이 책에는 크게 2가지의 접근법 이 소개되고 있다. 1장 환경구성의 경우 명령어 하나하나 따라해보며 Bottom-Up 방식으로 배워나가는데 도움이 되는 환경 구성을 다룬다.

환경구성

반면 부록A에 소개된 예제 코드 내려받기 및 환경구성은 Top-Down 방식이다. 완성된 프로젝트를 다운로드 받아 큰 그림을 파악해보고 하나씩 이해해가며 자신만의 아이디어를 수정하고 싶다면 부록 방식의 환경 구성을 권장하고 싶다.

둘 중 어떤 순서로 학습할지 기준을 정한 후 그에 맞는 환경 설정 방식을 택일할 것을 먼저 추천하고 싶다.

이 책에서 만들고자 하는 최종 목표는 “5장 프로젝트” 단원에서 다룬다. 프로젝트를 완성하기 위해 필요한 파이썬의 기본 지식 들이 2장에 소개되고 있는데 이는 장점이자 단점이 될 수 있는 자동 거래 시스템 부분이다.

Python의 기초에 이미 능통한 독자라면 2장이 불필요한 부분일 수도 있어 단점이 될 수도 있는 반면, 자신이 Python의 경험이 전무하거나 프로그래밍 개발 자체가 생소하다면 크게 도움이 될 수 있는 부분이기도 하다.

읽어본 바 전체적으로 기초를 잘 설명하고 있으며 특히 아주 기초적인 문법 외에도 프로젝트를 구성에 필요한 지식인 모듈, 패키지, 클래스 및 상속 등의 지식을 알기 쉽게 전달하고 있다.

프로젝트에는 Thread 등의 기술들이 활용되고 있어 특히 상속이나 패키지 같은 이해가 필요한 데 뒷장에서 실습을 무난히 진행할 수 있도록 기초 지식을 미리 잘 설명하고 있다는 생각이 들었다.

키움

3장에는 키움 API 의 활용법이 등장한다. 키움 증권사의 KOA 스튜디오 사용법을 비롯하여 제공되는 API 하나하나를 Python과 연동하여 자세히 실습하고 있어 증권사에서 제공하는 API를 완벽에 가깝게 이해하는데 큰 도움이 되었다.

로그인부터 계좌, 종목 등의 정보를 얻어오는 것은 물론 예수금을 조회한 후 주문 체결하는 API도 모두 소개되어 있어 한 증권사에서 제공하는 수준을 쉽게 파악하는데 도움이 되며 상세한 설명으로 이해하고 따라하기 좋았다.

다만 본인의 증권사가 키움이 아닌 경우에는 다소 곤란할 수 있겠는데 키움으로 증권사를 갈아타거나, 키움으로 예행 연습을 해 본 후 이용중인 증권사의 API에 적합하게 프로그램을 수정하는 방법 등을 선택해야 할 것이다.

다만 하나의 증권사 API에 통달하면 다른 증권사 API에도 쉽게 적응될 것이므로 큰 문제가 될 요소로 보이지는 않았다.

실전매매

4장의 실전매매 전략 은 간단한 것들만 소개된다. 유니버스 즉, 매수매도의 후보군을 선정하는 과정이 아래와 같이 소개되고 있는데 전반적으로 축약하여 설명하지 않고 머리속에 전개되는 과정을 그대로 글로 옮기는 구성 덕분에 이해가 수월했다.

이러한 구성상 가독성의 장점은 뒷 파트에도 계속 이어지고 있어 초보자도 쉽게 이해하며 따라올 수 있을거라 생각하며 이런 점이 이 책이 가지는 가장 큰 장점이라는 생각이 들었다.

이 모든 것을 다 배우고 나면 5장에 등장하는 대망의 프로젝트 를 진행하게 된다. 앞서 환경구성에서 미리 언지를 한 것처럼 본인이 큰 그림부터 파악하는 것을 선호하는 성향이거나 빠르게 프로젝트를 돌려보고 튜닝을 원하는 독자라면 Top-Down방식으로 학습하는 것도 나쁘지 않겠다는 생각이 든다.

그럴 경우 먼저 5장부터 읽을 것을 권한다. 환경구성은 앞서 언급했든 부록A부터 참조를 하는 것이 좋을것이다. 다만 Top-Down으로 학습을 할 경우 최소한 프로그래밍의 경험이 있거나 키움 등 증권사 API를 활용해 본 경험이 있는 독자에게 추천하고 싶은 방법이다.

Python의 기초가 없거나 다른 언어 프로그래밍 경험도 전무하다면 이 방식으로 진행할 경우 너무 높은 난이도 장벽에 부딪혀 시간을 낭비하게 되거나 의지가 꺽이게 될지도 모른다.

프로젝트

아무튼 프로젝트에는 다양한 생태계 가 활용된다. DB로 SQLite를 활용하고 있고, beautiful soap 라이브러리를 활용해 네이버 주식의 특정 페이지를 크롤링하는가 하면, Line 프로그램과의 연동으로 푸시 알림 메시지를 연동하기도 한다.

모듈, 패키지, 프로젝트, 365일 무한 실행과 관련된 프로젝트의 구성방법에 대해 배울 수 있으며 Thread를 이용하여 다양한 작업을 동시에 수행하며 우선순위를 고려하는 방법도 익힐 수 있다.

스스로의 전략이 떠오를 경우 쉽게 확장하여 전략을 구현하여 연동할 수 있게 구성되어 있다는 것이 특징이며 굳이 주식매매 시스템이 아니더라도 자신이 필요한 프로그램이 있을 경우 이를 응용하여 변형할 수 있도록 폭넓은 라이브러리를 사용한다는 점이 가장 큰 장점이라 할수 있겠다.

그럼에도 약간이나마 아쉬운 부분도 있다. 개인적으로 미국 주식을 애용하고 있기에 키움 증권의 글로벌 API와의 연동이 소개되었으면 어땠을까 하는 아쉬움이 있었다. 하지만 국내용 API를 통해 쉽게 적응할 수 있는 부분이므로 큰 문제는 아니다.

대신 전략 파트가 너무 짧게 소개된 것은 조금 아쉬움이 남는 부분이다. 저자 본인이 취했던 방법 중 괜찮았던 방법 하나 정도는 자세히 다뤄줬다면 투자서로도 상당히 값어치 있는 책이 되었을 것 같다는 생각이 든다.

그럼에도 이 책은 자동매매 시스템을 구축하는데 훌륭한 가독성을 갖췄다는 점과 이 책의 예제를 응용하여 어떤 프로그램이든 손쉽게 만들 수 있다는 확장성을 제공한다는 점에서 같은 목적을 가진 독자에게 매우 추천하고 싶은 도서라는 점을 강조하고 싶다.

자동매매시스템을 구축하는 방법을 친철하고 자세하게 알려준다. 복잡한 코드에 친철한 주석이 달려있어서 어렵고 긴 코드가 무슨 의미인지 쉽고 빠르게 이해 할 수 있다. 책의 특징 이 책은 파이썬이라는 프로그래밍언어를 배우고 증권사 API 사용법도 배운다. 파이썬과 API 사용법을 배운 내용 기반으로 트레이딩 가능한 실전 시스템을 만드는 과정을 알려준다. 프로그래밍 코;

자동매매시스템을 구축하는 방법을 친철하고 자세하게 알려준다. 복잡한 코드에 친철한 주석이 달려있어서 어렵고 긴 코드가 무슨 의미인지 쉽고 빠르게 이해 할 수 있다.

이 책은 파이썬이라는 프로그래밍언어를 배우고 증권사 API 사용법도 배운다. 파이썬과 API 사용법을 배운 내용 기반으로 트레이딩 가능한 실전 시스템을 만드는 과정을 알려준다. 프로그래밍 코드가 많지만, 예제 코드를 길벗출판사와 작가님의 깃허브 저장소에서 내려받을 수 있다. 이곳에서 가서 코드를 복사해 올 수 있다. 그리고 코드가 길고 많지만 많은 주석이 있어서 코드가 어떤 명령을 의미하는지 이해하고 파악 할 수 있다. 초보라도 하루에 조금씩 이 책을 따라 하다 보면 목표에 도달 할 수 있을 것이다.

책은 크게 5장으로 이루어졌다.

첫 번째 장에서는 개발 환경 구축하는 방법

두 번째 장에서는 파이썬 기초 문법에 대해 공부를 한다. 첫 번째 장, 두 번째 장은 프로그래밍을 처음 해보거나 잘 모르는 사람들을 대상으로 유익하며 개별 환경 구축 및 파이썬 기초 문법을 예제로 설명해준다.

세 번째 장은 API 사용 방법을 알려주는데 이 책에서는 키움증권 API 사용 방법을 알려준다. 증권 데이터를 주고받는 기본 원리, 그리고 예수금, 일봉 조회 및 프로그래밍을 이용한 매수 및 매도와 키움증권 API의 전반적인 사용 방법을 알려준다.

네 번째 장은 실전 매매 전략으로 Naver fiance를 이용한 매매 자동 거래 시스템 종목 선정 및 유니버스 구성 방법을 설명하고 RSI라는 지표를 이용해서 역추세 전략을 만들고 백 테스트를 해본다.

다섯 번째 장은 1장, 2장, 3장, 4장에서 배운 내용을 기반으로 매매 대상 종목을 선별한 유니버스 구성, 매수/매도 로직을 바탕으로 실제 자동매매까지 할 수 있는 프로그램을 만드는 프로젝트를 수행한다.

이 책의 장점은 다소 이해가 안 될 수도 있는 코드들에 주석이 친절하게 붙어있어서 이해하기가 쉽고 코드를 보고 입력하고 코드를 복사/붙여넣기 해서 입력하기가 쉽다. 일단 따라하기가 쉽기 때문에 누구나 주식 자동매매 시스템을 만들 수가 있다. 또 프로그래밍뿐만 아니라 주식용어도 설명해주기 때문에 프로그래밍과 주식용어라는 두 가지 토끼를 잡을 수도 있다. 이 책을 읽고 주식 자동매매 시스템을 구축할 수 있기 때문에 실전 투자에서 내가 만든 전략으로도 자동매매를 할 수 있게 된다.

처음에는 따라가는 것이 어렵지 않지만, 뒤로 갈수록 코드가 많아지고 복잡해져서 이해가 잘 안 가기도 했지만 친절한 주석으로 차근차근 따라, 갈 수 있었다. 책에 있는 전략을 만들고 백 테스트해보면서 내가 원하던 걸 딱 할 수 있어서 기분이 좋았고 내가 좋아하는 다른 전략들도 백 테스트를 해보았다. 이 책은 매매전략보다는 자동매매 시스템구축에 큰 초점이 맞춰져 있다. 자동매매시스템을 자세히 알려줘서 이해하기 쉽다. 그래도 아쉬운 점은 매매전략이 여러 개 더 있었으면 좋았을 것 같다.

주식 자동 거래 시스템 구축 후기

나만의 수익 머신이 되었으면 하는 바램으로 시작하긴 했지만, 아주 편한 마음으로 코딩을 했습니다.

오늘이 딱 1주일째인데, 그동안 남는 시간에 이 프로젝트에만 매달려서 주식 트레이딩, 간단한 백테스팅까지 구현했습니다. 이번 포스팅에서는 제가 주식 거래 봇을 만든 방법, 어려웠던 점을 간단히 적어보려고 합니다.

1. 주식 거래 봇 만든 방법

저는 책을 보고 만들었는데요, "파이썬과 리액트를 활용한 주식 자동 거래 시스템 구축"이라는 책을 먼저 보고, WikiDoc에서 무료로 볼 수 있는 "파이썬으로 배우는 알고리즘 트레이딩"을 참고했습니다.

두 책 모두 이베스트 투자증권사의 xingAPI를 사용한 방법을 알려줘서 저도 xingAPI를 사용해서 봇을 만들었습니다.

첫 번째 책이 진짜 주식 매매 프로그램을 만들 때 필요한 핵심적인 내용만 담고 있어서, 사실 이 책 하나만 봐도 핵심 기능은 다 구현할 수 있습니다.

그냥 책보고 ☛ 코드짜고 ☛ 실행 하고 ☛ 성공하면 OK, 에러 나면 고치기

현업에 계신 전문가가 짠 코드기 때문에 굉장히 알아보기 쉽고, 뭐 file path 에러나 Module 에러 제외하고는 난 에러도 거의 없습니다.

깃헙에 소스코드가 공개되어 있기 때문에, 제가 타이핑하다가 난 실수는 금방금방 체크가 가능했습니다.

『파이썬과 리액트를 활용한 주식 자동 시스템』 예제 코드. Contribute to wikibook/stock-trading development by creating an account on GitHub.

2. 어려웠던 점

일단 제가 주식에 대해서 아무것도 모른다는 점이 코딩할 때 제일 힘들었습니다.

저는 이번에 주식시장이 열리고 닫힐 때만 사고팔 수 있다는 걸 처음 알았습니다. 그래서 초반에 xingAPI를 사용해서 주식을 사고 파는 기능까지 구현하고 test 할 때, 알 수 없는 에러 메시지가 계속 났습니다.

가격을 잘 못 입력했다는 문구만 계속 봐서 짜증 날 때쯤 주식은 정해진 시간에만 사고팔 수 있다는 걸 알게 됐습니다.

이때 진짜 허무했습니다.. 게다가 삽질한 다음날이 총선이어서 이틀 동안 테스트 못해봤습니다ㅠㅠ

그리고 시가, 종가, 호가 유형 등등등 일단 코딩하는 시간보다 그런 용어를 이해하는데 더 오래 걸렸습니다.

아니 주식이 어렵다고 생각은 했는데 트레이드 알고리즘 짜기 전에 일단 용어부터 너무 어려워서 많이 헤맸습니다.

특히 위랑 똑같은데, 테스트할 때 호가 유형에서 삽질 많이 했습니다..

또 주식 전략을 아무것도 모르는 사람은 괜찮은 트레이드 알고리즘을 짜기 어렵습니다.

저는 주식의 트레이드 전략, 공식 이런 걸 하나도 모릅니다. 그냥 싸게 사서 조금 얹어서 팔면 되지 않나라는 가벼운 생각으로 뛰어들었는데 만만치 않았습니다.

뭐 하나 참고할만한 코드라도 있었으면 좋겠는데, 제가 참고한 책에서는 "내가 선택한 종목을 보유하고 있지 않으면 매수, 종목을 보유하고 있으면 매도"라는 정말 간단한 알고리즘만 적혀있었습니다.

이런 트레이딩 코드 자체가 자신만의 전략이기 때문에, 공개하면 제로섬 게임이 되어버리기 때문에 아무도 공개하지 않고 그냥 말로만 대충 이런 전략을 썼어~라고 얘기하더라고요.

전략도 모르고 이론도 모르는 데다 인터넷에서 이런 전략을 썼어~라고 얘기해줘도 용어를 이해 못해서ㅠ 저만의 트레이딩 알고리즘을 짜는데 큰 난관에 부딪혔습니다.

백테스팅 캡쳐

위는 제가 짠 트레이딩 코드를 백테스팅한 결과인데요, 그냥 저가에 사고 고가에 파는 굉장히 간단한 코드를 짜고 30초에 한번, 총 30분 동안 트레이딩 하도록 해봤는데 30분동안 매 수만 하고 매도를 못했습니다.

파는 가격을 너무 고점으로 잡아서 생긴 문제인 것 같습니다.

맨 처음에는 사기만 하고 팔리지가 않는 알고리즘을 짜서ㅋㅋ 30분 백테스팅에 -200,000원 손해 보기도 했습니다.

그것보단 낫지만, 여기서 더 고쳐나가야 하는데 그 방향을 어떻게 잡아야 할지 , 아직은 막막합니다. '

제가 참고한 책에는 퀀트 전략 중 NCAV나 신마법공식에 대해서 간단하게 이론과 정말 간단한 코드 몇 줄로 알려주긴 하는데요, 이론을 공부해서 코드를 짜려면 조금 걸릴 것 같습니다.

또 개발하면서 어려웠던 점은 이베스트의 xingAPI를 사용하다 에러가 나면 그 해결방법을 찾기가 어렵다는 점이었습니다. 사실 개발하다 보면 사소한 것도 에러가 잘 나는데, 보통은 구글링 하면 10에 8은 그 해결방법을 아주 잘 알려주는데, xingAPI는 한국인 중에서도 굉장히 소수의 사람만 사용하기 때문에ㅠ 에러 해결방법이 잘 안 나와있습니다.

그리고 xingAPI에서 반환하는 오류코드가 뭘 의미하는 건지 자세히 알려주질 않습니다.

저처럼 주식시장 열리는 시간 몰라서 헤매도, 구글에 나와있지 않기 때문에, 겁나 헤맬 수도 있다는 점 꼭 참고하세요.

진짜 시스템 트레이딩은 함부로 뛰어들면 안 되는 분야인 것 같습니다.

주식에 대해서 안다 or 프로그래밍을 할 줄 안다 둘 중에 하나라도 해당되지 않으면, 어렵습니다.

일단 제가 위에서 참고했다는 두 개의 책만 해도, 코딩에 대해서는 불친절합니다. 특히 첫 번째 책은 프로그래밍 문법은 아예 다루지 않기 때문에, 저도 처음 보는 건 파이썬 프로그래밍 책을 뒤져가면서 코딩했습니다.

정말 인내심이 있어야 하고, 바로 수익이 났으면 하는 마음으로 시작하면 오래가지 않을 거라는 말을 꼭 해드리고 싶습니다.

대면 강의가 시작하면 주식을 아는 학생과 스터디를 구성해서 트레이딩 알고리즘을 좀 짜 볼 계획이었는데요,

학교가 아예 1학기 전면 온라인을 선언해버려서, 계획이 물거품이 되었습니다.

바로 그제 부산에서 추가 확진자가 나와서 걱정이 이만저만이 아닙니다..

같은 관심사를 가진 지인이 있다는 게 정말 축복받은 거란 걸 요새 깨닫고 있는데요,

해커톤도 없고, 공모전도 없고, 취업 각도 안 서고, 한동안은 주식 분석+트레이딩 알고리즘 구현에 매진하려고 합니다.

어느정도 이론도 공부하고 간단하게 구현했을 때 관련 포스팅으로 돌아오도록 하겠습니다.

그리고 아래는 제가 막 검색하다가 알게 된 유튜브 동영상인데요.

현업에 종사하고 계신 트레이더 분께서 코딩을 할줄 알고, 금융을 모르는 사람이 100개의 로직을 짰다고 하면 거기서 수익이 날 로직이 좋게 말해서 한두개라고 말씀하시는데요, 하루에 한개씩 짠다고 해도 100일은 걸립니다..

혼자서 만드는 가상화폐 자동거래 시스템

이 책을 통해 시스템을 구성하는데 필요로 하는 기본적인 요소들을 익힐 수 있도록 하는게 목표이다.

Linux 관련, Git, Gitlab, REST API, MongoDB, Slack, Celery, Redis, Flask, AngualrJS, ReactJS, Ionic, Nginx, Supervisord등을 다 사용하여 전체 프로젝트를 완성할 것이다.

각 키워드만 해도 다 책 한 권씩 쓸 수 있을 정도로 매우 많은 내용이 있다. 현실적으로 필자 직업이 글을 쓰면서 먹고 사는 직업이 아니라 처음부터 상세하게 쓸 수는 없을 듯 하지만 지속적으로 보완하면서 책을 완성해가고자 한다. 우선은 이 프로젝트를 진행해보면서 가볍게 사용해본 뒤에 실전에서 필요한 부분이 생기면 그때 깊게 고민하고, 공부해서 자기 것으로 만들었으면 하는 바람이다.

그리고 여러 기술스택위에서 시스템 아키텍쳐를 어떻게 가져갈지 한번 고민해볼 수 있는 시간이 되었으면 한다.

덤으로 부가수익까지 올릴 수 있다면 금상첨화.

현재 필자는 5개월정도 운영하고 있는데 40%(실제 수익은 40%이나 자동 트레이딩으로 얻은 수익은 35%정도 이다.) 정도의 수익을 낸 상황이다. 현재 운영하고 있는 방식도 공개할 것이다.

굉장히 설명이 빈약할 수 있다. 글을 쓰는 작업이 익숙하지 않은 점도 있지만, 주어진 시간도 많지 않아 우선 전체 목차를 1차적으로 완성한 이후에 내용을 추가적으로 보충할 예정이다. 혹시 여기 목차중에 자세히 알고 싶은 부분에 대한 요청이 있으면 우선적으로 작성할 수 있도록 하겠다. 개인 이메일은 [email protected]이다 모든 진행 과정은 아래 gitlab에 공개하도록 하겠다. 소스는 책이 써가면서 해당 내용을 틈틈히 update하도록 하겠다. https://gitlab.com/hyunny88/auto-trading.git

책을 한번 읽다보면 알겠지만. 투자이든 투기든. 코인으로 돈벌려는 목적보다는 자기만의 시스템을 구축하는데 초점이 맞춰져서 진행된다. 자동거래도 충분히 손해를 볼 수 있다는 점 인지하길 바란다.

자동 거래 시스템

● 발행일: 2022년 3월 2일

● ISBN: 978-89-97924-96-7 93000

_ 도서 내용

이 책은 암호화폐 자동거래 프로그램의 설계부터 개발 후 활용까지 모든 과정을 다루고 있다. 파이썬의 기본적인 문법부터 설명하고 있지만 대부분은 실제 코드를 개발하는 과정과 함께 파이썬을 학습할 수 있도록 하였다 . 모든 과정에는 바로 실행해 볼 수 있는 실습코드가 제공되며 , 자동거래 프로그램은 충분한 단위 테스트와 통합 테스트를 갖추고 있는 오픈소스 프로젝트로 계속 개발되고 있다 . 프로그램을 바로 사용하고자 하는 개발자나 실습 위주로 파이썬을 학습해보고자 하는 사람에게 적합하다.

_ 대상 독자

파이썬으로 자신만의 암호화폐 자동거래 시스템을 만들어 보고 싶은 사람

완성된 프로그램 기반으로 파이썬을 기초부터 배워보고 싶은 사람

급변하는 시대에 파이썬의 능력을 꼭 챙기고자 하는 사람

1 장 파이썬과 암호화폐 트레이딩의 만남

__ 데이터를 다루기에 좋은 언어

__ 암호화폐는 실존하는 자산이다

__ 암호화폐 트레이딩의 장점

__Show me the money 소개

__ 파이썬 프로젝트의 디렉토리 구조

++ 생각 더하기 _ 단위 테스트는 가장 싸다

3 장 시뮬레이터부터 시작하자

__ 시뮬레이터를 선택한 이유

++ 생각 더하기 _ 빠르게 변경할 수 있어야 한다

++ 생각 더하기 _ 소프트웨어 개발자 관점에서 아이의 꿈을 찾는 방법

__ 테스트 주도 개발 시작하기

__ 단위 테스트 고급 기술 , mock

++ 생각 더하기 _ 아기 돼지 삼형제를 생각하며

__Simulation Data Provider 요구사항

__ 시뮬레이션 데이터 제공

Trader 와 Virtual Market

__Trader 와 Virtual Market 요구사항

++ 생각 더하기 _ 진짜 같은 시뮬레이션

__ 간단한 보고서 제공하기

__Operator 와 Simulation Operator 의 관계

__ 타이머를 통한 반복 실행

___ _main_ _ 모듈 데모

___ _main_ _ 모듈 구현

__Worker 와 Thread

++ 생각더하기 _ Operator 가 Controller 가 될 수는 없을까 ?

__ 데이터 리스트 합치고 정렬하기

__matplotlib 과 mplfinance, pandas

__ 캔들 그래프부터 그려보자

++ 생각 더하기 _ 그래프에서 영감을 얻자

블랙박스 같은 Log Manager

__logging 모듈 기본 사용법

__Handler 와 Looger

++ 생각 더하기 _ 재사용하기 좋은 모듈

__ 업비트 API 사용 준비

++ 생각 더하기 _ 업비트 자동 거래 시스템 라이브러리를 사용하지 않은 이유

__ 빗썸 API 사용 준비

__ 최근 거래 정보 조회하기

++ 생각 더하기 _ 좋은 API 는 어떤 것일까 ?

실시간 Data Provider

__ 업비트 Data Provider

__ 빗썸 Data Provider

__Controller 사용 실습

___ _main_ _ 모듈에 Controller 추가하기

주피터 노트북 원격 접속 설정

++ 생각 더하기 _ 작고 잦은 릴리즈

__ 주피터 노트북 Controller

__ 주피터 노트북 Controller

__ 주피터 노트북 Controller 구현

10 장 텔레그램 Controller

__ 텔레그램 챗봇 등록하기

__ 챗봇 계정의 메시지 가져오기

++ 생각 더하기 _ 작은 차이가 명품을 만든다

__ 시뮬레이션 결과 비교 분석

_ 주요 내용

무료로 공개되는 오픈소스 프로젝트

자동거래 프로그램의 설계부터 개발 후 활용까지 모든 과정 수록

각 단계마다 바로 실행해볼 수 있는 실습 코드 제공

전문 개발자가 아니어도 쉽게 사용할 수 있는 인터페이스

_ 파이썬의 기본과 시뮬레이터 (1 장 ~3 장 )

자동매매 시스템을 만들기 위한 파이썬의 기초를 다룬다 . 핵심만 다루며 , 추가로 필요한 부분은 본문에서 다룬다 . 그리고 시작 시점에서 아주 간단하게 시뮬레이터를 만들어본다 . 전체 시스템의 구조를 볼 수 있다 .

_ 컨트롤러 만들기와 시각화 (4 장 , 5 장 )

시스템의 전체 운영을 담당하는 컨트롤러를 만들어본다 . 그리고 성능이 어느 정도 되는지 확인하기 위해서는 좀 더 입체적인 분석이 필요하다 . 기능과 성능 모두를 좀 더 명확하게 분석하기 위해서 Analyzer 모듈을 개선해본다 .

_ 업비트 트레이더와 빗썸 트레이더 (6 장 , 7 장 )

본격적으로 실전 거래를 준비한다 . 실제 거래소에 주문을 넣고 계좌 정보를 연동하는 기능을 만들어본다 . 우리 책에서는 업비트와 빗썸의 API 를 다룬다 .

_ 실전 거래와 원격 거래 (8 장 , 9 장 )

거래소를 담당하는 Trader 를 사용해서 실전 거래를 하기 위해 준비해야 할 것을 알아보고 , 실전 거래용 Data Provider 와 Controller 를 만들어서 실전 거래를 해본다 . 원격으로 컨트롤하는 기능을 추가하기 위해서 주피터 노트북을 활용해 본다 .

_ 텔레그램 컨트롤러 (10 장 )

모바일에서는 기존 시스템이 불편하고 보안도 신경쓰이기 때문에 텔레그램 챗봇을 이용한 Controller 를 만들어 본다 .

_ 전략 최적화 (11 장 )

대량의 시뮬레이션을 수행해 보고 전략을 최적화하는 과정을 함께 진행해 본다 . 시뮬레이션의 결과를 확인하고 문제점을 찾아서 개선해 나가는 과정을 다룬다 .

함께 제공되는 자동거래 프로그램은 ‘돈 받고 팔아도 되겠다’라는 말을 들을 수 있도록 노력했다. 무료로 공개되는 오픈소스 프로젝트이지만, 상용 프로그램 못지않게 누구나 사용하고 싶은 마음이 들도록 매력적으로 만들고 싶었다. 당장 나부터 유용하게 사용하고, 전문 개발자가 아니어도 쉽게 사용할 수 있는 인터페이스를 제공하려고 노력했다. 조금씩 기능이 더해지다 보니 오히려 책이 늦어졌는데, 프로젝트는 계속 더 발전해서 많은 사람에게 도움이 되었으면 좋겠다.

_ 저자 소개

우연히 들어간 회사에서 15 년을 지내는 동안 다양한 SW 개발 업무를 진행해 보았지만 , 여전히 계속 배우고 , 도전하고 뭔가를 다시 시작하는 일로 늘 분주하다 .

한 때는 모니터 앞에 붙어 키보드에서 손을 떼지 못하는 개발자의 모습이 너무 싫어서 전업을 꿈꿨었다 . 그때는 컴퓨터라는 작은 상자에 갇혀서 날개를 펴지도 못하고 늙어가는 것만 같았다 . 하지만 키보드 하나 , 컴퓨터 하나로 세상을 바꿀 수 있고 , 세계 곳곳의 개발자와 사용자들을 만나고 교감을 나눌 수 있다는 것을 알게 된 후 개발자라는 직업에 감사한 마음이 들기 시작했다 . 해가 갈수록 개발자 한 사람의 영향력이 커져만 가는 요즘은 그 능력으로 무엇을 할 수 있을까 설레기도 하고 , 새삼 겸손한 마음이 들기도 한다 .

프로그래밍은 더 이상 소수 전공자들의 작업이 아니다 . 모두가 즐길 수 있고 , 누릴 수 있는 능력이고 놀이다 . 마음껏 즐기면서 다른 사람들에게 소개하고 싶은 기쁜 마음으로 책을 썼다 .


0 개 댓글

답장을 남겨주세요