问财量化选股策略逻辑
本选股策略选取振幅大于1、昨日非涨停板的股票,并筛选出主升起动的股票。
选股逻辑分析
振幅大于1和昨日非涨停板的条件筛选同其他股票的选股逻辑,而主升起动的指标判断可以通过技术指标如KDJ、RSI等来判断,从而提高选股的准确性。
有何风险?
选股策略忽略了其他技术和基本面指标的影响,可能忽略掉一些重要的股票信息和趋势。同时,市场存在着大量的投机资金,股票的波动也可能出现异常。
如何优化?
可以结合其他技术指标和基本面分析,如MACD、BOLL等技术指标,以及PE、PB等基本面指标,进一步优化选股条件。同时,增加一些过滤条件,如剔除ST股票、停牌股票等,可以提高选股的准确性。
最终的选股逻辑
本选股策略选取振幅大于1、昨日非涨停板的股票,通过技术指标判断主升起动的股票。
同花顺指标公式代码参考
本选股策略采用KDJ指标来判断股票的主升起动,KDJ指标的计算公式如下:
RSV(N) = (C - L(N)) / (H(N) - L(N)) * 100
K(N) = (2/3) * K(N-1) + (1/3) * RSV(N)
D(N) = (2/3) * D(N-1) + (1/3) * K(N)
J(N) = 3 * K(N) - 2 * D(N)
python代码参考
# 引入Tushare库
import tushare as ts
# 连接Tushare库
pro = ts.pro_api()
def select_stocks(n):
selected_stocks = []
today = pro.trade_cal(exchange='', is_open='1')["cal_date"].values[-1]
yesterday = pro.trade_cal(exchange='', is_open='1', end_date=today, count=2)["cal_date"].values[0]
for i in range(3):
# 筛选出振幅大于1、昨日非涨停板的股票
quote = pro.limit_list(trade_date=yesterday, limit_type='U')
quote = quote[~quote["ts_code"].str.startswith("688")] # 剔除科创板
quote = quote.append(pro.limit_list(trade_date=yesterday, limit_type='D'))
quote = quote[~quote["ts_code"].str.startswith("300")] # 剔除创业板
quote = quote.drop_duplicates(subset="ts_code", keep=False)
quote = quote.merge(pro.daily(trade_date=yesterday, fields='ts_code, pct_chg'), on="ts_code")
quote = quote[quote["pct_chg"] < 9.9]
quote = quote.merge(pro.stocks_basic(exchange='', list_status='L', fields='ts_code,name'), on='ts_code')
# 判断是否符合KDJ指标的主升起动条件
for code in quote["ts_code"].tolist():
k_data = pro.daily(ts_code=code, start_date="20190101", end_date=today, fields="ts_code, trade_date, high, low, close")
if len(k_data) > 6:
high_values = k_data["high"].rolling(9).max()
low_values = k_data["low"].rolling(9).min()
RSV = (k_data["close"] - low_values) / (high_values - low_values) * 100
K = RSV.rolling(3).mean()
D = K.rolling(3).mean()
J = 3 * K - 2 * D
J_last_5 = J.tail(5)
if J_last_5.mean() > 80:
selected_stocks.append(code)
if len(selected_stocks) >= n:
break
return selected_stocks[:n]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
