问财量化选股策略逻辑
该选股策略选股逻辑为:选择换手率在3%-12%之间,上市年份为2021年,500日内至少2次涨停。
选股逻辑分析
该选股策略侧重于挖掘有较大潜力的成长股,通过选择换手率在3%-12%之间、上市年份为2021年、500日内至少2次涨停的股票进行选股,理论上可以选出市值较小但成长性较好的个股。
有何风险?
该选股策略存在以下风险:1、单一依据涨停次数选股存在数据散点大、难以统一的风险;2、忽略上市后长时间涨停股票,也许他们具备更为优秀的业绩及成长性,选择方向有局限性;3、对于经营情况表现一般,但依然能达到涨停形态的公司被误判为成长型公司,存在错杀的风险。
如何优化?
可以通过选择涨幅超过15%、市净率小于2、股价大于10元等指标结合过去500日的涨跌幅、涨停次数等进行综合考评,以更全面地挖掘成长型公司。同时选股时可适当放宽条件,如将换手率范围扩大至3%-15%等。
最终的选股逻辑
选择换手率在3%-12%之间,上市年份为2021年,500日内至少2次涨停的股票。
同花顺指标公式代码参考
无
python代码参考
import pandas as pd
from pytdx.hq import TdxHq_API
from pytdx.util.best_ip import select_best_ip
api = TdxHq_API()
ip = select_best_ip('tdx')
def get_stock_list(api):
dataList = []
for market in [0,1]:
stock_list = api.get_security_list(market, 0)
results = [(stock['code'], pd.Timestamp(stock['ipo_date']).year, stock['ipo_price'], stock['ipo_amount']) for stock in stock_list if stock['code'][0] in ['0', '3', '6']]
dataList += results
return pd.DataFrame(dataList, columns=['stock_code','ipo_year','ipo_price','ipo_amount'])
def check_zt(api, stock_code):
today = pd.Timestamp.now().strftime('%Y-%m-%d')
df = api.to_df(api.get_security_bars(4 if stock_code[0] == '0' else 3, 0 if stock_code[0] == '0' else 1, stock_code, 4, 1000)) # 获取周线数据
df['date'] = pd.to_datetime(df['datetime']).dt.date
df = df.sort_values('date', ascending=False)
df = df.set_index('date')
zt_days = df['change'] >= 9.9
if len(zt_days[zt_days]) >= 2 and today in zt_days[zt_days].index:
return True
else:
return False
stock_list = get_stock_list(api)
# 获取符合条件的股票列表
condition1 = stock_list['ipo_year'] == 2021
condition2 = (stock_list['ipo_price'] >= 1) & (stock_list['ipo_amount'] > 1000000)
matched_stocks = []
for stock_code in stock_list[condition1 & condition2]['stock_code']:
if check_zt(api, stock_code):
matched_stocks.append(stock_code)
# 输出结果
print('下列股票符合选股策略:')
print(matched_stocks)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
