问财量化选股策略逻辑
选取振幅大于1、前日实际换手率在3%到28%之间、饮料酒行业进出口比例较高的股票进行买入。
选股逻辑分析
该逻辑综合考虑了价格波动、成交量、以及行业背景等因素,可以更好地筛选出行业内有较大机会的股票。但是,仅仅考虑了一个行业的数据,没有考虑其他行业的数据变化情况,筛选结果可能会存在潜在的风险。
有何风险?
只考虑饮料酒行业进出口比例较高的股票,可能会出现选择错误的情况。同时,振幅和实际换手率等指标也不能完全反映股票的投资价值,筛选结果可能具有一定随机性。
如何优化?
可以综合考虑多个指标,包括价格指标、量能指标、基本面指标、行业板块指标等,进行多维度的筛选和分析,以更好地减小随机性,并找到更具有投资价值的股票。
最终的选股逻辑
选取振幅大于1、前日实际换手率在3%到28%之间、饮料酒行业进出口比例较高的股票作为筛选条件,综合考虑多个维度进行逐步完善。
同花顺指标公式代码参考
// 筛选振幅大于1的股票
amplitude = (HIGH - LOW) / OPEN
amplitude_bool = amplitude > 1
// 筛选前日实际换手率在3%到28%之间的股票
volume_ratio = TODAY_VOLUME / REF(YESTERDAY_VOLUME, 1)
volume_ratio_bool = (volume_ratio >= 0.03) & (volume_ratio <= 0.28)
// 筛选饮料酒行业进出口比例高的股票
import finance
output = industry("type=1")
output = output[output["sw1"] == "食品饮料"]
output = output.sort_values(by="import", ascending=False)
symbol_list = output.head(n=100)["code"].tolist()
industry_bool = SYMBOL∈symbol_list
// 选出符合条件的股票
result = amplitude_bool & volume_ratio_bool & industry_bool
// 输出筛选结果
result
Python代码参考
import tushare as ts
# 筛选条件1:振幅大于1
today_data = ts.get_today_all()
amplitude = (today_data['high'] - today_data['low']) / today_data['open']
amplitude_bool = amplitude > 1
# 筛选条件2:前日实际换手率在3%到28%之间
hist_data = ts.get_hist_data('600519')
volume_ratio = hist_data['volume'] / hist_data['volume'].shift(1)
volume_ratio_bool = (volume_ratio >= 0.03) & (volume_ratio <= 0.28)
# 筛选条件3:饮料酒行业进出口比例高
import tushare as ts
tushare_token = "your_tushare_token_here"
pro = ts.pro_api(tushare_token)
trade_data = pro.trade_cal(exchange="", start_date="20200101", end_date="20211231")
trade_days = trade_data[trade_data.is_open=="1"].cal_date.tolist()
industry_import = {}
for date in trade_days:
import_data = pro.us_tfxin_daily(trade_date=date)
import_data = import_data[import_data.category=="Wine and beer"]
if not import_data.empty:
industry_import[date] = import_data.quantity.sum()
industry_import_df = pd.DataFrame({"date": list(industry_import.keys()), "industry_import": list(industry_import.values())})
industry_import_df = industry_import_df[industry_import_df.date.dt.year==2021]
industry_import_df = industry_import_df.iloc[:20]
industry_bool = today_data.symbol.isin(industry_import_df.index)
# 选出符合条件的股票
result = amplitude_bool & volume_ratio_bool & industry_bool
# 输出筛选结果
final_result = today_data.loc[result].sort_values(by=["turnoverratio"],ascending=False)
print(final_result)
注:以上为示例代码,请根据实际情况进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
