问财量化选股策略逻辑
选股逻辑为:振幅大于1、酷特智能早晨之星、10天内涨停天数大于2的股票。该选股策略主要从技术面出发,选出振幅较大、连续涨停的股票,预期具有较大上涨空间。
选股逻辑分析
该选股逻辑同样是从技术面选股,加入了连续涨停的考量。振幅较大、连续涨停的股票通常暴涨概率较高,具有一定的短期投资价值。缺点为该选股策略忽略了基本面的考量,而且连续涨停股票可能出现追高出货、恶意炒作等风险。
有何风险?
该选股逻辑忽略了公司基本面的考虑,存在一些应对不良的情况,比如突发事故等,对股票价格带来影响。作为技术面选股,该逻辑对市场风险的应对能力相对欠缺。另外,连续涨停的股票可能遭到资金恶意炒作,出现投资风险。
如何优化?
可以适当加入基本面的考虑,如盈利能力、财务健康等指标,从综合角度考虑选股。同时,加入量能指标,提高股票的流动性标准,避免做空资本的困扰。对于连续涨停的股票需要进行仔细筛选,分别关注其成交量、市盈率等指标,避免意外风险。
最终的选股逻辑
选股逻辑为:振幅大于1、酷特智能早晨之星、10天内涨停天数大于2的股票。该选股策略从技术面角度选股,具有短期操作的价值。
同花顺指标公式代码参考
WYDP = SUM(IF((OPEN=LOW)AND(OPEN<>DELAY(CLOSE,1)),1,0),10)
SELECTED = LIANXIAN(LOW,1)==1 AND (ZHENFU>1) AND WYDP>=2
以上的同花顺指标公式根据振幅、酷特智能早晨之星、10天内涨停次数规则选股。
Python代码参考
import tushare as ts
import pandas as pd
from datetime import datetime, timedelta
def get_selected_stocks():
pro = ts.pro_api()
selected_stocks = []
for ts_code, name, market in pro.stock_basic(exchange='', list_status='L', fields='ts_code,name,market').values.tolist():
if market == '创业板':
continue
# 技术面
daily_data = pro.daily(ts_code=ts_code, start_date=datetime.strftime(datetime.now() - timedelta(days=10), '%Y%m%d'), end_date=datetime.strftime(datetime.now(), '%Y%m%d'))
if daily_data.empty or daily_data.iloc[-1]['turnover_rate'] <= 5:
continue
if not check_morning_star(daily_data):
continue
if check_limit_rising_days(daily_data) < 2:
continue
# 选股成功
selected_stocks.append((name, ts_code))
return sorted(selected_stocks, reverse=True)
def check_morning_star(daily_data):
ma5 = daily_data['close'].rolling(window=5).mean()
ma10 = daily_data['close'].rolling(window=10).mean()
dif, dea, macd = talib.MACD(daily_data['close'].values, fastperiod=12, slowperiod=26, signalperiod=9)
if dif[len(dif) - 1] < 0 or dea[len(dea) - 1] < 0:
return False
if daily_data.iloc[-1]['open'] >= ma5[len(ma5) - 1] and ma5[len(ma5) - 1] >= ma10[len(ma10) - 1] \
and daily_data.iloc[-1]['open'] <= daily_data.iloc[-1]['close'] and daily_data.iloc[-1]['open'] <= daily_data.iloc[-2]['close'] and daily_data.iloc[-2]['close'] < daily_data.iloc[-3]['close'] \
and (daily_data.iloc[-1]['open'] - daily_data.iloc[-1]['low']) / (daily_data.iloc[-1]['high'] - daily_data.iloc[-1]['low']) <= 0.33:
return True
return False
def check_limit_rising_days(daily_data):
count = 0
for i in range(1, len(daily_data)):
if daily_data.iloc[i]['high'] == daily_data.iloc[i-1]['close'] and daily_data.iloc[i]['low'] == daily_data.iloc[i-1]['close']:
count += 1
return count
以上的Python代码同样是从技术面的考虑出发,选取振幅较大、连续涨停的股票,主要包括振幅、酷特智能早晨之星、10天内涨停次数等指标。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
