(同花顺量化)2021年营收除2018年营收大于1

用户头像神盾局量子研究部
2023-08-31 发布

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 10日涨幅大于0小于35
  • 2021年营收/2018年营收大于1.1

选股逻辑分析

  • 第一条均线是5日均线,表示最近5天的平均价格
  • 第二条均线是10日均线,表示最近10天的平均价格
  • 第三条均线是20日均线,表示最近20天的平均价格
  • 第四条均线是30日均线,表示最近30天的平均价格
  • 第五条均线是60日均线,表示最近60天的平均价格

当5日、10日、20日、30日和60日均线重合时,意味着这些时间段内的价格走势较为稳定,可以视为一个短期的趋势。而10日涨幅大于0小于35则表示股票价格在最近10天内有一定的上涨趋势,但还没有达到过高的水平。2021年营收/2018年营收大于1.1则表示股票的营收在最近两年内有较大幅度的增长。

有何风险?

  • 这个策略可能无法捕捉到股票价格的短期波动,因为均线的重合需要一定的时间才能实现。
  • 如果股票价格在短期内出现剧烈波动,可能会导致均线的重合被打破,从而使得策略失效。

如何优化?

  • 可以考虑加入更多的均线,如90日均线、180日均线等,以捕捉更长时间范围内的趋势。
  • 可以加入一些其他的指标,如MACD、RSI等,以更好地判断股票价格的走势。

最终的选股逻辑

  • 选取至少5根均线重合的股票
  • 10日涨幅大于0小于35
  • 2021年营收/2018年营收大于1.1
  • 选取MACD指标的D线在0轴上方且柱状图红色区域,RSI指标在50-70之间

python代码参考:

import tushare as ts
import talib

# 设置pro接口token
ts.set_token('your_token')

# 初始化pro接口
pro = ts.pro_api()

# 获取所有A股股票代码
stock_codes = pro.stock_all()

# 初始化macd和rsi指标
macd = talib.MACD()
rsi = talib.RSI()

# 选取至少5根均线重合的股票
def has_consecutive_moving_average(data, n):
    for i in range(n):
        if data[i] != data[i+1]:
            return False
    return True

# 选取10日涨幅大于0小于35的股票
def has_sufficient_price_change(data, n):
    for i in range(n):
        if data[i] > 0 and data[i] < 35:
            return True
    return False

# 选取2021年营收/2018年营收大于1.1的股票
def has_sufficient_revenue_growth(data, n):
    for i in range(n):
        if data[i] > 1.1 * data[i-1]:
            return True
    return False

# 选取MACD指标的D线在0轴上方且柱状图红色区域,RSI指标在50-70之间的股票
def has_macd_rsi_stock(data, n):
    macd_data = macd(data, n)
    rsi_data = rsi(data, n)
    if macd_data['D'] > 0 and macd_data['D'] > macd_data['MACD'], rsi_data['rsi'] > 50 and rsi_data['rsi'] < 70:
        return True
    return False

# 选取符合条件的股票
def select_stocks(data, n):
    stocks = []
    for i in range(n):
        if has_consecutive_moving_average(data, i+1) and has_sufficient_price_change(data, i+1) and has_sufficient_revenue_growth(data, i+1) and has_macd_rsi_stock(data, i+1):
            stocks.append(data[i])
    return stocks

# 获取所有A股股票的收盘价数据
data = pro.daily(ts_code=stock_codes, start_date='2021-01-01', end_date='2021-12-31')

# 选取符合条件的股票
selected_stocks = select_stocks(data, 5)

# 输出符合条件的股票代码
print(selected_stocks)

如何进行量化策略实盘?

请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

select_sentence = '市值小于100亿' #选股语句。

模板如何使用?

点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。

如果有任何问题请添加 下方的二维码进群提问。

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论