(同花顺量化)60开头的股票_、9点25分涨幅小于6%、至少5根均线重合的股票

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

问财量化选股策略逻辑

首先,我们定义了一个选股逻辑,即至少5根均线重合的股票。这个逻辑可以使用以下代码实现:

def均线重合筛选(df):
    # 计算股票的均线
    df['ma5'] = df['close'].rolling(window=5).mean()
    df['ma10'] = df['close'].rolling(window=10).mean()
    df['ma20'] = df['close'].rolling(window=20).mean()
    df['ma50'] = df['close'].rolling(window=50).mean()
    df['ma100'] = df['close'].rolling(window=100).mean()
    
    # 计算股票的均线重合数量
    df['均线重合数量'] = df.apply(lambda x: sum(x['ma5'] == x['ma10'] == x['ma20'] == x['ma50'] == x['ma100']), axis=1)
    
    # 选择均线重合数量大于等于5的股票
    df = df[df['均线重合数量'] >= 5]
    
    return df

接下来,我们定义了一个选股逻辑,即9点25分涨幅小于6%的股票。这个逻辑可以使用以下代码实现:

def涨幅筛选(df):
    # 计算股票的开盘价和收盘价
    df['open'] = df['open'].shift(-1)
    df['close'] = df['close'].shift(-1)
    
    # 计算股票的涨幅
    df['涨幅'] = df['close'] / df['open'] - 1
    
    # 选择涨幅小于6%的股票
    df = df[df['涨幅'] < 0.06]
    
    return df

最后,我们定义了一个选股逻辑,即60开头的股票。这个逻辑可以使用以下代码实现:

def股票代码筛选(df):
    # 选择股票代码以60开头的股票
    df = df[df['code'].str.startswith('60')]
    
    return df

选股逻辑分析

以上三个选股逻辑都是基于股票的某种特征进行筛选的,因此可能会存在以下风险:

  1. 选择的特征可能不具有代表性,导致筛选出的股票不符合投资者的预期。
  2. 选择的特征可能存在噪声,导致筛选出的股票数量过多或过少。
  3. 选择的特征可能存在相关性,导致筛选出的股票不符合投资者的预期。

为了优化以上三个选股逻辑,我们可以考虑以下方法:

  1. 选择更多的特征,以提高筛选出的股票的准确性。
  2. 使用更复杂的算法,如机器学习算法,以提高筛选出的股票的准确性。
  3. 对于每个特征,使用更多的数据进行训练,以提高筛选出的股票的准确性。

最终的选股逻辑可以使用以下代码实现:

def最终的选股策略(df):
    # 选择至少5根均线重合的股票
    df = df.merge(均线重合筛选(df), on='code')
    
    # 选择9点25分涨幅小于6%的股票
    df = df.merge(涨幅筛选(df), on='code')
    
    # 选择股票代码以60开头的股票
    df = df.merge(股票代码筛选(df), on='code')
    
    return df

python代码参考

以下是一个完整的Python代码参考,用于实现上述的最终的选股策略:

import pandas as pd

def均线重合筛选(df):
    # 计算股票的均线
    df['ma5'] = df['close'].rolling(window=5).mean()
    df['ma10'] = df['close'].rolling(window=10).mean()
    df['ma20'] = df['close'].rolling(window=20).mean()
    df['ma50'] = df['close'].rolling(window=50).mean()
    df['ma100'] = df['close'].rolling(window=100).mean()
    
    # 计算股票的均线重合数量
    df['均线重合数量'] = df.apply(lambda x: sum(x['ma5'] == x['ma10'] == x['ma20'] == x['ma50'] == x['ma100']), axis=1)
    
    # 选择均线重合数量大于等于5的股票
    df = df[df['均线重合数量'] >= 5]
    
    return df

def涨幅筛选(df):
    # 计算股票的开盘价和收盘价
    df['open'] = df['open'].shift(-1)
    df['close'] = df['

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

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

模板如何使用?

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


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

评论