问财量化选股策略逻辑
本选股策略选取满足振幅大于1、今日收盘价上穿本周的均线、竞价时特大单和大单共计买入量大于700万的股票作为投资标的。
选股逻辑分析
选股逻辑中考虑了市场波动性、趋势性以及交易量等因素,并且引入了特大单和大单的数据作为买入信号。通过该逻辑可挖掘短期内涨幅潜力较大的票。
有何风险?
该选股策略着重于短期内的涨幅潜力,没有考虑到股票的基本面等因素。同时,竞价时的数据存在噪音和异常情况,可能会产生误判。另外,大单和特大单的买入意愿并不一定代表有利消息或者高潜力。同时,股票市场在竞价前后比较容易受到市场情绪的影响,经常产生不确定性。
如何优化?
可以加入基本面分析、行业关联性等因素来完善选股策略。对于竞价数据的处理,可以考虑去掉较突兀的数据点,并进行合理平滑,减小误判的可能性。同时,建议筛选买入意愿强烈且非热点涨停票的大单和特大单来避免心理效应的干扰。
最终的选股逻辑
本选股策略选取满足以下条件的股票:
- 振幅大于1;
- 今日收盘价上穿本周的均线;
- 竞价时特大单和大单共计买入量大于700万。
同花顺指标公式代码参考
由于涉及竞价时的数据,无法使用通达信公式进行选股,需要使用外部数据进行处理和计算。
python代码参考
import tushare as ts
import pandas as pd
def select_stock(market='sh'):
selected_stocks = pd.DataFrame(columns=["amplitude", "code"])
for stock in ts.get_stock_basics().index:
if ts.get_stock_basics().loc[stock, 'code'][0:2] == '60' or ts.get_stock_basics().loc[stock, 'code'][0] == '0':
continue
data = ts.get_k_data(stock, start='2021-01-01', end='2021-06-30', ktype='D', autype='qfq')
if len(data) != 120:
continue
if data["amplitude"][-1] < 1:
continue
ma_week = data["close"].rolling(window=5).mean()
if not (data["close"][-1] > ma_week[-1] and data["close"][-1] > data["close"][-2]):
continue
bid_data = ts.get_tick_data(stock, date='2021-06-30')
bid_data = bid_data[bid_data["type"] == 0] # 只选取买单数据
large_bid = bid_data[bid_data["volume"] > 1000]
biggest_bid = bid_data.iloc[0]
if not (large_bid["volume"].sum() + biggest_bid["volume"] > 7000000):
continue
selected_stocks = selected_stocks.append({
"amplitude": data["amplitude"][-1],
"code": stock
}, ignore_index=True)
return selected_stocks
print(select_stock(market='sz'))
以上代码仅供参考,实现方法会因投资人情况和市场环境而异。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
