问财量化选股策略逻辑
选股逻辑为:振幅大于1,大单净量排行,机构抄底。该选股策略综合考虑了价格波动、资金流向和机构布局等因素,能够挑选出有机构博弈情况,且价格波动幅度较大的潜在股票,但相应也存在风险。
选股逻辑分析
该选股逻辑以价格波动、资金流向和机构布局作为选股条件,通过筛选价格波动幅度较大、机构抄底情况好的股票,能够挖掘出潜在的机会股票,有利于投资者在市场中找到优质的股票。
有何风险?
该选股逻辑主要以价格波动和机构布局作为选股条件,较少考虑公司基本面和市场热度等因素,选股精度可能会受到影响。同时,如果市场风险较大,选股策略也容易受到影响。
如何优化?
可以引入更多的指标和因素,如技术指标、资金流向、公司基本面和行业发展等方面,全方位地考察股票的细节和潜在机会。同时,也应该综合考虑市场整体情况,以更深入、更全面和更长远的视野进行投资分析。
最终的选股逻辑
选股条件为:振幅大于1,大单净量排行,机构抄底,综合考虑价格波动、资金流向、机构布局、公司基本面、行业发展和市场热度等多方面因素评估股票的价值和风险。
同花顺指标公式代码参考
SELECT1 = (HIGH - LOW) > REF(CLOSE, 1) * 0.01;
SELECT2 = GET_JJPL(CODE, "today_0915") < 0;
SELECT3 = GET_JGMM(CODE, "5") > 0;
SELECT4 = GET_JGLX(CODE) > 0;
FILTER(SELECT1 AND SELECT2 AND SELECT3 AND SELECT4)
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='20220101', end_date='20220308')
stock_list = []
# 进行选股
for idx, row in stock_data.iterrows():
# 按条件筛选:振幅大于1,大单净量排行,机构抄底
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 or \
get_jglx(row['ts_code']) <= 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)
selected_data['jglx'] = get_jglx(row['ts_code'])
# 可添加其他指标
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
def get_jglx(code):
df = ts.cap_tops(days=30, start_date='20220101', end_date='20220308')
if df is None or len(df) == 0 or code not in df['ts_code'].values:
return 0
return df[df['ts_code'] == code]['type'].values[0]
在改进后的选股策略中加入了机构抄底的选股条件,以更全面、更细致的视角进行股票的细致分析,提高了选股精度和操作性。同时也应该进一步加入其他因素进行分析,提高选股精度和可操作性。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
