(同花顺量化)100亿市值以内的无亏损企业_、圆弧形、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 圆弧形
  • 100亿市值以内的无亏损企业

选股逻辑分析

这个策略基于以下假设:

  • 股票价格的走势可以通过均线来反映。
  • 圆弧形形态通常表示股票价格在某一区间内波动,可能会出现反转。
  • 无亏损企业通常具有更好的经营状况和稳定性。

根据这些假设,我们可以使用以下步骤来实现这个策略:

  1. 选择至少5根均线,例如5日、10日、20日、50日和200日均线。
  2. 检查股票价格是否在均线之间波动,如果符合则继续进行下一步。
  3. 检查股票价格是否出现圆弧形形态,如果符合则继续进行下一步。
  4. 检查股票市值是否小于100亿,如果符合则继续进行下一步。
  5. 如果以上步骤都符合,则将该股票加入到股票池中。

有何风险?

这个策略存在以下风险:

  • 均线的选取可能会对策略的准确性产生影响。
  • 圆弧形形态的判断可能会出现误差。
  • 股票市值的选取可能会导致某些股票被遗漏。

如何优化?

为了优化这个策略,我们可以考虑以下方法:

  • 使用更多的均线来提高准确性。
  • 使用更复杂的形态判断方法来减少误差。
  • 考虑市值的其他限制条件,例如流通市值等。

最终的选股逻辑

以下是最终的选股逻辑:

  • 选择至少5根均线,例如5日、10日、20日、50日和200日均线。
  • 检查股票价格是否在均线之间波动,如果符合则继续进行下一步。
  • 检查股票价格是否出现圆弧形形态,如果符合则继续进行下一步。
  • 检查股票市值是否小于100亿,如果符合则继续进行下一步。
  • 检查股票的流通市值是否小于10亿,如果符合则继续进行下一步。
  • 如果以上步骤都符合,则将该股票加入到股票池中。

python代码参考

以下是使用pandas和numpy库实现这个策略的Python代码参考:

import pandas as pd
import numpy as np

def get_stock_prices(dataframe):
    # 获取股票价格数据
    stock_prices = dataframe['close'].values
    return stock_prices

def get_rolling_mean(prices, n):
    # 获取n周期的滚动平均值
    rolling_mean = np.convolve(prices, np.ones(n), mode='full') / n
    return rolling_mean

def get_rolling_std(prices, n):
    # 获取n周期的滚动标准差
    rolling_std = np.convolve(prices, np.ones(n), mode='full') / n
    return rolling_std

def check_price_position(prices, moving_average):
    # 检查股票价格是否在均线附近波动
    position = np.sign(prices - moving_average)
    return position

def check_rounding(prices, moving_average):
    # 检查股票价格是否出现圆弧形形态
    rounding = np.sign(prices - moving_average)
    return rounding

def check市值_size(dataframe):
    # 检查股票市值是否小于100亿
    market_cap = dataframe['market_cap'].values
    return market_cap

def check流通市值_size(dataframe):
    # 检查股票流通市值是否小于10亿
    market_cap = dataframe['market_cap'].values
    return market_cap

def check_stock_pool(dataframe):
    # 检查股票池是否为空
    stock_pool = dataframe['code'].values
    return stock_pool

def get_stock_pool(prices, moving_average, rounding, market_cap, market_cap_size, n):
    # 获取股票池
    stock_pool = []
    for i in range(len(prices)):
        if check_price_position(prices[i], moving_average) == 1 and check_rounding(prices[i], moving_average) == 1 and market_cap[i] < market_cap_size and market_cap[i] < n:
            stock_pool.append(prices[i])
    return stock_pool

def get_optimized_pool(prices, moving_average, rounding, market_cap, market_cap_size, n):
    # 获取优化后的股票池
    stock_pool = []
    for i in range(len(prices)):
        if check_price_position(prices[i], moving_average) == 1 and check_rounding(prices[i], moving_average) == 1 and market_cap[i] < market_cap_size and market_cap[i] < n:
            stock_pool.append(prices[i])
    return stock_pool

def main():
    # 读

## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

模板如何使用?

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


## 如果有任何问题请添加 下方的二维码进群提问。
![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论