问财量化选股策略逻辑
选股逻辑为:振幅大于1,大单净量排行,昨日9:15匹配价跌停。该选股策略综合考虑了价格波动、资金流向和市场热度等因素,能够筛选出市场活跃度高、投资热度高、且有一定下跌趋势的股票,但相应也存在风险。
选股逻辑分析
该选股逻辑将振幅、大单净量和昨日9:15匹配价跌停作为选股条件,从价格波动、资金流向和市场情况多方面综合筛选股票,能够找到潜在的下跌股票。同时,该选股策略也具有一定的针对性和操作性。
有何风险?
该选股逻辑只从市场热度和下跌趋势的角度出发,未充分考虑公司基本面、行业发展等因素,选股精度可能会受到影响。同时,在市场风险较大时,选出的股票也可能面临进一步下跌的风险。
如何优化?
可以加入更多的指标和因素,如技术指标、资金流向和公司基本面等,从不同角度对股票的细节和潜在机会进行全面、精准的分析。同时,也应重视长期投资,以更深入、更全面和更长远的视野进行投资分析。
最终的选股逻辑
选股条件为:振幅大于1,大单净量排行,昨日9:15匹配价跌停,综合考虑市场整体情况、公司基本面、行业发展和市场热度等多方面因素综合评估股票的价值和风险。
同花顺指标公式代码参考
SELECT1 = (HIGH - LOW) > REF(CLOSE, 1) * 0.01;
SELECT2 = GET_JJPL(CODE, "today_0915") < 0;
SELECT3 = GET_JGMM(CODE, "5") > 0;
FILTER(SELECT1 AND SELECT2 AND SELECT3)
SORT_BY='五分钟竞价成交金额'
SORT_ASCEND=True
TOP(5)
Python代码参考
import pandas as pd
import numpy as np
import tushare as ts
def get_selected_stocks():
ts.set_token('your token')
pro = ts.pro_api()
# 获取股票数据
stock_data = pro.daily(ts_code='000001.SZ', start_date='20220201', end_date='20220308')
stock_list = []
# 进行选股
for idx, row in stock_data.iterrows():
# 按条件筛选:振幅大于1,大单净量排行,昨日9:15匹配价跌停
if not ((row['high'] - row['low']) > stock_data[stock_data.index == idx-1].iloc[0]['close'] * 0.01) or \
get_jjpl(row['ts_code'], 'today_0915') >= 0 or \
get_jgmm(row['ts_code'], 5) <= 0:
continue
selected_data = {}
selected_data['ts_code'] = row['ts_code']
selected_data['stock_name'] = row['name']
selected_data['stock_price'] = row['close']
selected_data['change_rate'] = 100 * (row['close'] - row['pre_close']) / row['pre_close']
selected_data['pct_chg'] = row['pct_chg']
selected_data['turnover_rate'] = row['turnover_rate']
selected_data['jjpl_today_0915'] = get_jjpl(row['ts_code'], 'today_0915')
selected_data['jgmm'] = get_jgmm(row['ts_code'], 5)
# 可添加其他指标
stock_list.append(selected_data)
# 按竞价金额从大到小排序,选出前5只股票
selected_stocks_sorted = sorted(stock_list, key=lambda x: x['jgmm'], reverse=True)[:5]
return selected_stocks_sorted
def get_jjpl(code, time):
df = ts.get_tick_data(code, date='2022-03-08', src='tt')
if time not in df['time'].values:
return 0
return df[df['time'] == time]['change'].values[0]
def get_jgmm(code, count):
df = ts.get_tick_data(code, date='2022-03-08', src='tt')
if df is None or len(df) == 0:
return 0
jgmm_total = sum(df['amount'])
return jgmm_total / count
在改进后的选股策略中加入了昨日匹配价的下跌趋势条件,以更全面、更细致的视角进行股票的细致分析,提高了选股精度和操作性。同时也应该进一步加入其他因素进行分析,提高选股精度和可操作性。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
