问财量化选股策略逻辑
本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选取主板股票,连续3天以上大单(买入量减卖出量)净量大于0.05(单位:亿),期望获得超额收益。
选股逻辑分析
该选股策略基于技术面和量能面的因素,通过筛选符合条件的高质量股票,实现稳健收益增长。RSI指标小于65代表股票处于超卖状态,有望迎来反弹;今日上涨幅度大于1%则代表该股票在短期内有上涨动能;同时,选择主板股票也有一定的稳定性;连续3天以上大单净量大于0.05则代表机构资金正在大量买入,有望进一步拉升股价。
有何风险?
该选股策略忽略了其他基本面数据和市场热点等信息对股票价格的影响。同时,连续3天以上大单净量大于0.05的条件过于苛刻,可能会过滤掉许多优质股票。因此,该选股策略并不完善,存在一定风险。
如何优化?
可以加入更多的技术分析指标,如 MACD、均线等,并结合基本面数据、市场热点等因素,综合考虑各种因素,得到更加准确的选股策略。同时,在设定连续3天以上大单净量条件时可以适当降低要求。此外,可以加入风控措施,如止损,分散投资组合,以降低风险。
最终的选股逻辑
本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选取主板股票,连续3天以上大单净量大于0.05(单位:亿),筛选符合条件的股票进行投资,注重风险控制和分散投资组合。
同花顺指标公式代码参考
// 建立选股语句
SELECT
a.*
FROM
(
stock_market_data a
JOIN stock_basic_data b ON a.stock_code = b.stock_code
)
JOIN (
SELECT
stock_code,
abs(SUM(IF(buy_volume - sell_volume > 0, buy_volume - sell_volume, 0))) / 10000 big_transaction_net_volume
FROM
big_transaction_data
WHERE
date >= date_sub(curdate(), interval 3 day)
GROUP BY
stock_code
) c ON a.stock_code = c.stock_code
WHERE
a.rsi < 65
AND a.today_increase_rate > 1
AND b.is_main = 1
AND c.big_transaction_net_volume > 0.05
ORDER BY
c.big_transaction_net_volume DESC
LIMIT 5;
注意:is_main代表是否为主板股票,big_transaction_net_volume代表连续3天以上的大单净量(单位亿)。
python代码参考
# 导入需要使用的库
import pandas as pd
import tushare as ts
import talib as ta
# 选股函数
def stock_picking():
# 获取3天内大单净量大于0.05亿的股票信息,并按大单净量进行排序
big_vol = ts.get_sina_dd('000001', date='2022-01-10', vol=100000) # 获取已经爬取的公司的大宗交易信息
filter_stocks = big_vol.groupby('code')['vol'].sum()[big_vol.groupby('code')['vol'].sum() > 500000].reset_index()
filter_data = ts.get_today_all()[['name', 'code', 'trade', 'open', 'changepercent']].merge(filter_stocks, on='code')
filter_data['big_vol'] = round(filter_data['vol'] / 100000000, 2)
filter_data = filter_data[filter_data['big_vol'] > 0.05].sort_values(by='big_vol', ascending=False)
# 计算RSI指标,并筛选RSI指标小于65的股票
history_data = ts.pro_bar(ts_code=filter_data['code'].tolist(), adj='qfq', freq='D', start_date='20100101', end_date='')
rsi_14 = ta.RSI(history_data['close'], timeperiod=14)
filter_data = filter_data[rsi_14 < 65]
# 计算涨跌幅度和选股依据,并返回选股结果
daily_return = filter_data['trade'] / filter_data['open'] - 1
filter_data['daily_return'] = daily_return
stock_list = filter_data['code'].tolist()
return stock_list
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


