프로그래밍시 데이터들로부터 빈도를 측정하는 것은 매우 자주 있는 일 입니다. 이런 경우 프로그래밍언어에 따라서 다르 긴 하지만 hash 또는 dictionary 형태의 변수를 활용하여 데이터에 따른 빈도를 Count 할 수 있습니다.

저는 요즘 증권사 API를 사용해 보고 있고 주로 Python 을 많이 활용하는데 아래 주소에서 Counter() 에 대한 설명이 자세히 나와 있더군요.

https://data-flair.training/blogs/python-counter/

아래 코드와 같이 너무나 간단하게 데이터의 빈도를 세고 빈도 횟수에 따라 정렬하는 등의 작업을 할 수 있습니다. for 문 등을 사용하여 iteration 을 하고 싶은 경우 dict() 를 통해 dictionary 로 만든 후에 사용 할 수 있더군요. 아무튼 굉장히 편리 할 것 같습니다.

from collections import Counter


c=Counter(['a','b','c','a','b','a'])

print(c)

print(c['a'])

print(c.most_common())

for key,val in dict(c).items():

    print(key, val)

위 코드의 실행 결과는 아래와 같습니다.

Counter({'a': 3, 'b': 2, 'c': 1})

3

[('a', 3), ('b', 2), ('c', 1)]

('a', 3)

('b', 2)

('c', 1)



제 블로그를 보신 분들은 아시겠지만  저는 소프트웨어 뿐만이 아니라 주식이나 펀드 매매에도 관심이 있습니다. 소프트웨어 개발 경력이 있다보니 자연스럽게 시스템트레이딩에 관심을 갖게 되었습니다. 예전부터 관심이 있었지만  4~5 년 전에는 일반인들이 시스템트레이딩을 접하기가 그렇게 쉽지 않았습니다. 시스템 트레이딩을 하기 위해서는 증권사 API(Application Programming Interface)가 필요한데 예전에는 이런 API 들이 조금 미흡한 편이었습니다. 하지만 최근에는  증권사 API들이 잘 갖추어지고 있고 제가 알고 있기로는 키움, 대신, 이베스트, 미래에셋대우 증권 등에서 API를 제공해 주는 것으로 알고 있습니다.


시스템트레이딩을 하기 위해서는 소프트웨어 코딩 기술 뿐만이 아니라  수익 전략이 필요합니다. 수익 전략은 일종의 트레이딩 알고리즘이라고 보시면 될 겁니다. 소프트웨어 코딩 기술보다 수익  전략을 만들어내는 것이 훨씬 더 어려운 부분이라고 할 수 있습니다. 저는 아직까지도 수익 전략이 없어서 증권사 API를 사용하여 실 투자를 하고 있지는 않습니다.


하지만 매일매일의 종목 검색이나 계좌 내역을 정리하는데  증권사 API를 사용하고 있습니다. 실제 투자를 할 때는 ‘서버 자동 매수 매도’ 기능을 자주 사용하고 있고  증권사 HTS 비교 결과 이베스트증권의 해당 기능이 조금 더 괜찮은 거 같아서 이베스트증권을 사용하고 있습니다.  이베스트증권에서 '서버 자동 매수 매도 기능'은 ‘[5220] 주식스탑로스(자동주문)’ 창을 사용하시면 됩니다.


증권사 API에 대해서 공부하기 위해서 제가 참조한 사이트들을 몇 가지 정리해 보고자 합니다.


첫 번째로 굉장히 도움이 많이 됐던 사이트로 WikiDocs 의 ‘파이썬으로 배우는 알고리즘 트레이딩’ 이 있습니다.  주소는 아래와 같습니다.


https://wikidocs.net/book/110


위 사이트에서는 증권사 API 사용을 위한기본적인  파이썬 언어의 문법과 프로그램 설치 방법 간단한 API 사용 예 등을 알 수 있습니다.  처음 시작하는데 매우 도움이 됐던 사이트입니다.


두 번째로 도움이 됐던 사이트로 아래 블로그 들이 있습니다. 아래 블로그에서는 초기 API 사용 시 샘플코드들을 볼 수가 있었고 리눅스에서도 API 제공이 되는지에 대한 궁금증을 해결할 수가 있었습니다.


http://freeprog.tistory.com/344


http://systemtraders.tistory.com


마지막으로 매우 당연하지만 xingAPI 도움말입니다.


http://www.ebestsec.co.kr/apiguide/guide.jsp?cno=100


엑셀을 샘플로 한 설명이지만 이베스트증권 xingAPI 에서  어떤 기능들이 있는지를 확인할 수 있고 xingAPI 를 설치하시면 아래 주소에서 엑셀 파일 샘플들을 확인할 수 있습니다.


C:\eBEST\xingAPI\샘플


