본문 바로가기
반응형

대동단결 Python28

R에서 만든 보고서를 티스토리에 자동으로 올리는 Python 매일 매일 발생하는 데이터를 스크립트 R로 처리하고 R markdown 으로 보고서를 만든다. 그 결과물을 자동으로 티스토리 블로그에 올릴 수 있도록 할 수 있다. R에서 만든 보고서를 티스토리에 자동으로 올리는 Python 이 블로그에는 매일 __돈키움픽__이라는 게시글이 올라온다. 돈키움픽은 매일 키움서버로 부터 주가데이터를 받아서 이를 처리하고 지수대비 상승한 종목을 우선순위로 보여준다. 이 과정에서 스크립트 언어인 R이 데이터를 처리하고, 키움에서 데이터를 수집하고, R에서 처리된 결과물을 블로그에 포스팅하는 것은 Python이 한다. 이 글에서는 R에서 처리된 자료를 티스토리에 자동으로 올리는 과정을 기술하고자 한다. R 스크립트 실행하기 import os os.system('"c:/Progra.. 2020. 12. 26.
티스토리 OpenAPI 사용하기 티스토리 OpenAPI에 관한 공식 도움말은 소개 · GitBook (tistory.github.io) 에서 볼 수 있다. 다음과 같은 절차로 진행된다. 앱등록 : 코드를 얻기위한 App ID 와 악세스토큰을 얻기 위한 Secret Key가 생긴다. 코드 얻기 : 악세스토큰을 얻기위해 코드가 필요하다. 악세스토큰 얻기 : 최종인증 절차 앱실행 악세스토큰은 한번 얻어지면 일정기간동안(3개월?) 계속해서 사용할 수 있다. 사용기간이 만료되었거나 잃어버려서 다시 얻기위해서는 '코드'라는 중간 단계 키를 얻어야 한다. 코드는 얻을 때 마다 매번 바뀌고 사용기간은 1시간이다. 코드가 얻어지면 바로 악세스토큰을 얻고 저장해 두어 사용해야 한다. 악세트토큰을 얻은뒤 코드는 불용처분된다. 1. 앱등록 OpenAPI를 .. 2020. 12. 13.
돈키움의 종목정보 실시간 처리 OpenAPI에서 실시간 처리는 SetRealReg(), 또는 CommKwRqData() 를 통해 가능하다. 일단 위 함수들을 통해 실시간 종목을 등록하면 다시 해지하기 전까지 서버에서 종목의 정보(현재가 등)가 변할 때 마다 그 정보를 실시간으로 보내주는데 이는 요청-응답의 다른 통신체계와 다르다. 실시간 이벤트가 뜰 때 마다 콜백함수를 통해 실시간으로 반영하다 보면 때때로 프로그램이 느려지게 되는데 특히 장 초반에는 거의 정지하다시피 느려진다. 장 초반에 엄청난 거래량이 형성되고 이 데이터가 실시간으로 오다보니 느려지는 건데 사실 이 때가 가장 중요한 시간이고 프로그램에서도 할 일 이 가장 많다. 엄청난 실시간 데이터를 무릅쓰고 해야 할 일을 원활히 해야 하는데 이 문제를 어떻게 해결 할 까? 일단,.. 2020. 9. 24.
OpenAPI, TR 수신 이벤트가 뜨지 않는다. 이 상황에 대한 해결책은 아직 얻지 못하였다. 상황은 이러하다. openAPI에서는 실시간 정보수집이 가능하다. 예를들어 원하는 종목의 현재가가 변할 때 마다 그 종목의 현재가가 자동 수신된다. 보유종목 또는 관심종목의 현재가를 실시간으로 관찰하거나, 지수를 실시간으로 관찰 할 수 있는 필수기능 중의 하나이다. 코스닥 지수를 실시간으로 관찰 하다가, 특정값이 되면 어떤 종목을 현재가보다 -3호가 아래에서 자동매수 되도록 구현하고자 한다. 지수정보가 실시간 도착하면 이를 처리하는 콜백함수에서 원하는 종목의 현재가를 얻어와야 한다. (미리 해당좀목의 현재가를 보관해 두는 방법이 있긴 한데, 종목이 많아지면 실시간처리 용량이 많아져서 시스템이 느려진다) 이때 종목의 현재가를 요청하는 TR을 보내면 이에 대한 .. 2020. 9. 12.
돈키움에서 TR 과 이벤트처리 돈키움에서 TR요청은 아래와 같은 형식을 따른다. 여기서 callBack=콜백함수주소 인자는 해당 TR요청의 응답이벤트가 도착했을 때 실행할 콜백함수의 주소이다. 1 2 donkiwoom.set_input_value("종목코드", code) donkiwoom.comm_rq_data( "주식기본정보요청", "opt10001", 0, "2400", callBack=self.주식기본정보가져오기) cs 이벤트 콜백함수는 아래와 같은 형식을 따른다. 1 2 def 주식기본정보가져오기(self, rqname, trcode, screen_no, next, record_name): pass Colored by Color Scripter cs donkiwoom.comm_rq_data 코드를 살펴보자. 1 2 3 4 5 .. 2020. 9. 12.
스크립트언어 파이썬에서 변수 유효범위 및 접근범위 파이썬은 스크립트언어인데, 컴파일러언어와 달리 코드가 작성된 순서대로 실행된다. 변수에 관해 이에 따른 특징들이 있다. 함수는 호출하기 전에 반드시 정의 되어 있어야 한다. 함수가 코드의 뒷부분에 정의되어 있다 하더라도 먼저 호출하면 실행되지 않는다. 반면, 컴파일러 언어는 소스코드 내 어딘가 정의되어 있는 함수이면 실행된다. 함수는 정의될 때 실행되지 않는다. 이건 함수의 근본적인 속성이므로 모든 언어에서 동일하다. 클래스는 객체화(인스탄스화)되기전에 반드시 정의되어 있어야 한다. 즉 클래스가 정의된 부분이 먼저 실행되어야 한다. 반면 컴파일러 언어에서는 클래스 정의된 부분이 소스코드 뒷부분에 있어도 좋다. 클래스 내부의 실행문은 정의될 때(읽혀질 때) 실행된다. 함수 내부의 실행문은 호출 될 때 실행.. 2020. 7. 12.
파이썬으로 웹서비스 하기 https://www.afternerd.com/blog/python-http-server/ Python: Let's Create a Simple HTTP Server (Tutorial) - Afternerd Web severs are everywhere. Heck you are interacting with one right now! No matter what type of software engineer you are, at some point in your career you will have to interact with web servers. May be you are building an API server for a backend service. www.afternerd.com 2020. 6. 28.
Python 에서 R 스크립트 실행 파이썬에서 외부 실행파일을 실행하기 위해 os 모듈의 system()를 사용할 수 있다. 같은 방법으로 R 스크립트를 파이썬에서 실행 할 수 있는데 다른 여러가지 방법 보다 이 방법이 가장 좋은 듯 하다. 1 2 import os os.system(“C:/Program Files/R/R-3.6.1/bin/Rscript.exe D:/works/GenieDonKiwoom/pythonOpenapi/test.R”) cs 이 방법은 아래의 사이트를 참조하였다. https://medium.com/@unfinishedgod/python%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%9C-r-%EC%A0%9C%EC%96%B4-scheduler-76610c0817d8 Python을 사용한 R 제어/Sche.. 2020. 6. 24.
ANSI 화면제어 파이썬으로 프로그램을 만들 때 옛날 방식 (텍스트모드) 로 출력할 경우가 있다. 이 때, 화면의 특정 위치에 특정 색으로 으로 출력하고 싶다면 다음과 같이 하자. 모듈설치 1 pip install colorama cs 소스작성 1 2 3 4 5 6 7 8 9 10 11 12 from colorama import * init() print(f'{Fore.WHITE}some red text {Back.YELLOW} 노랑배경글씨') print(Back.GREEN + 'and with a green background') print(Style.DIM + 'and in dim text') print(Style.NORMAL + 'and in dim text') print(Style.BRIGHT + 'and in d.. 2020. 6. 6.
pandas 기초 pasdas는 파이썬의 리스트와 딕셔너리의 개념을 혼합 짬뽕한 것. 매우 유용함. 임포트할 때 Series 와 DataFrame을 로컬네임스페이스 내로 직접 임포트 함.from pandas import Series, DataFrame시리즈는 리스트로 부터 변환된다.kakao = Series([92600, 92400, 92100, 94300, 92300]) print(kakao)이때 자동적으로 인덱스는 0을 포함한 정수형으로 생김리스트로 부터 시리즈를 만들 때, 인덱스를 직접 지정할 수 있다.시리즈변수명 = Series(데이터리스트, index=인덱스리스트)예)kakao2 = Series([92600, 92400, 92100, 94300, 92300], index=['2016-02-19', '2016-02.. 2020. 5. 6.
파이썬 기초 1.1 설치윈도우 7 기반, 파이썬은 아나콘다 배포판으로 설치, 아나콘다는 반드시 32비트용으로 설치해야 함. 국내 증권사 api 가 32비트 프로그램이기 때문인 것으로 사료됨. 책은 아나콘다 파이썬 3.6 32비트 버전임. 아나콘다 설치시 관리자 권한으로 설치.1.2 파이썬 인터프리터 바탕화면에 바로가기 만들기.C:\Anaconda3\Lib\idlelib\idle.bat 를 바탕화면에 바로가기 만듬. windows10에서는 c:\ProgramData\Anaconda3\Lib\idlelib\idle.bat 로 되어 있음.1.3 변수변수는 데이터의 주소를 담고 있음. 실제 데이터를 객체라고 함. 변수에 담긴 실제 데이터의 주소를 알고 싶으면 id(변수명).>>> x = 100 >>> x 100 >>> id.. 2020. 5. 6.
자동라인매매알고리즘 자동거래종목 데이터구조 종목코드, 종목명, 수량, 매수가, 익절가, 손절가, 주가상태, 매수일시, 매도일시 주가상태 매수전, 매수완료, 매도신호, 매매완료 조건검색 데드크로스 알고리즘 매수 주문은 지정가로 종목데이터 발생시 바로 주문 실행한다. 종목데이터 작성시 클립보드활용. 클립보드의 내용이 추가되면 이를 복사해 넣는 기능.(종목코드, 및 가격) 매수 주문 시간은 주문 가능한 시간으로 오전 8시20분 부터 오후 3시 30분 체결 완료 메세지가 오면 자동주문결과의 체결인지, 매수/매도 체결인지 확인후 주가상태 수정함. 주문후 매수가가 수정되면 기존 주문 취소후 재 주문. 매도조건검색은 매도타이밍을 지정하기 위해서 실행 보유종목중 익절가 근처이거나 손절가 근처에 오면 매도신호 발생으로 보고 주가상태를 매도.. 2020. 5. 5.
판서 바탕화면 만들기 요즈음 온라인 수업이 활성화 됨에 따라 판서프로그램이 많이 활용되는 듯 하다. 온라인 수업을 위해 보통 PPT를 준비해 두어 이를 기반으로 진행하거나, 아예 동영상으로 촬영 및 편집해 두어 이를 기반으로 진행하는 것이 일반적이다. 그러나 수학 수업의 경우 학생의 질문에 실시간으로 풀이하기 위해서는 판서프로그램을 더 많이 활용된다. 학생은 질문할 문제를 스마트폰으로 찍어서 보낸다. 이를 즉각 받아서 화면에 먼저 띄우고 적당한 영역을 잘라 클립보드로 복사해 둔다. 그리고 CTROL-k 그러면 판서프로그램의 바탕화면에 해당문제가 좌측상단에 나타나게 된다. 이를 위해 다음의 파이썬 코딩을 작성하였다. 123456789101112131415from PIL import Imagefrom PIL import Imag.. 2020. 5. 4.
반응형