파일 로깅 기능 추가.

GHTS 2023. 1. 10. 20:22 Posted by UnHa Kim

콘솔창을 닫으면 실행 기록이 사라져 버리고 이후 문제가 발생한 원인을 추적하는 데 애를 먹은 후,

콘솔창 출력 문자열을 파일에 동시에 저장하는 기능을 추가했다.

 

main() 함수 초반부에 다음과 같이 실행하면 해당 기능을 사용할 수 있다.

 

lib.F로그_설정_화면_파일_동시()
defer lib.F로그_파일_닫기()

 

lib.F문자열_출력(), lib.F에러_출력(), lib.New에러with출력()등의 함수에서 화면에 출력하는 내용이 'log_<연월일시분초>.txt' 파일에 저장된다.

1달이 지난 로그 파일은 삭제하여 저장공간을 꽉 채워서 문제가 생기는 현상을 미연에 방지해 놓았다.

 

 

'GHTS' 카테고리의 다른 글

KRX 상장 주식 수량 정보 수집 기능 추가.  (2) 2023.01.13
T8428 증시주변자금 단순화  (0) 2023.01.10
호가 단위 변경  (0) 2023.01.10
T8410 TR 추가.  (0) 2023.01.10
Xing API 초기화 문제 해결 (MsgPack -> Gob)  (2) 2022.11.02

T8428 증시주변자금 단순화

GHTS 2023. 1. 10. 20:12 Posted by UnHa Kim

T8428 TR은 입력값에 코스피, 코스닥을 구분하게 되어 있어서, 전체 시장 유동성을 파악하지 못한다고 생각하여 거의 사용하지 않고 있다가, DevCenter에서 시장 구분값을 입력하지 않으면 전체 시장 유동성 관련 값이 나오는 것을 뒤늦게 발견하고, T8428 입력값에서 시장 구분을 없애고, 전체 시장 유동성을 파악하는 데 도움이 되도록 단순화 하였다.

 

 

'GHTS' 카테고리의 다른 글

KRX 상장 주식 수량 정보 수집 기능 추가.  (2) 2023.01.13
파일 로깅 기능 추가.  (0) 2023.01.10
호가 단위 변경  (0) 2023.01.10
T8410 TR 추가.  (0) 2023.01.10
Xing API 초기화 문제 해결 (MsgPack -> Gob)  (2) 2022.11.02

호가 단위 변경

GHTS 2023. 1. 10. 20:09 Posted by UnHa Kim

2023년부터 새로운 호가 단위가 적용된다.

 

이에 대응하는 코드는 작년 11월경에 미리 작성해 두었으나, 당시 언론기사에 나온 기준과 2023년부터 실제로 적용된 기준이 미세하게 달라서, 에러가 발생하는 것을 발견하고, 현재 기준에 맞게 수정했다.

 

며칠 전 이미 적용된 내용이지만, 블로그에 기록해 두는 것을 깜빡하고 있다가 뒤늦게 올린다.

'GHTS' 카테고리의 다른 글

파일 로깅 기능 추가.  (0) 2023.01.10
T8428 증시주변자금 단순화  (0) 2023.01.10
T8410 TR 추가.  (0) 2023.01.10
Xing API 초기화 문제 해결 (MsgPack -> Gob)  (2) 2022.11.02
야후! 금융 재무 정보 얻기.  (0) 2022.10.08

T8410 TR 추가.

GHTS 2023. 1. 10. 20:05 Posted by UnHa Kim

그동안 일일 가격 정보 수집에 T8413 TR을 애용해 왔으나,

2023년 1월 5일에 이베스트투자증권 API게시판에 올라온 공지에 따르면 T8413 TR은 종가가 수정종가로 바뀌고, 게다가 이후 삭제될 예정이라고 한다.

대체품으로 새로 생긴 TR이 'T8410'이다.

 

'T8410'은 수정주가 적용 여부를 선택할 수 있고, 연봉 데이터도 제공한다는 점에서 기능 개선이 있다.

xing.util 패키지 내 일일 가격 정보 수집 기능에서 (T8413 대신) T8410을 사용하도록 수정했다.

 

