问财量化选股策略逻辑
选股逻辑为:振幅大于1、酷特智能早晨之星、圆弧形的股票。该选股策略主要从技术面的角度,选取具备较大涨幅潜力的公司,并在基础的选股条件中引入了一些另类而具有实用价值的指标。
选股逻辑分析
该选股策略主要从技术面的角度考虑,选股条件合理:振幅大可找到市场热点,同时酷特智能早晨之星是一个常用的K线形态,而圆弧形则是一个更具另类的选股条件,虽然使用较为少见但背后的逻辑也有一定的合理性。这些因素作为选股条件能够选出涨幅较大,同时存在一定市场认可度的股票。
有何风险?
该选股逻辑在技术面加入了较多因素,但仍然存在一定的风险:股票的历史表现并不能代表未来的发展,而圆弧形等指标在实际应用时需要慎重考虑,如果过于依赖之可能会忽略一些更为重要的指标。在使用该选股策略时需要注意量化指标和经验分析的结合,并在用于股票的实际投资过程中进行风险控制。
如何优化?
在选股策略的基础上,可以进一步考虑一些市场热点相关的指标,如行业板块等,同时采用更为全面、细致的技术分析来辅助判断。因为股市表现受多种因素影响,不停地优化与更新选股策略,整合一些其他的判断模型,同时注意到统计的历史数据是相对静态的,需要不断地进行验证。
最终的选股逻辑
选股逻辑为:振幅大于1、酷特智能早晨之星、圆弧形的股票。该选股策略主要从技术面的角度,选取具备较大涨幅潜力的公司,并在基础的选股条件中引入了一些另类而具有实用价值的指标。
同花顺指标公式代码参考
C: K线为圆弧形 AND 振幅>1 AND 酷特智能早晨之星;
以上的同花顺指标公式根据圆弧形、振幅和酷特智能早晨之星选股。
Python代码参考
import tushare as ts
import pandas as pd
from datetime import datetime, timedelta
import scipy.signal as scisignal
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
# 基本面
stock_data = pro.daily_basic(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 stock_data.empty or stock_data.iloc[-1]['total_mv'] < 100000 or stock_data.iloc[-1]['total_mv'] > 1000000 or stock_data.iloc[-1]['pe'] < 0:
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]['close'] < daily_data.iloc[-2]['close']:
continue
if not check_morning_star(daily_data):
continue
if not check_round_shape(daily_data):
continue
# 选股成功
selected_stocks.append((name, ts_code))
return selected_stocks
def check_morning_star(daily_data):
if daily_data.iloc[-1]['open'] <= daily_data.iloc[-2]['close'] or daily_data.iloc[-1]['open'] <= daily_data.iloc[-3]['close']:
return False
ma5 = daily_data['close'].rolling(window=5).mean()
ma10 = daily_data['close'].rolling(window=10).mean()
if ma5[len(ma5) - 1] < ma10[len(ma10) - 1]:
return False
if (daily_data.iloc[-1]['close'] - daily_data.iloc[-1]['open']) / (daily_data.iloc[-1]['high'] - daily_data.iloc[-1]['low']) < 0.33:
return False
return True
def check_round_shape(daily_data):
avg5 = scisignal.savgol_filter(daily_data['close'], window_length=5, polyorder=2)
avg10 = scisignal.savgol_filter(daily_data['close'], window_length=10, polyorder=2)
avg20 = scisignal.savgol_filter(daily_data['close'], window_length=20, polyorder=2)
if (avg5[-1] - avg20[-1]) * (avg10[-1] - avg20[-1]) > 0:
return False
return True
以上的Python代码综合考虑了技术面和基本面的因素,对振幅、酷特智能早晨之星、圆弧形进行了筛选,加入了PE的条件判断以考虑基本面的因素,同时进一步加入了圆弧形的检测。圆弧形的检测使用scipy.signal
包的Savitzky-Golay滤波算法进行平滑处理,判断股票趋势的平滑性,为圆弧形的检测提供了可靠的技术手段。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
