Python 判断神奇九转 -akshare
最近一段时间开始想试着了解一下量化交易方面的策略,近期会做一些相关的记录
AKShare
一个开源财经数据接口,我们可以通过他来获取一些需要的股票数据
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")
# 排序 取最近20个分时的记录 来判断是否满足 神奇九转的规则
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]):
# print('时间:{0} ,收盘价:{1},对应前第四个分时的收盘价:{2}'.format(item[0],item[4],data_list[index+4][4]))
# 是否连续九个交易分时都比前面第4交易的收盘价低
if float(item[4]) < float(data_list[index + 4][4]):
is_up = False
# 是否连续九个交易分时都比前面第4交易的收盘价高
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]))
# 在这里你可以通过一些第三方手段来通知自己 比如server酱之类的
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]):
# print('时间:{0} ,收盘价:{1},对应前第四个分时的收盘价:{2}'.format(item[0],item[4],stock_data[index+4][4]))
# 是否连续九个交易分时都比前面第4交易的收盘价低
if float(item[4]) - 0.001 < float(stock_data[index + 4][4]):
is_up = False
# 是否连续九个交易分时都比前面第4交易的收盘价高
if float(item[4]) + 0.001 > float(stock_data[index + 4][4]):
is_down = False
return is_up, is_down
if __name__ == "__main__":
# 从命令行获取股票代码 如 python akshare01.py SH513050
print('订阅代码' + sys.argv[1:][0])
if stock_is_trade_date(datetime.datetime.now()):
main(sys.argv[1:][0])
版权声明:本文为qq_31663099原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。