데이비드 라이언

투자 이야기 2023. 1. 6. 16:09 Posted by UnHa Kim

 

David Ryan (@dryan310) / 트위터 (twitter.com)

 

David Ryan (@dryan310) / 트위터

3 time U.S Investing Champion 1985,86,87, Portfolio Mgr New USA Growth Fund 1993-98, Wm O'Neil & Co. 1982-98, Ryan Cap Hedge Fund Mgr 1998-2014

twitter.com

 

강환국 라이브 강의 중 소개된 마켓 타이밍의 고수 '데이비드 라이언'.

 

이 분 트위터를 읽어보니 역추세 기반 마켓 타이밍의 귀재인 것 같다.

 

틈틈이 들어가서 확인해야 할 듯.

'투자 이야기' 카테고리의 다른 글

마크 미너비니  (0) 2023.02.11
데이비드 라이언  (0) 2023.02.11
팩터 모델의 경쟁력.  (2) 2022.11.02
투자 성과의 불균일성.  (0) 2022.09.23
손절매 혹은 추세 지표의 심리적 장애.  (2) 2022.09.23

Go언어 내장형 SQL 데이터베이스

프로그래밍 2022. 12. 19. 18:27 Posted by UnHa Kim

Java의 경우 프로그램 안에 SQL 데이터베이스를 내장하는 선택지가 몇 개나 존재한다.

(HSQLDB, H2 및 Apache Derby등등)

 

Go언어의 경우 (NoSQL, K/V 저장소는 있어도) 마땅한 내장형 SQL 데이터베이스가 없어서 아쉽다고 느꼈는 데, 알고보니 약 2년 전에 이미 Go언어로 작성된 SQL 데이터베이스가 작성되었는 데, 모르고 있던 것일 뿐이었다.

검색의 생활화가 시급하다는 것 또 다시 깨닫는다.

 

C언어로 작성된 sqlite를 Go언어로 포팅한 것인데, 배포 편의성을 감안하면 아주 유용할 것 같다.

 

https://gitlab.com/cznic/sqlite

 

cznic / sqlite · GitLab

Package sqlite is a CGo-free port of SQLite/SQLite3. SQLite is an in-process implementation of a self-contained, serverless, zero-configuration, transactional SQL database engine.

gitlab.com

 

https://pkg.go.dev/modernc.org/sqlite

 

sqlite package - modernc.org/sqlite - Go Packages

sqlite Package sqlite is a cgo-free port of SQLite. Although you could see mattn's driver (github.com/mattn/go-sqlite3) in go.mod file, we import it for tests only. SQLite is an in-process implementation of a self-contained, serverless, zero-configuration,

pkg.go.dev

 

Successful Algorithm Trading

책 리뷰 2022. 12. 19. 10:07 Posted by UnHa Kim

 

Successful Algorithmic Trading | QuantStart

 

Successful Algorithmic Trading | QuantStart

Actually, neither were we when we first started! We didn't know market orders from limit orders, the buy-side from sell-side or what a stop loss was! But we have practised over the last eight years and have learned a huge amount about algorithmic trading i

www.quantstart.com

개인적으로 엑셀, Python의 pandas, R의 dataframe등 데이터 분석 도구에 익숙하지 않다.

그래서, 전략 백테스트는 퀀트킹이나 퀀터스 같은 전문 백테스트 도구에 의존해 왔다.

그러나, 각 도구들은 약간씩 아쉬운 점이 있어서 (퀀트킹은 손절/익절 기능 없음. 퀀터스는 필터 기능 부족.) 자체적인 백테스트 능력을 키우고 싶은 욕구는 항상 있었다.

 

그런데, 백테스트 방식은 엑셀, 파이썬, R처럼 모든 데이터를 테이블 형태로 펼쳐놓고 하는 '벡터 방식 백테스트'만 있는 게 아니라, 데이터를 한 번에 1개씩(혹은 한 틱씩) 순차적으로 처리해서 그 결과를 차곡차곡 모아뒀다가 누적 결과를 분석하는 '이벤트 위주 백테스트'(Event-Driven Backtesting) 라는 기법도 존재한다는 것을 알았다.

 