최근에는 e종목검색 기능이 추가 됐고 종목검색 전략을 API에서 사용할 수 있도록 해  준다는 것을 알 수 있었습니다.


  1. 박아지 2019.05.11 16:29

    pkc1@naver.com
    선물.옵션 자동매매 프로그램을 의뢰하면 비용이 얼마나 드나요 (ebest 증권 선호하나 관계 없음.)
    source code 를 받고 싶습니다 . 최소한 매매 로직을 수정할 수 있어야 합니다
    파이썬이나 비베 같은 쉬운 프로그램이면 좋을 것 같아요
    효율이 있으면 상업화 의사도 있습니다.
    핸드폰 or 문자 가 편합니다 anytime 9787 8753

    • 남성 2019.05.11 20:38 신고

      증권사 API 관련 게시판에 문의 하시는게 더 좋을것 같네요. 거기에 문의 하면 아마도 원하시는 답변 얻을 수 있을 겁니다.

어제 간만에 블로그 스킨을 변경 했습니다. 


제 블로그 이름은 "남성의 MATLAB LOG" 인데 기존의 스킨에서는 이 블로그 이름이 안나오더군요.


TickTock 이라고 되어 있어서 내 블로그 제목을 사람들이 TickTock 으로 오해 할 수도 있겠다는 생각이 들더군요. 


그리고 기존에 스킨에서는 글자가 좀 보기 불편하게 나오는것 같아서


정말 백만년 만에 스킨을 변경 했습니다.


티스토리 스킨 변경 관련 웹서핑을 조금 해 보니 스킨은 반응형으로 하는게 좋다고 해서 반응형 스킨으로 변경 했고~ 


이제 애드센스 광고를 넣는데... 이게 간만에 해보니 어디에 넣는게 맞는지 잘 모르겠더군요.


요즘은 애드센스 광고 넣기가 플러그인 형태로 되어 있어서 좋긴 한데


저는 오래전부터 글 하단 광고의 경우 블로그 글에 직접 넣도록 해 왔어서 블로그 하단 광고를 일일이 빼기가 곤란하더군요.


모든 포스팅에 대해 한번에 바꿔 주려면.... 이참에 tistory open api 를 다시 조금 만져 봐야 될것도 같다는 생각도 들더군요.


현재 제 포스팅 중에 로또 관련 포스팅은  tistory open api 를 사용하여 일주일에 한번씩 자동으로 분석 내용이 올라가고 있긴 한데


글 올리기 api 이외의 다른 기능들은 아직 제대로 사용을 안 해봐서... 일단 이건 조금 뒤로 밀어 두고 


애드센스 일치하는 컨텐츠 광고를 넣어야는데... 


저는 일치하는 컨텐츠 광고를 포스팅 글과 댓글 사이에 넣고 싶은데 HTML 페이지의 어디에 넣었었는지 기억이 잘 안나더군요.


그래서 다음에 또 이럴까봐 이번에는 기록을 해 놓습니다. 


일치하는 컨텐츠 광고를 포스팅 글과 댓글 사이에 넣고 싶다면 블로그 관리-> HTML/CSS편집 페이지에서 _article_rep_desc_ 를 검색한 후에

<div class="article">

