반응형
파이썬으로 윈도우 주식 가격 알람 로봇 생성하기
라이브러리 설치
1
|
pip install winotify
|
cs |
winotify 이란, 윈도우즈 10에서 알림 토스트를 표시하는 순수 파이썬 모듈입니다. 종속성이나 요구 사항 없이 PowerShell을 시스템에 설치하기만 하면 됩니다.
https://pypi.org/project/winotify/
라이브러리 import
1
2
3
4
|
import os
import time
import pandas_datareader as web
from winotify import Notification, audio
|
cs |
알림 설정 원하는 주식들의 티커와 주가 리밋
1
2
3
4
|
tickers = ['NVDA', 'FB']
upper_limits = [240, 220]
lower_limits = [140, 130]
|
cs |
엔비디아의 주가가 $240 혹은 $140에 닿으면,
페이스북의 주가가 $220 혹은 $130에 닿으면, 윈도우 알림이 생성된다.
주식의 현재 가격 불러오기 using yahoo finance
1
2
|
while True:
last_prices = [web.DataReader(ticker, "yahoo")["Adj Close"][-1] for ticker in tickers]
|
cs |
Alert Image 알람 이미지
상한 리밋에 도달하면 sell png가 알람에 보여지고
하한 리밋에 도달하면 buy png가 알람에 보여집니다.
어퍼 리밋 (Upper Limit) 닿을 때 알람 설정
1
2
3
4
5
6
7
8
9
10
11
|
for i in range(len(tickers)):
if last_prices[i] > upper_limits[i]:
toast = Notification(app_id = "Honbob Stock Alarm Bot",
title = "Price Alert For " + tickers[i],
msg = f"{tickers[i]} has reached a price of {last_prices[i]}. You might want to sell."
icon = os.path.join(os.getcwd(), "sell.png"),
duration = "long"
)
toast.add_actions(label="Go To Stockbrocker", launch="https://Honbob.com/")
toast.set_audio(audio.LoopingAlarm6, loop=True)
toast.show()
|
cs |
현재 가격이 설정한 어퍼 리밋 가격을 초과하면, 윈도우 알림 (Windows Notification)을 띄웁니다.
윈도우 알림은 Winotify 라는 라이브러리 모듈에 기능들이 정의되어 있습니다.
로워 리밋 (Lower Limit) 닿을 때 알람 설정
1
2
3
4
5
6
7
8
9
10
|
elif last_prices[i] < lower_limits[i]:
toast = Notification(app_id = "Honbob Stock Alarm Bot",
title = "Price Alert For " + tickers[i],
msg = f"{tickers[i]} has reached a price of {last_prices[i]}. You might want to buy."
icon = os.path.join(os.getcwd(), "buy.png"),
duration = "long"
)
toast.add_actions(label="Go To Stockbrocker", launch="https://Honbob.com/")
toast.set_audio(audio.LoopingAlarm8, loop=True)
toast.show()
|
cs |
Full Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import os
import time
import pandas_datareader as web
from winotify import Notification, audio
tickers = ['NVDA', 'FB']
upper_limits = [240, 220]
lower_limits = [140, 130]
while True:
last_prices = [web.DataReader(ticker, "yahoo")["Adj Close"][-1] for ticker in tickers]
print(last_prices)
time.sleep(2)
for i in range(len(tickers)):
if last_prices[i] > upper_limits[i]:
toast = Notification(app_id = "Honbob Stock Alarm Bot",
title = "Price Alert For " + tickers[i],
msg = f"{tickers[i]} has reached a price of {last_prices[i]}. You might want to sell."
icon = os.path.join(os.getcwd(), "sell.png"),
duration = "long"
)
toast.add_actions(label="Go To Stockbrocker", launch="https://Honbob.com/")
toast.set_audio(audio.LoopingAlarm6, loop=True)
toast.show()
elif last_prices[i] < lower_limits[i]:
toast = Notification(app_id = "Honbob Stock Alarm Bot",
title = "Price Alert For " + tickers[i],
msg = f"{tickers[i]} has reached a price of {last_prices[i]}. You might want to buy."
icon = os.path.join(os.getcwd(), "buy.png"),
duration = "long"
)
toast.add_actions(label="Go To Stockbrocker", launch="https://Honbob.com/")
toast.set_audio(audio.LoopingAlarm8, loop=True)
toast.show()
time.sleep(1)
|
cs |
결과
즉 게임을 하다가도 본인이 설정한 주식 가격 알림을 받아볼 수 있습니다.
물론 알림을 할 필요 없다고 하실 수도 있습니다. MTS나 HTS에 이미 조건 매매 기능이 빌드된 경우가 많기 때문이지요.
반응형
'공부 > 파이썬 Python' 카테고리의 다른 글
파이썬 RGB 숫자로 색깔 이름 프린트하기 (feat. webcolors) (0) | 2022.06.20 |
---|---|
Python 이미지에서 주요 색상 추출하기 (colorthief) (1) | 2022.06.06 |
sympy 심파이 튜토리얼 (0) | 2022.05.21 |
ipywidgets 인터랙션 함수 작성 (Python ipywidgets) (0) | 2022.05.21 |
선형대수 Python 과제3 풀이 (1) | 2022.05.04 |
댓글