'이벤트 위주 백테스트' 방식이 더 복잡하다고 되어 있지만, 개인적으로는 데이터 분석에 문외한인 입장에서는 이벤트 방식이 차라리 더 쉽게 느껴진다.

 

이벤트 위주 백테스트 엔진은 알고 보면 간단하지만, 기본 구조가 머리 속에 들어오기 전까지 막막하게 느껴져서 지금껏 헤매고 있었다.

그런데, 인터넷에서 Michael Halls-Moore의 'Successful Algorithm Trading'이라는 책에 이벤트 위주 백테스트 엔진을 구현하는 것에 대한 설명이 잘 되어있다는 내용을 접하고, 냉큼 PDF파일 다운로드 형식으로 구입했다.

 

파이썬 소스코드가 포함된 버전은 79달러이지만, Go언어로 구현할 예정이어서 소스코드가 없는 대신 저렴한 (PDF파일만 있는) 39달러 버전을 구매했다.

(코딩이 귀찮거나, 굳이 다른 언어를 사용하고 싶은 게 아니라면 소스 코드가 포함된 버전도 괜찮을 것 같다.)

 

제 13장이  'Event-Driven Trading Engine Implementation', 즉, 이벤트 기반 트레이딩 엔진 구현 관련 내용이다.

이벤트 드리븐 백테스트를 어떻게 구현하는 지에 대한 기본 구조에 대해서 이해하기 쉽도록 간결하게 설명되어 있다.

대략 50여 페이지 분량의 길지 않은 분량의 13장 내용만으로도 39달러의 값어치는 충분히 한다고 생각된다.

 

나중에 시간날 때 나머지 내용도 읽어봐야 할 것 같다.

'책 리뷰' 카테고리의 다른 글

Julia for Data Analysis  (0) 2023.05.05
장단기 투자의 비밀 (래리 윌리엄스)  (0) 2023.02.11
가상화폐 투자마법 공식  (0) 2022.11.05
인플레이션에서 살아남기.  (0) 2022.10.14
행운에 속지 마라.  (0) 2021.10.18

가상화폐 투자마법 공식

책 리뷰 2022. 11. 5. 12:54 Posted by UnHa Kim

systrader79 책 중 지수 ETF를 투자 대상으로 하여 변동성 조절과 추세의 개념만으로 전략을 구성하는 과정을 잘 보여주는 '주식투자 ETF로 시작하라'라는 책이 있습니다.
해당 서적은 모멘텀 스코어라는 중장기 지표가 핵심 추세 지표로 소개되었고, 래리 윌리엄스의 '변동성 돌파 전략'은 중장기 전략을 보완하는 단기 트레이딩 아이디어 중 하나로 간략하게 (스쳐가듯) 소개되어 있습니다.

 

'가상화폐 투자마법 공식'책은 강환국님과 systrader79님 공동 저서입니다.
매매 대상이 ETF에서 '가상화폐'로 바뀌었고, 래리 윌리엄스의 '변동성 돌파 전략'이 중심 아이디어가 되었습니다.
'가상 화폐'가 장기 우상향 한다는 보장이 없는 자산군이다보니 단기 전략 위주로 나와 있으며, 

가상 화폐가 상대적으로 변동성이 큰 자산군이다보니

투자 심리와 투자 지속성 측면에서 변동성과 리스크 관리의 중요성이 대폭 강화되어 있습니다.
'변동성 돌파'라는 단기 추세 지표에 분산, 마켓타이밍과 변동성 관리를 가미하여 전략을 발전시켜나가는 과정이 잘 나와있습니다.

핵심 아이디어를 기반으로 여러 개념을 가미하여 전략을 발전시켜나가는 과정을 보여준다는 면에서 
systrader79님의 '주식투자 ETF로 시작하라'과 비슷한 면이 있지만,
중장기가 아닌 단기 전략에서도 그게 가능하고, 이러한 방식은 자산군을 가리지 않고 가능하다는 것을 보여준다는 측면에서 상당히 독창적인 책입니다.

