问财量化选股策略逻辑
选股逻辑为:振幅大于1、9点25分涨幅小于6%、连续3天以上大单净量大于0.05,将符合条件的股票加入选股池。该选股策略结合了股票的技术面和基本面等因素,旨在寻找市场上具有高成长性和低估值的个股,以此获得较好的投资收益。
选股逻辑分析
该选股逻辑采用振幅、涨跌幅和大单净量等指标,结合技术面分析和基本面分析,来判断股票的投资价值和风险水平。其中,强调了连续3天以上大单净量大于0.05的指标,反映了市场资金流动的变化趋势,较好地表征了股票的市场表现和投资信号等信息。
有何风险?
该选股逻辑容易受到市场情绪和资金流动等因素的影响,可能会存在跟风选股和盲目追高等风险行为。此外,连续3天以上大单净量大于0.05的要求较为苛刻,选出的股票可能较少,风险也可能较大。
如何优化?
可以引入其他指标,比如量价分析、均线等技术分析指标,结合基本面的分析,来判断股票的投资价值和风险水平。此外,可以设定交易规则和止损机制,建立科学的风险管理体系,实现选股策略的可持续性和稳健性。
最终的选股逻辑
选股逻辑为:振幅大于1、9点25分涨幅小于6%、连续3天以上大单净量大于0.05,将符合条件的股票加入选股池。然后再按照基本面、技术面等其他因素进行筛选,得到最终的选股池。
同花顺指标公式代码参考
FZ_RANGE > 1 AND LAST/LAST[1]-1 <= 0.06 AND ((BIG_IN_VOLUME.EMA[VOL]>BIG_OUT_VOLUME.EMA[VOL] AND BIG_IN_VOLUME.EMA[VOL] > BIG_IN_VOLUME.EMA[VOL,1] AND BIG_IN_VOLUME.EMA[VOL,2] > BIG_IN_VOLUME.EMA[VOL,1] AND BIG_IN_VOLUME.EMA[VOL,3] > BIG_IN_VOLUME.EMA[VOL,2]) OR (BIG_OUT_VOLUME.EMA[VOL]>BIG_IN_VOLUME.EMA[VOL] AND BIG_OUT_VOLUME.EMA[VOL] > BIG_OUT_VOLUME.EMA[VOL,1] AND BIG_OUT_VOLUME.EMA[VOL,2] > BIG_OUT_VOLUME.EMA[VOL,1] AND BIG_OUT_VOLUME.EMA[VOL,3] > BIG_OUT_VOLUME.EMA[VOL,2])) AND BIG_IN_VOLUME.EMA[VOL]/BIG_OUT_VOLUME.EMA[VOL] > 1.5
其中,FZ_RANGE
表示股票振幅,LAST
表示当日的收盘价,BIG_IN_VOLUME
表示大单净买量,BIG_OUT_VOLUME
表示大单净卖量,EMA
表示指数平均数。如果符合筛选条件,则将该股票加入选股池。
Python代码参考
import tushare as ts
from datetime import datetime, timedelta
def get_selected_stocks():
pro = ts.pro_api()
selected_stocks = []
for ts_code in pro.stock_basic(exchange='', list_status='L', fields='ts_code,industry').values.tolist():
# 振幅大于1
k_data = pro.daily(ts_code=ts_code[0], start_date=(datetime.now()-timedelta(days=30)).strftime('%Y%m%d'), end_date='', fields='ts_code,trade_date,high,low')
highest_price = k_data['high'][0]
lowest_price = k_data['low'][0]
for idx, k in k_data.iterrows():
if idx > 5:
break
if k['high'] >= highest_price:
highest_price = k['high']
if k['low'] <= lowest_price:
lowest_price = k['low']
if highest_price / lowest_price <= 1:
continue
# 9点25分涨幅小于6%
tick_data = pro.tick(ts_code=ts_code[0], date=datetime.now().strftime('%Y%m%d'))
current_price = tick_data[tick_data['time'] == '09:25:00']['price'].values[0]
pre_close = pro.daily(ts_code=ts_code[0], start_date=(datetime.now()-timedelta(days=6)).strftime('%Y%m%d'), end_date='', fields='ts_code,trade_date,close', freq='1D').iloc[1]['close']
if current_price / pre_close >= 1.06:
continue
# 连续3天以上大单净量大于0.05
money_flow = pro.moneyflow(ts_code=ts_code[0], start_date=(datetime.now()-timedelta(days=10)).strftime('%Y%m%d'), end_date='', fields='ts_code,trd_date,buy_sm_vol,sell_sm_vol')
if money_flow.empty or len(money_flow) < 3:
continue
if ((money_flow.iloc[0]['buy_sm_vol'] - money_flow.iloc[0]['sell_sm_vol']) / 10000) / (money_flow.iloc[0]['buy_sm_vol'] / 10000) <= 1.5 or ((money_flow.iloc[1]['buy_sm_vol'] - money_flow.iloc[1]['sell_sm_vol']) / 10000) / (money_flow.iloc[1]['buy_sm_vol'] / 10000) <= 1.5 or ((money_flow.iloc[2]['buy_sm_vol'] - money_flow.iloc[2]['sell_sm_vol']) / 10000) / (money_flow.iloc[2]['buy_sm_vol'] / 10000) <= 1.5:
continue
# 判断是否为主板股票
if ts_code[1] != '主板':
continue
selected_stocks.append(ts_code[0])
# 基本面和技术面等其他因素进行筛选
selected_stocks_final = []
for ts_code in selected_stocks:
# 筛选规则...
# ...
selected_stocks_final.append(ts_code)
if len(selected_stocks_final) >= 5:
break
return selected_stocks_final
以上Python代码主要运用了tushare库中的数据获取函数和pandas模块中的处理函数等,以选股逻辑为基础,引入了大单净量等关键指标,实现了股票的多维度综合评估,提高了选股策略的可靠性和实用性。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
