问财量化选股策略逻辑
本选股策略选取振幅大于1,昨日换手率*(今日竞价成交量/昨日成交量)在0.5到2之间,并且股票2021年营收/2018年营收比值大于1.1的股票作为投资目标。综合考虑了股票价格、成交量、市场走势和公司基本面等因素,选取具备成长性和投资回报的股票。
选股逻辑分析
本选股策略除了综合考虑了股票价格、成交量、市场走势等因素外,还引入了公司的营收历史数据作为重要的参考指标,关注股票的成长性和未来发展空间。同时,该策略挖掘的股票具有一定的成交量和市场热度,有较好的投资价值。
有何风险?
本选股策略依赖于股票市场的热度、成交量和公司基本面等因素,因此在市场情况波动较大的时期可能会存在一定的风险。同时,该策略过于依赖于公司的营收数据,可能忽略了其他细节因素对股票走势的影响,存在一定的投资风险。
如何优化?
本选股策略可以加入其他成长性的指标,如分析公司的利润情况、市场占有率、毛利润率等因素,以更全面、准确地判断股票的投资价值。同时,建议与其他短期、中期选股策略进行配合,综合判断股票的投资价值和安全性。
最终的选股逻辑
本选股策略选取振幅大于1,昨日换手率*(今日竞价成交量/昨日成交量)在0.5到2之间,并且股票2021年营收/2018年营收比值大于1.1的股票作为投资目标。结合其他成长性的指标和市场趋势进行分析,以综合评估股票的成长性和投资价值,选取投资回报高且风险可控的股票。
同花顺指标公式代码参考
- 无
Python代码参考
import tushare as ts
import time
pro = ts.pro_api()
def select_stocks(n):
selected_stocks = []
for code in pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,name,industry,market,area,pe,pb,circ_mv')['ts_code']:
if 'ST' in code:
continue
if '科创板' in pro.fina_mainbz(ts_code=code, year=2020, quarter=1)['bz_item']:
continue
df = pro.bar(ts_code=code, freq='15min', start_date='', end_date='')
if df.iloc[:-2]['high'].max() <= df.iloc[-1]['high'] and (df.iloc[-1]['open'] - df.iloc[-1]['low']) / df.iloc[-1]['high'] > 0.01:
vol_rate = pro.moneyflow(ts_code=code, start_date='', end_date='', fields='ts_code,trade_date,turnover_rate,vol,amount')
vol_rate = vol_rate.set_index('trade_date')
vol_rate['turnover_rate'] = (vol_rate['turnover_rate']*(df.iloc[-1]['amount']/vol_rate['vol'])).rolling(5).mean() # 5日平均换手率
if vol_rate.iloc[-2]['vol'] > 0 and (vol_rate.iloc[-2]['turnover_rate']) > 0.5 and (vol_rate.iloc[-2]['turnover_rate']) < 2:
revenue = pro.income(ts_code=code, start_date='', end_date='', fields='ts_code,f_ann_date,ann_date,end_date,report_type,total_revenue')
revenue = revenue[revenue['report_type']==2] # 只取年报数据
if revenue['f_ann_date'].str.contains('2020').any() and revenue['f_ann_date'].str.contains('2018').any():
rev_2021 = revenue[revenue['f_ann_date'].str.contains('2020')]['total_revenue'].iloc[0]
rev_2018 = revenue[revenue['f_ann_date'].str.contains('2018')]['total_revenue'].iloc[0]
if rev_2021 / rev_2018 > 1.1:
price_now = pro.realtime_quotes(code).iloc[0]['price']
money_flow = pro.moneyflow(ts_code=code, start_date='', end_date='', fields='buy_sm_amount,sell_sm_amount,buy_md_amount,sell_md_amount,buy_lg_amount,sell_lg_amount')
money_flow_total = money_flow.sum().sum()
if money_flow_total > 0:
selected_stocks.append([code, price_now, money_flow_total])
selected_stocks = sorted(selected_stocks, key=lambda x: x[2], reverse=True)
return [x[0] for x in selected_stocks][:n]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
