问财量化选股策略逻辑
选股逻辑为:选择换手率在3%~12%之间、买一量大于卖一量,按今日竞价金额排序前5的股票。
选股逻辑分析
该选股策略考虑了交易活跃度和市场需求,同时按照竞价金额排序,选取前5只股票,有利于获取更好的收益。
有何风险?
该选股策略同样较为简单,缺乏对于基本面指标的考虑,可能会漏选优秀的基本面公司,同时过度追求换手率可能会导致过于频繁的调仓,增加交易成本。
如何优化?
可以引入和基本面相关的选股指标,并且可以借助机器学习等技术来建立基于历史数据的预测模型,更加准确地选出优秀的股票。同时可以考虑设置调仓的周期以降低交易成本。
最终的选股逻辑
在众多股票中选择换手率在3%~12%之间的股票,满足买一量大于卖一量的条件,按照今日竞价金额排序,选取前5只股票。
同花顺指标公式代码参考
SELECT SYMBOL FROM
(SELECT SYMBOL, TURNOVERRATE, BUY1VOLUME, SELL1VOLUME, CURRENT, AMOUNT FROM STOCK_INFO
-- 选择换手率在3%~12%之间
WHERE TURNOVERRATE > 3 AND TURNOVERRATE < 12
-- 选择买一量大于卖一量
AND BUY1VOLUME > SELL1VOLUME
-- 按照今日竞价金额排序
ORDER BY AMOUNT DESC)
-- 选取前5的股票
WHERE ROWNUM <= 5;
python代码参考
import pandas as pd
import tushare as ts
def select_stocks():
pro = ts.pro_api()
# 查询挂带大量大于卖一量的股票
market_df = pro.market_detail(symbol='', trade_date='20220422')
df1 = market_df[(market_df['bid_vol'] > market_df['ask_vol'])]
# 查询今日竞价金额,选取前5的股票
quote_df = pro.top_list(trade_date='20220422', fields='ts_code,close,amount')
df2 = quote_df.sort_values(by=['amount'], ascending=False).head(5)
# 筛选出换手率在3%~12%之间的股票
df3 = pd.merge(df1, df2[['ts_code', 'close']], on='ts_code', how='inner')
df3 = pd.merge(df3, df2[['ts_code', 'amount']], on='ts_code', how='inner')
basic_df = pro.stock_basic(exchange='', list_status='L', fields='ts_code,name,area,industry,list_date')
df3 = pd.merge(df3, basic_df, on='ts_code', how='inner')
df3['turnover_rate'] = pro.daily_basic(ts_code='', trade_date='20220422')['turnover_rate']
df3 = df3[(df3['turnover_rate'] > 3) & (df3['turnover_rate'] < 12)]
# 查询股票的市值和资金净流入情况
moneyflow_df = pro.moneyflow(ts_code='', trade_date='20220422', fields='ts_code,in_out_ratio,main_inflow,super_inflow,big_inflow,mid_inflow,small_inflow')
df4 = pd.merge(df3[['ts_code', 'turnover_rate', 'close', 'amount']], moneyflow_df, on='ts_code', how='inner')
# 合并所有指标,返回选股结果
return df4.sort_values(by=['amount'], ascending=False)['ts_code']
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


