- 打开chatgpt,向其提问题,内容如下:
写一个Python程序,能够统计最近一个月涨幅达到30%以上的股票在最近一个月前的市值、成交额、阳线数量、振幅和继续形态(使用TA-Lib),请把每一个维度统计的方法和参数定义出来。
得到的chatgpt回答截图如下:
得到的代码如下:
import tushare as ts
import pandas as pd
import numpy as np
import talib
# 获取股票数据
start_date = '2022-02-25'
end_date = '2023-02-25'
stock_data = ts.get_hist_data('600519', start=start_date, end=end_date)
# 计算股票的涨幅
stock_data['pct_change'] = (stock_data['close'] - stock_data['close'].shift(1)) / stock_data['close'].shift(1)
# 找到最近一个月涨幅超过30%的日期
condition = stock_data['pct_change'] > 0.3
last_month_date = condition[condition].index[-1]
# 统计最近一个月涨幅超过30%的股票的市值
last_month_market_value = ts.get_stock_basics(date=last_month_date)['totals']['600519']
# 统计最近一个月涨幅超过30%的股票的成交额
last_month_turnover = stock_data.loc[last_month_date:, 'amount'].sum()
# 统计最近一个月涨幅超过30%的股票的阳线数量
last_month_up_days = len(stock_data[stock_data['pct_change'] > 0])
# 统计最近一个月涨幅超过30%的股票的振幅
last_month_amplitude = talib.ATR(stock_data['high'], stock_data['low'], stock_data['close'], timeperiod=14).iloc[-1]
# 统计最近一个月涨幅超过30%的股票的继续形态
last_month_continuation = talib.CDL2CROWS(stock_data['open'], stock_data['high'], stock_data['low'], stock_data['close']).iloc[-1]
以上是选股结果:茅台股票
-
启动 Anconda3软件,运行得到的代码,查看实际结果。
1)首先需要安装 talib库,一个金融领域常用的库,安装命令如下:
conda install -c conda-forge ta-lib
2)除此之外,如果是windows ,则采用安装talib 包比较简单,但要是直接pip3 install talib 会报错,需要下载whl 文件安装。
下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib
打开下载界面,往下翻,在中间位置,或者查找字符:TA-Lib,则可以找到。
TA_Lib‑0.4.24‑cp310‑cp310‑win_amd64.whl
安装命令:
pip3 install TA_Lib-0.4.24-cp310-cp310-win_amd64.whl -
Tushare是一个免费的、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上
现在使用tushare容易出现问题,问题如下提示:
本接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/document/2
解决办法:
1)注册地址可使用这个链接 https://tushare.pro/register?reg=456140
2)token获取方法:
注册好后登陆账号,点击右上角 头像—-个人主页—-点击接口TOKEN—-复制好了token
- 设置token
#set token
ts.set_token(‘you_token’)
pro = ts.pro_api()
###############################
欢迎您阅读《跟我学习AI量化投资》的作品!
欢迎加微信进行交流,谢谢!
文章出处登录后可见!