앞의 게시물에 이어, 조건 검색 관련 함수들을 Qt Designer로 만든 UI에 연결시키도록 하겠습니다. 1편 : kminito.tistory.com/36 2편에서 다룰 내용 - UI와 함수 연결 - 로그창 작동 - 텔레그램 알림 구현 참고 : 조건 검색 실행은 각 조건식별로 1분에 5회의 검색 제한이 있습니다. 테스트를 하다 보면 같은 조건식을 1분에 5회 이상 실행하게 될 경우가 있으므로, 조건 검색이 실패할 경우 잠시 기다렸다가 1분이 지나서 다시 실행하시면 됩니다. 4. UI와 함수 연결하기 1) 콤보박스에 조건 검색식 불러오기 위의 PyTrader 화면의 조건 검색식을 고르는 ComboBox에 사용자의 조건식을 불러오려고 합니다. 해당 콤보박스의 Object Name은 "comboBox_con..
조대표님의 위키독스 '파이썬으로 배우는 알고리즘 트레이딩' 프로그램에 조건검색 기능을 추가하여, 조건검색 해당 종목이 뜨면 휴대폰 텔레그램으로 알림을 받는 프로그램을 만들고자 합니다. 증권사는 키움입니다. 따라서 키움API와 PyQt에 대한 기본적인 이해를 필요로 합니다. 필요할 경우 위키독스(wikidocs.net/book/110)에서 기본을 익히시면 됩니다. 전체 코드 링크는 맨 아래에 있습니다. 작동 영상 일부러 실시간으로 종목의 편입/이탈을 반복하는 조건식을 선택하여 테스트했습니다. 1. 개요 키움증권의 조건검색 기능을 이용하여, 해당 조건을 만족하는 종목이 포착되었을 경우 텔레그램 메시지를 발송토록 하고자 합니다. 키움증권 OpenAPI에서 제공하는 조건검색 기능은 영웅문(HTS)에서 작성한 조..
키움증권은 서버 과부화 및 API 악용을 막기 위하여 API 사용 조회 및 주문 제한이 있습니다. 현재 공식적으로는 초당 5회 미만으로 제한을 두고 있으며, 추가적인 제한은 시장 상황과 서버 상황에 따라 유동적입니다. 1시간 이상 프로그램이 작동하며 많은 조회 및 주문이 이루어진다는 가정 하에, 3.6초의 시간간격을 두고 TR요청 및 주문을 하는 것이 일반적입니다. (작성일 2020년 10월 31일 기준) 3.6초 간격 : 1시간에 1,000회 -> 정상 작동 3.5초 간격 : 1시간에 1,028회 -> 조회 차단 발생 또한 키움에서는 시세/호가/조건검색/주문체결 등을 모두 실시간데이터로 서비스하고 있으니, 과도한 조회요청 대신에 실시간 이벤트와 실시간 데이터를 사용할 것을 권고하고 있습니다. 그리고 주..
수리산에서 땅콩으로 곤줄박이와 쇠박새를 유인했다. 장소는 임도오거리 근처. 곤줄박이는 사람을 전혀 무서워하지 않았다. 땅콩을 손에 올려두고 있기만 해도 여러 마리가 계속해서 찾아왔다. 반면에 쇠박새는 겁이 많은지 바로 다가오지 않고 한참을 근처에서 눈치만 봤다. 결국 내 손으로 오지는 않고, 던져주는 땅콩만 후다닥 물고 도망쳐버렸다. 곤줄박이와 쇠박새. 쇠박새는 가까이 오지 않았다. 땅콩 먹으러 오는 곤줄박이 (참고 자료) 쇠박새 박새 진박새 차이점 및 구별하기 kminito.tistory.com/59 쇠박새 박새 진박새 차이점 및 구별하기 박새 종류는 흰색과 검은색의 얼룩무늬가 선명하여 산에서도 눈에 잘 띕니다. 다른 게시물에서도 올렸듯 저는 수리산에서 쇠박새를 만난 적이 있는데요, 얼마전에 제가 살고..
JWPlayer를 이용하는 온라인 교육의 빨리 감기 방법입니다. 착안 화면에 속도 조절 버튼이 있어, 소스를 확인해보니 아래와 같은 스크립트를 발견함. playbackRate 변수가 속도인 것으로 예상하고 숫자 변경 결과 잘 됨. 화면에 속도 증가를 클릭하면 2배속이 최대이나, 변수를 직접 수정하면 최대 15배속까지 가능. 방법 1) 교육을 정상적으로 재생합니다. 2) 교육 재생 화면에서 F12를 눌러 개발자 도구로 들어갑니다. 3) 콘솔 탭에서 Frame을 선택해야 하는데, 이름에 JWPlayer가 들어간 것으로 선택합니다. 아래 화면에서는 VerticalJWplayer.aspx를 선택했습니다. 가로 화면일 경우 이름이 다를 수 있으나, 어쨌든 JWPlayer가 들어간 것으로 선택하시면 됩니다. 4) ..
리스트를 특정 크기의 리스트로 분할하기 아래의 예제에서는 크기가 9인 리스트를 4개씩 나누기 한 것 (n=4) 코드 my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9] # How many elements each list should have n = 4 # using list comprehension result1 = [my_list[i * n:(i + 1) * n] for i in range((len(my_list) - 1 + n) // n )] print (result1) 결과 List Comprehensin에 대한 설명 result1 = [my_list[i*n:(i+1)*n] for i in range((len(my_list) - 1 + n) // n )] 1) 먼저 몇 개의 리스트..
PPA(Polyphthalamide)를 쉽게 이해하려면 전에 먼저 PA6, P66이 어떻게 생긴 것인지를 알아야 합니다. 1. PA6, PA66, PA610 1) PA6은 탄소가 6개짜리인 카프로락탐(Caprolactam)을 중합하여 만듭니다. 동그랗게 생긴 카프로락탐의 N(질소 원자) 옆을 찢어서 쭉 편 다음 이어붙였다고 생각하시면 됩니다. 2) PA66은 탄소가 6개짜리인 헥사메틸렌디아민(HMD, hexamethylenediamine)과 탄소가 6개짜리인 아디프 산(AA, adipic acid)을 중합하여 만듭니다. 이름이 Poly-amide인 이유는 분자 구조에서 아미드( –CO-NH–)가 반복되기 때문입니다. 그렇다면 PA610은 어떻게 만들지 예상이 되나요? => 탄소 6개짜리 분자와 탄소 10..
개선된 내용의 게시물을 작성 중에 있습니다. 아래의 링크 참조 부탁드립니다. (2021/09/25) 파이썬으로 SRT 예매 프로그램 만들기 시리즈 https://kminito.tistory.com/79 [Python] 파이썬으로 SRT 예매 프로그램 만들기 (1) 기능 구현하기 안녕하세요? 과거에 처음 코딩을 배우던 시절 짠 허접한 SRT 매진 표 예매 게시물을 올렸었는데요, 이번에 코드를 새로 짜는 김에 파이썬 초보분들에게 도움이 될 수 있도록 어떤 식으로 접근하 kminito.tistory.com 파이썬으로 SRT 표 예매 과정을 자동화 한 것입니다. 웹에서의 동작은 셀레늄을 이용했습니다. 아래 내용을 보시면 아시겠지만 단순히 사람이 하는 반복 작업을 파이썬을 통해 자동화 한 것이라 한계가 분명합니다..
2018년 처음 코딩을 배울 때 시작했던 Jekyll(Github Page) 블로그를 닫고, 지금 이 티스토리 블로그로 이사하려고 한다. 작년 여름부터는 글을 올리지 못했지만, 그래도 다양한 분야에 관심을 가지고 공부했던 나의 흔적과 노력이 깃들어있는 소중한 곳이다. 게시물은 많이 없었지만 그래도 한국 웹에는 없는 정보들을 많이 올려서 지금까지도 나름 방문자가 꽤 있고, 또 처음 오픈소스에 컨트리뷰션 한 것도 Jekyll 이었다. 디자인도 몇번이나 바꾸면서 열심히 이쁘게 꾸몄었다. 하지만 점점 바빠지면서 블로그에 무언가 적을 시간이 잘 안 났다. 이제 다시 공부하고 무언가를 기록하려니 티스토리에 비해 Jekyll은 너무 번거롭다. Jekyll의 자유도가 높다는 건 정말 좋은 장점이지만, 시간에 쫒기다 보..
텔레그램은 API를 제공하며, 파이썬에서 python-telegram-bot 라는 라이브러리를 이용하면 정말 간편하게 텔레그램 봇을 통하여 메시지를 발송할 수 있습니다. 프로그램 돌리면서, 휴대폰 텔레그램 앱으로 메시지를 받을 수 있다는 것이 정말 큰 장점입니다. 사용법 또한 매우매우 간단합니다. 저는 아래와 같은 곳에 사용중입니다. (각 항목 모두 포스팅 예정) 1) 주식 프로그램에서 조건검색식 종목 신호가 오면 텔레그램으로 메시지 발송 2) 기차표 예매 매크로를 돌려서, 예약 성공시 메시지 발송 3) 매일 특정 홈페이지를 스크랩하는 프로그램을 돌려놓았을 경우, 스크랩 성공시 해당 내용 메시지 발송 사용 방법은 아래와 같은 순서로 진행됩니다. 1) python-telegram-bot 설치 2) 텔레그램..
집에 책상 위치를 바꾸면서 데스크탑이 LAN outlet과 멀어지게 되어 데스크탑용 무선 랜카드를 샀다. 메인보드에 바로 꽂는 애들 중에 이 제품이 제일 싼 것 같아서 이걸로 샀음. 네이버 쇼핑 검색해도 같은 가격이길래 로켓배송 가능한 쿠팡에서 주문했습니다. 설치 전 주의사항 : 인터넷이 끊기기 전에 ipTIME 홈페이지에 가서 랜카드 드라이버를 미리 다운받아 놓으세요. 저는 미리 안 받아놔서, 휴대폰으로 다운 받은 후 데스크탑으로 옮겼습니다. 다운로드 주소 : iptime.com/iptime/?page_id=126&dfsid=6&dftid=426&uid=19720&mod=document 본인 윈도우 버전에 맞게 받으시면 됩니다. ( 윈도우 버전 확인은 내 컴퓨터 우클릭 ->속성 클릭) 제품 설명 박스는..
If Not IsObject(application) Then Set SapGuiAuto = GetObject("SAPGUI") Set application = SapGuiAuto.GetScriptingEngine End If If Not IsObject(connection) Then Set connection = application.Children(0) End If If Not IsObject(session) Then Set session = connection.Children(0) End If If IsObject(WScript) Then WScript.ConnectObject session, "on" WScript.ConnectObject application, "on" End If session...