Python获取沪深A股股票清单

import requests

# 上交所:XSHG,深交所:XSHE
url = f"https://tsanghi.com/api/fin/stock/XSHG/list?token=demo"
data = requests.get(url).json()
print(data)

Response示例

更多详情:tsanghi.com

### 使用Python实现A股票筛选策略 #### 获取所有A股票代码 为了实现A股票筛选策略,第一步是从可靠的数据源获取所有的A股票代码。这可以通过调用Akshare库中的相应API完成[^1]。 ```python import akshare as ak stock_info = ak.stock_info_a_code_name() print(stock_info.head()) ``` 这段代码展示了如何使用`akshare`库来获取当前市场上所有A的名称和对应的代码列表。这些信息是后续进行具体指标计算的基础。 #### 计算相对强弱指数(RSI)与改良相对强弱指数(CRSI) 接下来,在拥有完整的股票池之后,可以针对每只个计算其历史价格走势的技术指标——RSI以及CRSI。这两个参数能够反映价短期波动情况及其相对于其他同类资产的表现优劣程度。 ```python def calculate_rsi(data, period=14): delta = data['close'].diff(1) gain = (delta.where(delta > 0, 0)).rolling(window=period).mean() loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean() RS = gain / loss RSI = 100 - (100/(1+RS)) return RSI # CRSI 的计算方式可以根据实际需求调整,这里仅提供一种可能的方法作为例子 def calculate_crsi(rsi_values, weight=[1/3]*3): crsi_value = sum([w * rsi.shift(i) for i, w in enumerate(weight)]) return crsi_value.fillna(method='bfill') ``` 上述两个函数分别实现了标准版RSI及加权平均形式下的CRSI计算过程。其中,`calculate_rsi()`接受收盘价序列并返回对应周期内的RSI数值;而`calculate_crsi()`则进一步考虑了不同时间窗口内多个RSI值的影响权重,从而得出更加综合性的评价结果。 #### 应用筛选条件选出目标股票 最后一步就是设定具体的筛选准则并将之前准备好的各项数据应用上去。比如可以选择那些最近一段时间里RSI持续处于超卖区间(通常指低于30%)、同时CRSI也显示出较强上升趋势特征的标的物加入观察名单中去。 ```python selected_stocks = [] for stock_code in stock_info.index: try: df_stock_data = ak.stock_zh_a_hist(symbol=str(stock_code), adjust="qfq") # 添加RSI列 df_stock_data["RSI"] = calculate_rsi(df_stock_data) # 添加CRSI列 df_stock_data["CRSI"] = calculate_crsi(df_stock_data["RSI"]) latest_row = df_stock_data.iloc[-1] if latest_row["RSI"] < 30 and latest_row["CRSI"].pct_change().iloc[-1]>0 : selected_stocks.append((stock_code,latest_row)) except Exception as e: continue print(f"Selected stocks based on the strategy: {len(selected_stocks)}") if len(selected_stocks)>0: import pandas as pd result_df = pd.DataFrame.from_records(selected_stocks, columns=['Code', 'Data']) print(result_df[['Code','Data']]) else: print('No suitable stocks found.') ``` 此部分代码遍历每一个股票代码,并尝试下载它们的历史行情记录。接着为每一支股票添加上RSI和CRSI两列新属性,以便于后续判断是否满足预设的选择标准。最终符合条件者会被收集起来形成一份精选清单供投资者参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值