问财量化选股策略逻辑
选股逻辑为:振幅大于1、按个股热度从大到小排序、换手率3%-12%。将选股逻辑作为第一个标题放入段落中。
选股逻辑分析
该选股策略的逻辑如下:
- 振幅大于1:表示该股票交易活跃度较高;
- 按个股热度从大到小排序:表示在符合条件下,按照市场的热度进行排序;
- 换手率在3%-12%之间:表示该股票在一定程度上具有投资价值。
综合以上三个点,在符合阈值的股票中按市场热度从大到小排序,选出换手率在3%-12%之间的股票。
有何风险?
该选股策略的可能风险包括:
- 过度依赖市场热度指标,可能忽略了一些中长期的价值;
- 完全忽略公司基本面和业绩状况,容易选出短期概念炒作的股票;
- 对换手率的分析和判断不准确,可能选出流动性差、波动性高的股票。
如何优化?
为了提高选股的准确性和降低风险,我们可以在以下方面对该选股策略进行优化:
- 引入其他技术指标,如KDJ、RSI等,进行多重指标判断;
- 结合市场情绪、基本面等因素进行综合分析;
- 调整策略的参数和阈值,根据市场走势进行动态调整;
- 结合选股结果进行分析,对换手率的阈值进行进一步优化;
- 引入机器学习算法,进行选股结果的优化和预测。
最终的选股逻辑
综合以上分析和优化,我们最终的选股逻辑为:
在符合振幅大于1的要求下,按照市场热度从大到小排列,加入换手率在3%-12%的判断,并结合多重技术指标和基本面指标的综合分析,以尽可能降低风险并提高选股准确率。
同花顺指标公式代码参考
该策略可引入以下指标进行辅助分析:
1.振幅的指标。
振幅:
((HIGH-LOW)/REF(CLOSE,1))>0.01
2.按个股热度排序的指标。
同花顺热度指标:
SORT_BY_DESC(stock_heat/)
3.换手率在3%到12%之间的指标。
换手率:
((VOL-COUNTIF(VOL<=0))/(COUNTIF(VOL>0)/100)>=3)
AND ((VOL-COUNTIF(VOL<=0))/(COUNTIF(VOL>0)/100)<=12)
Python代码参考
以下是使用Python进行选股的代码参考:
import pandas as pd
import tushare as ts
from pyecharts import Kline
def stock_selection():
# 获取股票数据
all_data = ts.get_k_data("002230", ktype="D")
all_data = pd.DataFrame(all_data, columns=["date", "open", "close", "high", "low", "volume", "code"])
# 按要求选股
condition1 = ((all_data["high"] - all_data["low"]) / all_data["close"].shift(1) > 0.01) # 振幅大于1
hot_code = ts.top_list().loc[1:10, 'code']
condition2 = all_data['code'].apply(lambda x: x in hot_code.to_list()) # 按个股热度排序
condition3 = ((all_data["volume"] - (all_data['volume'] <= 0).cumsum()) / (all_data['volume'] > 0).cumsum()) >= 0.03 # 换手率>=3%
condition4 = ((all_data["volume"] - (all_data['volume'] <= 0).cumsum()) / (all_data['volume'] > 0).cumsum()) <= 0.12 # 换手率<=12%
# 按照市场热度排序
all_data['pct_change'] = abs(all_data['close'] - all_data['open']) / all_data['open']
all_data.sort_values('pct_change', ascending=False, inplace=True)
# 返回符合条件的股票代码
return all_data[condition1 & condition2 & condition3 & condition4]["code"].values.tolist()
# 展示股价走势
def show_kline(data):
kline = Kline()
kline.add("K线图", data[["date", "open", "close", "high", "low"]].values.tolist())
kline.render()
# 股票代码
code = "002230"
# 获取股票数据
all_data = ts.get_k_data(code, ktype="D")
# 展示股价走势
show_kline(all_data)
# 选出符合条件的股票
selected_stocks = stock_selection()
print("符合条件的股票:", selected_stocks)
其中,在代码中需要根据实际需求进行相应的设置。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
