Find BlackHorse

Ed Chao
2 min readSep 8, 2020
%%time
## find targets -- with for loop -- 更新追蹤清單後以今日日期存檔
import yfinance as yf
import re
import pandas as pd
import matplotlib.pyplot as plt
import talib
from datetime import date, datetime, timedelta
import time
def climb(ticker_list):
today = datetime.today().strftime('%Y-%m-%d')
yesterday = (date.today() - timedelta(days=1)).strftime('%Y-%m-%d')
path = 'D:/00_我在管院研究所的日子/94_TWSE/財山短訊/'
file = yesterday + '-財山短訊.csv'
df = pd.read_csv(path + file)
warning_list = []
count = 0
for idx in range(len(ticker_list)):
day6 = yf.Ticker(ticker_list['股票代號'][idx]).history(period = '6d') ## ex-6 days' information
day2 = yf.Ticker(ticker_list['股票代號'][idx]).history(period = '2d')
day1 = yf.Ticker(ticker_list['股票代號'][idx]).history(period = '1d') ## today's information
avg5 = ((day6.Volume.sum() - day1.Volume.mean()) / 5) ## average volume of ex-5 days
ratio = (day1.Volume.mean() / avg5) ## ratio between today and avg5 volume
try:
price = day2.iloc[1].Close - day2.iloc[0].Close
except:
pass
try:
check = '注意!!'
info = [today, ticker_list['股票代號'][idx], ticker_list['公司名稱'][idx], day1.Open.mean(),
day1.Close.mean(), price, day1.Volume.mean(), avg5, ratio, check]
if(ratio > 4):
warning_list.append(info)
else:
check = '忽略'
print(today, ticker_list['股票代號'][idx], ratio, check)
except:
pass
col_names = ['日期', '股票代號', '公司名稱', '開盤價', '收盤價', '當日漲跌', '當日成交量', '5日均量', '比率', '建議']
#time.sleep(0.5)
# count += 1
# if count == 50:
# break
#warning_list = pd.DataFrame(warning_list, columns = col_names).to_csv(path + new_file, index = False, encoding = 'utf_8_sig')
warning_list = pd.DataFrame(warning_list, columns = col_names)
warning_list = warning_list[(warning_list.當日成交量 > 100000) & (warning_list['5日均量'] != 0)]
total_list = pd.concat([df, warning_list], axis = 0)
return warning_list, total_list

## main ##
path = 'D:/00_我在管院研究所的日子/94_TWSE/財山短訊/'
file = 'Stock_list(1090825).xlsx'
today = datetime.today().strftime('%Y-%m-%d')
new_file1 = today + '-財山短訊.csv'
new_file2 = today + '-財山短訊.xlsx'
ticker_list = pd.read_excel(path + file)
warning_list, total_list = climb(ticker_list)
total_list.to_csv(path + new_file1, index = False, encoding = 'utf_8_sig')
print(warning_list)
#total_list.to_excel(path + new_file2, index = False, encoding = 'utf_8_sig')

--

--

Ed Chao

Playground for a old student. Records about learning, life and interesting stuff