Skip to content

Commit 6c851ab

Browse files
committed
try get stock data
1 parent 96e9bf7 commit 6c851ab

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

Stock/SnPindex.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import pandas as pd
2+
import numpy as np
3+
import urllib3
4+
from bs4 import BeautifulSoup
5+
import yfinance as yf
6+
7+
# 參考網站
8+
# https://medium.com/ai%E8%82%A1%E4%BB%94/%E7%94%A8-python-%E6%89%93%E9%80%A0%E8%87%AA%E5%B7%B1%E7%9A%84%E8%82%A1%E5%B8%82%E8%B3%87%E6%96%99%E5%BA%AB-%E7%BE%8E%E8%82%A1%E7%AF%87-e3e896659fd6
9+
10+
# https://medium.com/ai%E8%82%A1%E4%BB%94/%E7%94%A8-python-%E6%89%93%E9%80%A0%E8%87%AA%E5%B7%B1%E7%9A%84%E8%82%A1%E5%B8%82%E8%B3%87%E6%96%99%E5%BA%AB-%E7%BE%8E%E8%82%A1%E7%AF%87-e3e896659fd6
11+
# 最近一日交易量最大的前 100 檔熱門美股
12+
url = 'https://finance.yahoo.com/screener/predefined/most_actives?count=100&offset=0'
13+
data = pd.read_html(url, flavor="bs4")[0]
14+
data.columns = ['symbol','name','price','changePrice','changePercent','vol','avgVol','MarketCap','TTM','52wkRange']
15+
# a = sorted(a, key=lambda a_entry: a_entry[1])
16+
# data1 = data[np.argsort(data[::, 0])]
17+
# print(data)
18+
19+
def p2f(x):
20+
return float(x.strip('%'))/100
21+
22+
def Money2int(x):
23+
m = {'K': 3, 'M': 6, 'B': 9, 'T': 12}
24+
if x.isdigit():
25+
return float(x)
26+
return (float(x[:-1]) * 10 ** m[x[-1]] )
27+
28+
def sort3to10(x):
29+
A = Money2int(x[5])
30+
B = Money2int(x[6])
31+
P = p2f(x[4])
32+
L = ( A>B and ( P>=0.03 and P<= 0.1))
33+
return L
34+
35+
def big10(x):
36+
A = Money2int(x[5])
37+
B = Money2int(x[6])
38+
P = p2f(x[4])
39+
L = ( A>B and P > 0.1)
40+
return L
41+
42+
newlist = list( filter(big10, data.values) )
43+
d = np.row_stack(newlist)
44+
dataset = pd.DataFrame({'Symbol': d[:, 0], 'Name': d[:, 1], 'price': d[:, 2], 'Change': d[:, 3], 'Change%': d[:, 4], 'TTM': d[:, 8], 'Vol': d[:, 5], 'avgVol(3m)': d[:, 6] })
45+
46+
# dataframe = pd.DataFrame.from_records(d)
47+
# dataset.boxplot()
48+
print(dataset)
49+
# data=data[np.argsort(data[:,0])]
50+
# stk_list = data.Symbol
51+
52+
# Yahoo! module
53+
#https://pypi.org/project/yfinance/

0 commit comments

Comments
 (0)