[##_article_rep_desc_##]

</div>

아래 그림과 같이 그 밑에 adsense 코드를 넣어 주시면 됩니다. 

오늘 기록을 해 놨으니 다음에는 또 헷갈려 하는 일 없을 것 같네요. 



현재 visio 2013 버전을 사용하고 있으며 C# 을 사용하여 Visio 파일 자동화를 하곤 한다


이번에 Windows 를 다시 깔면서 visio 2013 을 다시 설치 했는데 


C# 을 사용하여 Visio 파일을 저장할 때


vsd 확장자로 저장하면 다음과 같은 에러가 발생했다.


System.Runtime.InteropServices.COMException (0x86DB09C6):


잘 되던게 안되서 무척 당황하다가 


아래 링크를 통해 그 이유를 알 수 있었다. 


http://stackoverflow.com/questions/15659082/save-visio-2013-diagram-in-the-vsd-format


Visio API 의 버그라고 한다. vsdx 확장자로 저장하게 코드를 바꾸었더니 저장 문제가 해결 됐다.



MATLAB 의 Stateflow 는 Stateflow API 를 활용하여 m 파일 명령어로 구성 및 조정이 가능 합니다. 

 

때에 따라서는 일일이 사람이 Stateflow 를 그리는것 보다는 Stateflow API 를 활용하는것이 효율 적인 경우가 많이 있습니다.

 

Stateflow API 를 활용하면 Python 과 같은 스크립트 언어등을 활용하여 Stateflow 를 그리는 Code generation 등도 가능 합니다.

 

오늘은 Stateflow 에서 사용중인 Data 를 다 찾는 방법에 대해 알아보려 합니다. 

 

Stateflow 에서 Data 를 다루기 위해서는 Stateflow.Data Object 를 다 찾으면 됩니다. 

 

Stateflow 에서 data 를 다 찾는 스크립트는 다음과 같습니다.

 

 

위 코드에서 sfroot 는 stateflow 의 root 즉, 최상위 stateflow 를 의미 합니다.

 

다음으로 아래 코드 부분이 Stateflow.Data 를 다 찾는 코드 입니다.

 

datav = m.find('-isa','Stateflow.Data');

 

그 이하 부분은 찾아진 데이터의 Name 필드를 vall 이라는 Cell 객체에 넣고~ vall(:) 명령을 통해 Command 창에 data 들을 나열 합니다.

 


C/C++ 을 사용하여 우리가 흔히 사용하는 ls 또는 dir 명령과 같이 directory 의 파일 또는 폴더의 리스트를 얻고 싶어서 찾아보니

 

아래 주소의 글이 나오더군요. 역시… stackoverflow

 

http://stackoverflow.com/questions/612097/how-can-i-get-a-list-of-files-in-a-directory-using-c-or-c

 

boost 와 같은 매우 좋은 라이브러리를 사용하는 방법도 있지만 첫번째 답변에 dirent.h 파일을 사용하는 방법이 설명 되어 있었습니다.

 

dirent.h 는 C POSIX library 에 포함되어 있으며 MinGW 나 GCC 등에서는 사용할 수 있지만 Visual Studio에서는 사용할 수 없더군요.

 

http://stackoverflow.com/questions/5530933/dirent-h-in-visual-studio-2010-or-2008

 

사실 이런 파일 리스트와 관련한 함수들은 Cross Platform 으로 구성되어야 코딩하기 편한데 각 플랫폼에 따라 다르게 코딩하는 방법을 알아야 된다는 게 귀찮더군요.

 

그런데 역시.. dirent.h 는 Visual Studio 에서 사용할 수 있도록 아래 주소에 API 가 있었습니다.

 

http://www.softagalleria.net/dirent.php

 

또한 첫 번째로 소개했던 주소에 Visual Studio 에서 사용 할 수 있는 dirent.h 의 링크가 있더군요.

 

http://www.softagalleria.net/download/dirent/

 

몇 가지 파일 중 dirent-1.11.zip 파일을 다운로드 받았고~ Codeblock 을 사용하여 빌드 해 봤습니다.

 

필요하신 분들을 위해 dirent-1.11.zip 파일도 올립니다.

  

dirent-1.11.zip


빌드 후에 아래 그림과 같이 dirTest.exe C:\Windows 라고 명령해서 C:\Windows 의 파일리스트를 확인해 봤습니다.

 

잘 되더군요.

티스토리 블로그를 사용하시는 분들은 아래 포스팅에서 간단하게 설명 드렸던 블로그 API를 많이들 사용하실 텐데요~

  2011/03/05 - [컴퓨터일반] - 블로그 API 이미지 업로드 안될 때


저는 MS Word API를 이용해서 포스팅을 주로 작성합니다.

 

일단 MS Word에 많이 익숙한 탓도 있지만~ 웹이 아무래도 글 쓰기에 그리 편하진 않더군요.

 

보통 Word 에서 블로그 게시물 템플릿을 열 때는 아래 그림과 같이 (MS office 2013 기준) 새로 만들기에 들어가서~ 블로그 게시물 만들기를 클릭하는데요~

 

저는 이렇게 단계별로 들어가기가 참~~ 귀찮더군요. 그래서 제가 좋아하는 Autohotkey 를 사용하여 바로 단축키로 들어가곤 합니다.

 

Autohotkey 는 아래 주소에서 다운로드 해서 설치 할 수 있고요~

http://www.autohotkey.com/ 


일단 블로그 게시물 템플릿 파일인 Blog.dotx 를 자신의 MS Office 설치 디렉터리에서 찾아봅니다.

 

저는 아래 폴더에~ Blog.dotx 파일이 있더군요.

 

C:\Program Files\Microsoft Office\Templates\1042

 

이제 템플릿 파일을 확인 했으면~ Autohotkey 로 실행 시키는 코드만 만들면 됩니다.

 

다음과 같이 Windows + W 키를 누르면 Blog.dotx 가 실행되도록 했습니다.

 

#w:: ; Win + W

    Run, "C:\Program Files\Microsoft Office\Templates\1042\Blog.dotx" ; Blog.dotx 의 Full path

return

 

이제 위 Autohotkey 코드를 실행 시키고~ Windows + W 키만 눌러주면 다음과 같이 블로그 게시물을 작성할 수 있는 MS Word 창이 나타나게 됩니다~



+ Recent posts