(同花顺量化)20日均线大于120日均线_、前日实际换手率_3~28、今日增仓占比_5%

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

问财量化选股策略逻辑

今日增仓占比>5%,前日实际换手率>3~28,20日均线大于120日均线

选股逻辑分析

这个策略的逻辑是基于三个指标来筛选股票。首先,要求今日的增仓比例大于5%,这意味着该股票在最近一段时间内有较多的资金流入,可能表明该股票具有上涨潜力。其次,要求前日的实际换手率在3%到28%之间,这意味着该股票的交易活跃度适中,既不是过于冷门也不是过于热门。最后,要求20日均线大于120日均线,这意味着该股票的短期趋势比长期趋势更加乐观。

有何风险?

这个策略的风险主要在于它过于依赖于短期的市场表现。如果市场短期内出现大幅波动,那么该策略可能会选择一些表现不佳的股票。此外,如果该策略选择的股票不符合投资者的预期,那么投资者可能会遭受损失。

如何优化?

为了优化这个策略,可以考虑加入更多的指标来筛选股票,例如市盈率、市净率等。此外,可以考虑使用更长期的均线来衡量股票的趋势,例如50日均线、100日均线等。最后,可以考虑加入止损机制,以限制投资者的损失。

最终的选股逻辑

以下是最终的选股逻辑:

def select_stock():
    # 获取所有A股股票的代码和名称
    stocks = get_stocks()

    # 初始化股票池
    stock_pool = []

    # 遍历每一只股票
    for stock in stocks:
        # 获取该股票的今日增仓比例和前日实际换手率
        today_percent_change = get_stock_percent_change(stock)
        yesterday_percent_change = get_stock_percent_change(stock, yesterday=True)
        today_volume = get_stock_volume(stock)
        yesterday_volume = get_stock_volume(stock, yesterday=True)

        # 判断是否符合策略要求
        if today_percent_change > 5 and yesterday_percent_change > 3 and today_volume > yesterday_volume and get_stock_moving_average(stock, 20) > get_stock_moving_average(stock, 120):
            # 将符合条件的股票加入股票池
            stock_pool.append(stock)

    # 返回股票池
    return stock_pool

python代码参考

import tushare as ts

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

# 获取所有A股股票的代码和名称
stocks = pro.stock_basic()

# 获取股票的今日增仓比例和前日实际换手率
def get_stock_percent_change(stock):
    # 获取该股票的今日收盘价和昨日收盘价
    today_close = pro.get_k_data(stock, 'close', '1d')
    yesterday_close = pro.get_k_data(stock, 'close', '2d')

    # 计算今日增仓比例和前日实际换手率
    today_percent_change = (today_close[-1] - today_close[0]) / today_close[0]
    yesterday_percent_change = (yesterday_close[-1] - yesterday_close[0]) / yesterday_close[0]

    # 返回结果
    return today_percent_change, yesterday_percent_change

# 获取股票的成交量
def get_stock_volume(stock):
    # 获取该股票的成交量数据
    volume_data = pro.get_k_data(stock, 'volume', '1d')

    # 返回结果
    return volume_data[-1]

# 获取股票的移动平均线
def get_stock_moving_average(stock, n):
    # 获取该股票的n日移动平均线数据
    moving_average_data = pro.get_k_data(stock, 'close', 'n', n)

    # 返回结果
    return moving_average_data[-1]

# 获取所有A股股票的代码和名称
def get_stocks():
    # 初始化股票池
    stocks = []

    # 遍历每一只股票
    for stock in stocks:
        # 获取该股票的代码和名称
        code, name = stock

        # 获取该股票的行情数据
        df = pro.realtime_quotes(code)

        # 如果该股票有行情数据,将其加入股票池
        if df is not None:
            stocks.append((code, name))

    # 返回股票池
    return stocks

如何进行量化策略实盘?

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

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

模板如何使用?

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

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

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论