市值策略

2026-05-13

简单的市值策略。下方回测的策略是:每周从中小综指中选出市值最小的10只股票(排除ST, 科创,次新股),等权买入。第二周仍然挑选市值最小10只,如果持仓中个股仍在最小10只,则不动。若不在最小10只中,则进行调仓,卖出并买入最小市值个股。
可以自行选择参数测试

此策略只做学习使用,不作为投资参考,不作为任何买卖建议!
关联策略: 市值策略 5 次克隆

回测分析

-
年化收益率
-
最大回撤
-
夏普比率
-
胜率
展示区间 -
代码已隐藏
克隆策略后可查看完整代码
# 导入函数库
from nmapi import *
import pandas as pd
import numpy as np

def init(context):
    # 手续费
    set_order_cost(
        OrderCost(
            close_tax=0.001,
            open_commission=0.0003,
            close_commission=0.0003,
            min_commission=5
        ),
        type='stock'
    )

    # 参数
    g.stock_num = 
    g.min_list_days = 375          # 次新过滤天数

    # 每周一开盘后调仓
    run_schedule(weekly_adjustment, "weekly", , time='09:30')


def weekly_adjustment(context):
    # 1. 获取股票池,可自行改成全市场或别的指数
    select_security = ''
    if select_security == '全市场':
        all_df = get_all_securities(types=['stock'], date=context.current_dt)
        stock_list = all_df.index
    else:
        security_map = {
            '中小综指': '399101.SZ',
            '沪深300': '000300.SH',
            '中证1000': '000852.SH',
        }
        MKT_index = security_map.get(select_security, '')
        stock_list = get_index_stocks(MKT_index)

    # 2. 基础过滤
    stock_list = filter_new_stock(context, stock_list, g.min_list_days)
    stock_list = filter_kcbj_cyb_stock(stock_list)
    stock_list = filter_st_stock(stock_list)
    stock_list = filter_paused_stock(stock_list)

    if len(stock_list) == 0:
        log.info('过滤后股票池为空')
        return

AI 策略分析

点击上方的“AI 分析策略”按钮,利用大模型深度解析该策略的逻辑、风险与改进方向。

请登录后参与评论讨论

关于作者
量化课堂
注册于 2025-10-08 06:42:24