问财量化选股策略逻辑
选股逻辑为:振幅大于1,大单净量排行,(昨日换手率*(今日竞价成交量/昨日成交量))>0.5<2。该选股策略以股票价格波动、成交量等技术指标为依据,同时考虑昨日换手率、今日竞价成交量等因素选择具有一定投资价值的股票,但存在一定的风险。
选股逻辑分析
该选股逻辑通过股票价格波动、大单净量排行,以及昨日换手率和今日竞价成交量等技术因素,筛选股票。同时,该选股逻辑加入了昨日换手率、今日竞价成交量等基本面因素的考虑,综合考虑了股票的技术和基本面特征。但是,由于该选股逻辑仅考虑了短期的市场变化因素,且依靠了高频数据,存在一定的风险。
有何风险?
该选股逻辑可能存在的风险是,在考虑竞价成交量、换手率等基本面因素时,该数据可能会受到异常数据的影响,导致筛选的结果不够精确。同时,由于该选股策略主要关注短期市场变化因素,因此可能无法捕捉到长期趋势的变化,存在一定的短视风险。
如何优化?
可以引入更多的因素来筛选股票,如市盈率、市值、行业发展前景等基本面因素和行业板块等信息,以综合分析的方式对股票进行评估,降低选股风险。在考虑竞价成交量、换手率等基本面因素时,可以采用一些辅助指标来避免异常数据对结果的影响,如均值、中位数等。
最终的选股逻辑
选股条件为:振幅大于1,大单净量排行,(昨日换手率*(今日竞价成交量/昨日成交量))>0.5<2,并且考虑股票的基本面、宏观经济、市场热点等因素,以综合分析的方式来确定选股条件。
同花顺指标公式代码参考
SET stCondition1 = ST = 0 AND NOT SUSPENDED;
SET stCondition2 = LAST > 1 AND ABS(AMOUNT) / 10000 >= 60;
SET stCondition3 = HM / REF(VOL, 1) * REF(OPEN, 1) / REF(CLOSE, 1) > 0.5 AND
HM / REF(VOL, 1) * REF(OPEN, 1) / REF(CLOSE, 1) < 2;
SET selectedStk = stCondition1 AND stCondition2 AND stCondition3;
SortBy = '五日涨幅';
SELECT selectedStk AS 选股结果
N = 5
TOP(N)
Python代码参考
import pandas as pd
from datetime import datetime
import tushare as ts
def select_stocks():
ts.set_token('your token')
pro = ts.pro_api()
# 获取股票数据
stock_data = pro.daily(ts_code='', start_date='20220301', end_date='20220308')
# 计算换手率、竞价成交量等指标
stock_data['turnover_rate'] = stock_data['vol'] / stock_data['vol'].shift(1)
stock_data['intra_bid_amount'] = (stock_data['high'] + stock_data['low']) / 2 * stock_data['vol'] * stock_data['turnover_rate']
stock_data['intra_bid_amount'] = stock_data['intra_bid_amount'].fillna(0)
# 筛选符合条件的股票
stock_data = stock_data[~stock_data['ts_code'].str.contains('ST|st')]
stock_data = stock_data[stock_data['vol'] > 0]
stock_data = stock_data[stock_data['high'] - stock_data['low'] > 1]
stock_data = stock_data.sort_values('amount', ascending=False).reset_index(drop=True)
stock_data = stock_data[stock_data.index < 1000]
stock_data = stock_data[(stock_data['turnover_rate'] * stock_data['intra_bid_amount'] > 0.5) &
(stock_data['turnover_rate'] * stock_data['intra_bid_amount'] < 2)]
selected_stocks = []
for index, row in stock_data.iterrows():
code = row['ts_code']
info = {}
info['code'] = code
info['name'] = row['name']
# 获取当日股票详细数据
details_data = pro.daily(ts_code=code, start_date='20220308', end_date='20220308')
if len(details_data) == 0:
continue
details = details_data.iloc[0]
if details['pct_chg'] >= 9.9:
selected_stocks.append(info)
# 按五日涨幅从大到小排序,选出前5只股票
selected_stocks_sorted = sorted(selected_stocks, key=lambda x: x['jgmm'], reverse=True)[:5]
return selected_stocks_sorted
在该选股策略中我们引入了换手率、竞价成交量等基本面因素,计算并筛选符合条件的股票。同时,也增加了对基本面分析、行业板块等信息的考虑以综合分析股票的投资价值。在筛选过程中,我们使用均值或中位数来避免异常数据对结果的影响以提高选股策略的精确度。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