개인적으로는 전통적인 자산군의 중장기 전략만 운용하던 터라, '가상화폐'라는 비전통적인 자산군만큼이나 단기 전략에 대한 관심이 높아지는 영향도 컸습니다.

'책 리뷰' 카테고리의 다른 글

장단기 투자의 비밀 (래리 윌리엄스)  (0) 2023.02.11
Successful Algorithm Trading  (0) 2022.12.19
인플레이션에서 살아남기.  (0) 2022.10.14
행운에 속지 마라.  (0) 2021.10.18
역발상 투자  (0) 2021.10.18

팩터 모델의 경쟁력.

투자 이야기 2022. 11. 2. 22:48 Posted by UnHa Kim

탄탄셀렉트 강환국 라이브 강의 내용 중 인상 깊은 내용을 기록한다.

 

닭대가리(혹은 침팬지)와 투자 전문가를 경쟁시켰는 데, 닭대가리(혹은 침팬지)가 무작위로 선정한 종목의 투자 성과가 투자 전문가들보다 더 높았다.

이렇게 닭대가리(혹은 침팬지)보다 못한 투자 전문가에게도 지는 게 일반인의 투자 수준이다.

(그러나, 일반인은 본인의 수준이 그 정도로 참혹하다는 것을 깨닫지 못한다.)

 

팩터 모델의 계량 투자는 인간으로 따지자면 중2, 무기로 따지자면 '활' 정도의 수준에 불과하다.

최상위 투자 고수들, 무기로 따지자면 기관총이나 핵무기가 오가는 경쟁 시장에서는 부족한 수준이다.
그러나, 투자 실력이 부족한, 무기로 따지자면 맨주먹 밖에 없는 일반 투자자들에게는 충분히 이긴다.

 

경쟁이 치열한 대형주 시장에서는 팩터 모델만으로 경쟁력을 가지기 쉽지 않다.

선진화 되고 효율적인 미국 대형주 시장에서는 더더욱 그러하다.

그러나, 미국 주식 시장이 아무리 선진화 되고 효율적이라도 해도, 대규모 기관 투자자의 비중이 낮고, 일반 투자자의 비중이 높은 소형주 시장에서는 간단한 팩터 모델로도 여전히 경쟁력을 가질 수 있다.

 

이것은 강환국 라이브 강의 중 높은 투자 수익율을 기록하는 미국 소형주 전략의  백테스트 결과를 설명하면서 나온 내용이다.

 

 

 

'투자 이야기' 카테고리의 다른 글

데이비드 라이언  (0) 2023.02.11
데이비드 라이언  (0) 2023.01.06
투자 성과의 불균일성.  (0) 2022.09.23
손절매 혹은 추세 지표의 심리적 장애.  (2) 2022.09.23
모멘텀 가속 지표  (0) 2022.06.10

Xing API 초기화 문제 해결 (MsgPack -> Gob)

GHTS 2022. 11. 2. 22:20 Posted by UnHa Kim

Go 1.19로 업그레이드 이후 MsgPack 변환을 위한 외부 의존성 라이브러리(github.com/ugorji/go/codec)에서 종종 에러가 발생하였다.

해당 라이브러리 개발자는 깃허브 issue의 버그 보고에 대응을 제대로 못하고 있다.

 

이 문제를 해결하기 위해서 문제를 일으키는 외부 코드에 대한 의존성을 삭제하기로 했다.

Go언어에는 'Gob'이라는 변환 기능이 내장되어 있다. (참고 : https://pkg.go.dev/encoding/gob)

Gob은 MsgPack보다 범용성/호환성은 떨어지지만, 사용 편의성과 성능에서 크게 뒤처지지 않는다.

 

MsgPack 변환을 이용하는 모든 기능을 Gob변환 형식으로 바꾸어서 외부 코드를 더 이상 사용하지 않도록 하니 더 이상 에러가 발생하지 않는다.

대신, ghts/xing/dll32 패키지는 Go언어에서만 사용할 수 있게 제한되었다.

하지만, 아마도 다른 언어에서 dll32 패키지만 쏙 빼서 사용하는 경우는 무척 드물 것이므로 크게 문제 되지는 않을 것으로 예상된다.