问财量化选股策略逻辑
本选股策略为:RSI指标小于65,今日上涨幅度大于1%,主板股票,量比大于1.5、量比小于6。期望通过技术面和基本面,寻找落后于市场表现的个股。
选股逻辑分析
该选股策略同样结合了技术面和基本面。RSI小于65代表股票处于超卖区间,可以预期股票将会反弹;今日上涨幅度大于1%代表股票动能较强,预期未来将继续上涨;选择主板股票,代表该股票具备较强的市场地位和良好的基本面;量比大于1.5、量比小于6可以过滤掉异常波动的股票,选择相对稳健的投资标的。该选股策略期望长期内能够获得具有一定市场表现的投资收益。
有何风险?
由于设置的选股条件较为固定,可能会忽略市场的动态变化,导致股票运行状况与市场趋势出现脱节。同时,基本面指标在不同的市场和行业具有不同的适用性,需要投资者进行深入研究和分析。而且,仅仅依靠技术指标可能会存在伪信号的问题,需要投资者进行风险控制和合理把握。
如何优化?
可以从技术分析和基本面两方面入手优化选股策略。比如加入多种指标和形态进行筛选,设置更加合理的基本面指标标准。同时,可以根据市场行情和股票类型等进行动态调整,避免出现市场动态与选股逻辑不符合的情况。需要进行风险控制和合理把握。
最终的选股逻辑
本选股策略为:RSI指标小于65,今日上涨幅度大于1%,主板股票,量比大于1.5、量比小于6。期望获得市场表现良好的个股。
同花顺指标公式代码参考
// 建立选股语句
SELECT
a.*
FROM
(
SELECT
a.*,
b.changepercent AS today_increase_rate,
a.volume / AVG(b.volume) AS volume_ratio
FROM
stock_market_data a
JOIN stock_daily_data b ON a.stock_code = b.stock_code
WHERE
a.stock_type = '主板'
AND b.date = CURDATE()
GROUP BY
b.date,
a.stock_code,
a.stock_name,
a.volume
HAVING
volume_ratio > 1.5
AND volume_ratio < 6
) a
WHERE
rsi < 65
AND today_increase_rate > 1
AND percent > 0
ORDER BY
a.circulating_market_value DESC;
python代码参考
# 导入需要使用的库
import pandas as pd
import tushare as ts
# 选股函数
def stock_picking():
# 获取RSI指标小于65、今日上涨幅度大于1%、主板股票、量比大于1.5、量比小于6的股票池
basic_data = ts.get_stock_basics()
market_data = ts.get_today_all()
daily_data = ts.get_today_ticks()
merge_data = pd.merge(market_data, daily_data, on='name', how='inner')
merge_data.drop(merge_data[merge_data['changepercent'] == 0.0].index, inplace=True)
merge_data.drop(merge_data[merge_data['volume'] <= 0].index, inplace=True)
group_data = merge_data.groupby('name').agg({'volume': 'sum'})
merge_data = pd.merge(merge_data, group_data, on='name', how='inner', suffixes=('_in_day', '_in_total'))
filter_data = merge_data[(merge_data['rsi'] < 65) & (merge_data['changepercent'] > 1.0) & (merge_data['stock_type'] == '主板')]
filter_data = filter_data[(filter_data['volume_in_day'] / filter_data['volume_in_total']) > 1.5]
filter_data = filter_data[(filter_data['volume_in_day'] / filter_data['volume_in_total']) < 6.0]
securities_value_data = filter_data[filter_data['circulating_market_value'] > 10000000000]
filter_data = filter_data[filter_data['name'].isin(securities_value_data['name'])]
daily_data = ts.get_today_all()
daily_data.reset_index(inplace=True)
daily_data.rename({'index':'name'},axis='columns')
filter_data = pd.merge(filter_data, daily_data[['name','percent']], on='name', how='inner')
filter_data = filter_data[filter_data["percent"] > 0]
filter_data = filter_data[['name', 'industry', 'open', 'price', 'outstanding', 'totals', 'totalAssets', 'liquidAssets', 'fixedAssets', 'reserved','reservedPerShare', 'esp', 'bvps', 'pb', 'timeToMarket']]
return filter_data
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


