Python 判断神奇九转 -akshare
最近一段时间开始想试着了解一下量化交易方面的策略,近期会做一些相关的记录 AKShare 一个开源财经数据接口,我们可以通过他来获取一些需要的股票数据
内容首发余我的博客 https://fanfpy.top/index.php/archives/79/
import akshare as ak
import sys
import requests
import datetime
def stock_is_trade_date(query_date):
"""
是否为 交易日
:param query_date: 日期,如 2020-10-01
:return: 1:是,0:不是
"""
weekday = query_date.isoweekday()
hour = query_date.hour
print('时间:={0} 星期:={1} 小时:={2}'.format(query_date, weekday, hour))
if weekday <= 5 and hour >= 9 and hour < 15:
return 1
else:
print('非交易时间')
return 0
def main(stock_code):
if stock_code is not None:
stock_zh_a_minute_df = ak.stock_zh_a_minute(symbol=stock_code, period='5', adjust="qfq")
data = stock_zh_a_minute_df.sort_values(by='day', ascending=False).iloc[:20]
data_list = data.values.tolist()
is_up = True
is_down = True
for index, item in enumerate(data_list[:9]):
if float(item[4]) < float(data_list[index + 4][4]):
is_up = False
if float(item[4]) > float(data_list[index + 4][4]):
is_down = False
if is_up or is_down:
print('分时{0}满足神奇九转条件 {1} 价格:{2}<br/>'.format(item[0], '触顶' if is_up else '触底', item[4]))
def is_demark_dequential(stock_data, date):
is_up = True
is_down = True
stock_data = stock_data[stock_data['day'] < date].sort_values(by='day', ascending=False).iloc[:13].values.tolist()
if (len(stock_data) < 13):
return False, False
for index, item in enumerate(stock_data[:9]):
if float(item[4]) - 0.001 < float(stock_data[index + 4][4]):
is_up = False
if float(item[4]) + 0.001 > float(stock_data[index + 4][4]):
is_down = False
return is_up, is_down
if __name__ == "__main__":
print('订阅代码' + sys.argv[1:][0])
if stock_is_trade_date(datetime.datetime.now()):
main(sys.argv[1:][0])
|