(iwencai选股策略)近一个月内有过涨停_、昨天换手率>8%、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 昨天换手率>8%
  • 近一个月内有过涨停

选股逻辑分析

这个策略的逻辑是基于技术分析和市场行为分析。首先,选择至少5根均线重合的股票,这表明这些股票的走势比较稳定,可能有较强的趋势。其次,要求昨天换手率大于8%,这表明该股票在昨天有比较活跃的交易,可能存在较大的市场参与度。最后,要求近一个月内有过涨停,这表明该股票在近一个月内有过比较明显的市场表现,可能具有较高的投资价值。

有何风险?

这个策略的局限性在于它只考虑了股票的技术和市场行为因素,而忽略了其他因素,如公司财务状况、行业前景等。此外,如果市场出现较大的变化,这个策略的准确性可能会受到影响。

如何优化?

为了优化这个策略,可以考虑加入其他因素,如公司财务状况、行业前景等,以更好地评估股票的投资价值。此外,可以考虑加入更多的技术指标和市场行为指标,以提高策略的准确性。

最终的选股逻辑

  • 选择至少5根均线重合的股票
  • 要求昨天换手率大于8%
  • 要求近一个月内有过涨停
  • 加入公司财务状况和行业前景等其他因素
  • 加入更多的技术指标和市场行为指标

python代码参考

import talib
import pandas as pd

def get_stocks():
    # 获取所有A股股票
    stocks = pd.read_csv('stock_list.csv')
    return stocks

def get_stock_data(stocks):
    # 获取股票的历史数据
    data = pd.read_csv('stock_data.csv')
    data = data.set_index(stocks['股票代码'])
    return data

def get_stock_trend(data):
    # 获取股票的趋势指标
    ma5 = talib.MA(data['收盘价'], timeperiod=5)
    ma10 = talib.MA(data['收盘价'], timeperiod=10)
    ma20 = talib.MA(data['收盘价'], timeperiod=20)
    trend = pd.DataFrame({'ma5': ma5, 'ma10': ma10, 'ma20': ma20})
    trend.columns = ['ma5', 'ma10', 'ma20']
    return trend

def get_stock_volume(data):
    # 获取股票的成交量指标
    volume = data['成交量']
    volume = pd.DataFrame({'volume': volume})
    return volume

def get_stock_signal(data):
    # 获取股票的信号指标
    signal = talib.STOCH(data['收盘价'], fastperiod=14, slowperiod=3, rsi=70)
    signal = pd.DataFrame({'signal': signal})
    return signal

def get_stock_klrd(data):
    # 获取股票的K线形态指标
    klrd = talib.KELDRA(data['收盘价'], timeperiod=30)
    klrd = pd.DataFrame({'klrd': klrd})
    return klrd

def get_stock_score(stocks, data, trend, volume, signal, klrd):
    # 计算股票的综合评分
    score = 0
    score += trend['ma5'] * 0.2
    score += trend['ma10'] * 0.3
    score += trend['ma20'] * 0.5
    score += volume * 0.1
    score += signal['signal'] * 0.1
    score += klrd['klrd'] * 0.1
    return score

def get_top_stocks(stocks, data, n=5):
    # 获取前n个综合评分最高的股票
    top_stocks = stocks.sort_values(by='score', ascending=False)[:n]
    return top_stocks

def main():
    # 获取所有A股股票
    stocks = get_stocks()
    # 获取股票的历史数据
    data = get_stock_data(stocks)
    # 获取股票的趋势指标
    trend = get_stock_trend(data)
    # 获取股票的成交量指标
    volume = get_stock_volume(data)
    # 获取股票的信号指标
    signal = get_stock_signal(data)
    # 获取股票的K线形态指标
    klrd = get_stock_klrd(data)
    # 计算股票的综合评分
    scores = []
    for stock in stocks:
        score = get_stock_score(stock, data, trend, volume, signal, klrd)
        scores.append(score)
    # 获取前5个综合评分最高的股票
    top_stocks = get_top_stocks(stocks, scores, n=5)
    print(top_stocks)

if __name__

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

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

模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