(同花顺量化)60开头的股票_、昨天换手率>8%、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 昨天换手率>8%
  • 60开头的股票

选股逻辑分析

  • 这个策略基于技术分析,寻找均线排列较为密集的股票,表明市场参与者对股票的走势较为一致,同时也关注股票的换手率,表明市场活跃度较高。
  • 选择60开头的股票,是因为60日均线是中期趋势的指标,可以更好地反映股票的中长期走势。

有何风险?

  • 这个策略的局限性在于它只考虑了股票的短期走势和市场活跃度,而忽略了其他因素,如公司的财务状况、行业前景等。
  • 如果市场出现大幅波动,这个策略可能会失去效果。

如何优化?

  • 可以考虑加入其他指标,如市盈率、市净率等,以更好地评估股票的价值。
  • 可以考虑加入股票的市值和行业特征等,以更好地筛选出有潜力的股票。

最终的选股逻辑

  • 选取至少5根均线重合的股票
  • 选取昨天换手率>8%的股票
  • 选取60开头的股票
  • 加入市盈率、市净率等指标,以评估股票的价值
  • 加入股票的市值和行业特征等,以筛选出有潜力的股票

python代码参考

import talib
import pandas as pd

def get_top_ma_crossovers(data, n):
    # 获取股票的收盘价和时间序列
    close_prices = data['close']
    timestamps = data['timestamp']
    
    # 计算不同时间周期的移动平均线
    ma1 = talib.MA(close_prices, n=1)
    ma2 = talib.MA(close_prices, n=2)
    ma3 = talib.MA(close_prices, n=3)
    ma4 = talib.MA(close_prices, n=4)
    ma5 = talib.MA(close_prices, n=5)
    
    # 获取所有交叉点
    crossover_points = []
    for i in range(n):
        if ma1[i] > ma2[i] and ma2[i] > ma3[i] and ma3[i] > ma4[i] and ma4[i] > ma5[i]:
            crossover_points.append(timestamps[i])
    
    # 返回交叉点所在的时间序列
    return pd.Series(crossover_points, name='crossover_points')

def get_top_volume_trades(data, n):
    # 获取股票的成交量和时间序列
    volume = data['volume']
    timestamps = data['timestamp']
    
    # 计算不同时间周期的成交量排名
    volume_rank = volume.rank(pct=True, ascending=False)
    volume_rank = volume_rank.astype(int)
    
    # 获取所有排名前n的交易日
    top_volume_trades = []
    for i in range(n):
        top_volume_trades.append(timestamps[volume_rank[i]])
    
    # 返回交易日所在的时间序列
    return pd.Series(top_volume_trades, name='top_volume_trades')

def get_top_ma_crossovers_and_volume_trades(data, n):
    # 获取股票的收盘价和时间序列
    close_prices = data['close']
    timestamps = data['timestamp']
    
    # 计算不同时间周期的移动平均线
    ma1 = talib.MA(close_prices, n=1)
    ma2 = talib.MA(close_prices, n=2)
    ma3 = talib.MA(close_prices, n=3)
    ma4 = talib.MA(close_prices, n=4)
    ma5 = talib.MA(close_prices, n=5)
    
    # 获取所有交叉点
    crossover_points = []
    for i in range(n):
        if ma1[i] > ma2[i] and ma2[i] > ma3[i] and ma3[i] > ma4[i] and ma4[i] > ma5[i]:
            crossover_points.append(timestamps[i])
    
    # 获取所有排名前n的交易日
    top_volume_trades = []
    for i in range(n):
        top_volume_trades.append(timestamps[volume_rank[i]])
    
    # 返回交叉点和交易日所在的时间序列
    return pd.DataFrame({'crossover_points': crossover_points, 'top_volume_trades': top_volume_trades})

# 示例数据
data = pd.read_csv('data.csv')
data = data[['close', 'volume']]
data = data.set_index('timestamp')

# 选取前5日和后5日的移动平均线
n1 = 5
n2 = 5
ma1 = get_top_ma_crosso

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

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

模板如何使用?

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


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

评论