About KissMe
KissMe 는 KIS API 를 연동한 swift 라이브러리입니다.
KissMeConsole
KissMeConsole 은 command line 에서 인터렉티브 명령어로 API 호출을 테스트해볼 수 있는 도구입니다.
KissMeConsole 에서 유효한 command line 명령어는 다음과 같습니다.
command list
| command | 설명 |
|---|---|
quit |
종료 |
login mock |
Mock 서버로 로그인. mock-server.json 을 credential 로 사용. |
login real |
Real 서버로 로그인. real-server.json 을 credential 로 사용. |
logout |
접속한 서버에서 로그아웃. |
top (0,1,2,3,4) |
상위 거래량 30종목 (0:평균거래량, 1:거래증가율, 2:평균거래회전율, 3:거래금액순, 4:평균거래금액회전율). data/top-(BELONG).csv 파일로 저장. |
buy (PNO) (가격) (수량) |
상품을 구매. (가격) 에 -8282 로 입력하면 시장가격. (수량) 에 -82 로 입력하면 최대수량. |
buy check (PNO) (가격) |
현재 잔고로 구매가 가능한 수량을 확인. |
sell (PNO) (가격) (수량) |
보유한 상품을 판매. (가격) 에 -8282 로 입력하면 시장가격. |
cancel (PNO) (ONO) (수량) |
주문 내역의 일부를 취소. (수량) 에 -82 로 입력하면 전체수량. |
WIP modify (PNO) (ONO) (가격) (수량) |
주문 내역을 변경. (수량) 에 -82 로 입력하면 전체수량. |
open bag |
보유 종목 열람. 보유 주식은 data/account-stocks.csv 파일로 저장. 잔고 상황은 data/account-amount.csv 파일로 저장. |
now [PNO] |
종목의 현재가 열람. PNO 은 생략 가능. |
candle [PNO] |
종목의 분봉 열람. PNO 은 생략 가능. data/(PNO)/min/candle-(yyyyMMdd).csv 파일로 저장. |
candle all |
모든 종목의 분봉 열람. cron job 으로 돌리기 위해서 추가. data/(PNO)/min/candle-(yyyyMMdd).csv 파일로 저장. |
candle day [PNO] |
종목의 최근 250일 동안의 일봉 열람. PNO 은 생략 가능. data/(PNO)/day/candle-(yyyyMMdd).csv 파일로 저장. |
candle day all |
모든 종목의 최근 250일 동안의 일봉 열람. cron job 으로 오전 장이 시작전에 미리 수집. data/(PNO)/day/candle-(yyyyMMdd).csv 파일로 저장. |
candle week [PNO] |
종목의 최근 52주 동안의 주봉 열람. PNO 은 생략 가능. data/(PNO)/week/candle-(yyyyMMdd).csv 파일로 저장. |
candle week all |
모든 종목의 최근 52주 동안의 주봉 열람. cron job 으로 오전 장이 시작전에 미리 수집. data/(PNO)/week/candle-(yyyyMMdd).csv 파일로 저장. |
load shop |
data/shop-products.csv 로부터 전체 상품을 로딩. |
update shop |
금융위원회_KRX상장종목정보 로부터 전체 상품을 얻어서 data/shop-products.csv 로 저장. |
look (상품명) |
(상품명) 에 해당되는 PNO 를 표시함. |
WIP showcase |
추천 상품을 제안함. |
loves |
관심 종목 전체를 열람. profile.json 에 저장된 관심 종목을 표시함. |
love (탭).(번호) (PNO) |
관심 종목에 추가함. (번호) 를 지정하지 않으면 (탭) 마지막에 추가함. |
hate (탭) (PNO) |
관심 종목에서 삭제함. |
- PNO 는
Product NO의 약자이고, 상품의단축코드(shortCode) 와 동일합니다. - ONO 는
Order NO의 약자이고, 고유한 주문번호 입니다. - BELONG 는 다음과 같은 명칭이 있다.
- 평균거래량: average-volume
- 거래증가율: volume-increase-rate
- 평균거래회전율: average-volume-turnover-rate
- 거래금액순: transaction-value
- 평균거래금액회전율: average-transaction-value-turnover-rate
KissMeMatrix
KissMeMatrix 는 다양한 주식의 지표 집합(index set) 통해서 교집합 종목을 찾아내는 데이터 모델 도구입니다.
교집합 종목 중에서도 score 계산을 시도하고, score 값에 따라 정교하게 투자 비율을 조정할 수도 있을 것입니다.
TODO
- score 계산에는 가중치(weight)를 두어서 현실적인 score 를 계산하도록 할 것입니다.
- weight 계산에는 deep learning 을 수행할 것입니다.
matrix model list
| model | 설명 |
|---|
KissMeGolder
KissMeGolder 는 KissMeMatrix model 을 충실하게 따르면서, 자동으로 주식 매매를 수행하는 로봇입니다.
사용하고자 하는 model 에 따라서 다양한 투자 성향을 가질 수 있도록 설계할 것입니다.
Credential json
credential 로 사용하는 json 의 양식은 다음과 같습니다.
mock-server.json, real-server.json
{
"isMock": false,
"accountNo": "12345678-90",
"appKey": "xxxxxxxxxxx",
"appSecret": "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
}
mock-server.json, real-server.json 파일을 ./bin 디렉토리에 생성합니다.
isMock값이true이면 모의서버,false이면 실전서버를 의미합니다.accountNo에는 계좌번호를 의미합니다. 8-2 형태의 숫자로 입력합니다.appKey는 한국투자증권 홈페이지에서 발급받은 appkey 입니다.appSecret는 한국투자증권 홈페이지에서 발급받은 appsecret 입니다.
shop-server.json
{
"openApiKey": "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
}
shop-server.json 파일을 ./bin 디렉토리에 생성합니다.
openApiKey는 data.go.kr 에서 발급받은 API 인증키입니다.- 다음의 Open API 활용신청을 합니다.
How to build
macOS
macOS 환경에서는 최신 Xcode 14.x 이상을 설치하고, Command line tool 을 설치하면 됩니다.
% xcode-select --install
다음의 script 로 빌드하고, ./bin 경로에서 빌드된 tool 들을 이용하면 됩니다.
% git clone git@github.com:whomakemecrazy/kissme.git
%
% cd kissme
% ./scripts/build.sh
%
% cd bin
% ./KissMeConsole
Linux
Linux 는 현재 ubuntu 20.4 를 지원합니다.
다음의 guide 를 따라서, swift 컴파일러를 설치합니다.
$ cd kissme
$ ./scripts/build.sh
$
$ cd bin
$ ./KissMeConsole
Windows
Windows 는 현재 Windows 10 이상을 지원합니다.
다음의 사이트에서 Swift 컴파일러를 설치합니다.
PowerShell 에서 다음의 script 로 빌드하고, .\bin 경로에서 빌드된 tool 들을 이용하면 됩니다.
PS >> cd kissme
PS >> powershell ./scripts/build.ps1
PS >>
PS >> cd .\bin
PS >> .\KissMeConsole
Android (TODO)
Android 는 cross compile 과정이 필요하기 때문에 차후에 지원할 예정입니다.
License
이 소스의 라이센스는 Private 입니다.