问财量化选股策略逻辑
本选股策略选取符合以下条件的股票:振幅大于1,周线MA5金叉MA10,2021年营收/2018年营收大于1.1。通过综合考虑技术面和基本面因素,筛选出符合条件的股票,并进行后续的投资操作。
选股逻辑分析
本选股策略结合了技术面和基本面的因素,考虑了股票的波动情况、趋势和业绩状况。振幅大于1限制了股票的波动情况,周线MA5金叉MA10表示股票的趋势已经出现明显的转机,具有较好的短期投资机会。选取2021年的营收与2018年的营收进行比较,可以获得更准确的业绩判断,同时避免过度依赖过往的财务数据。
有何风险?
本选股策略还是忽略了股票的一些重要基本面因素,如公司盈利、财务结构等,同时该策略仍然侧重于短期操作,可能存在交易频率过高的风险。此外,该选股策略可能过度依赖营收数据,无法全面衡量股票的投资价值。
如何优化?
本选股策略可以结合其他基本面和资金面的因素,如市盈率、市净率、资产负债率等,从多个维度评价股票的投资价值。同时,应适当调整投资时间,降低交易频率并控制风险。
最终的选股逻辑
本选股策略选取符合以下条件的股票:
- 振幅大于1;
- 周线MA5金叉MA10;
- 选取2021年的营收和2018年的营收比值,比值大于1.1。
通过筛选符合条件的股票,进一步观察其基本面和业务发展,并进行短期投资操作。
同花顺指标公式代码参考
以下是本选股策略的通达信指标代码:
C1: V>1
C2: WEEK:MA(CLOSE,5)>REF(MA(CLOSE,10),1) AND MA(CLOSE,5)<REF(MA(CLOSE,10),1)
C3: YEAR(CODE, 'kr1')/YEAR(CODE, 'kr4')>1.1
C4: COUNTC(C1 AND C2 AND C3, 1)>0
BULL:SELECTC(C4 AND C, 0, 1)
其中,C1
表示振幅大于1,C2
表示周线MA5金叉MA10,C3
表示2021年营收/2018年营收大于1.1。YEAR
为通达信自定义函数,需要在自定义函数中添加代码:
kr1: IF(DATE==YEARBARS(YEAR), REVS*10000, KR1[1])
kr4: IF(DATE==YEARBARS(YEAR)-3, REVS*10000, KR4[1])
其中,DATE
、REVS
为通达信公式中的变量,分别表示年度日期和年度营收数据。
python代码参考
import tushare as ts
# 判断当日是否符合筛选条件
def check_today(df):
df_today = df.iloc[-1]
v = df_today['vol']
ma5 = df_today['ma5']
ma10 = df_today['ma10']
rev_2018 = df_today['rev_2018']
rev_2021 = df_today['rev_2021']
return v>1 and ma5>ma10 and rev_2021/rev_2018>1.1
# 按市值排序
def sort_by_market_value(data):
return data.sort_values(by='totalAssets', ascending=False)
# 选取符合条件的股票
def select_stock():
results = []
all_stocks = ts.get_stock_basics()
for code in all_stocks.index:
k_data = ts.get_hist_data(code)
if k_data is not None and check_today(k_data):
results.append(code)
selected_data = all_stocks.loc[results]
return sort_by_market_value(selected_data).index.tolist()
print(select_stock())
以上代码仅供参考,具体实现应根据实际情况进行调整。其中,使用了 tushare
库进行了股票数据获取。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
