# 指数定投回测 **Repository Path**: spacecube/InvestPlanTest ## Basic Information - **Project Name**: 指数定投回测 - **Description**: 本程序是一款支持多资产配置、差异化盈亏调整的智能定投模拟工具,可实现定投金额随资产盈亏状态动态调整,同时集成调仓、止盈、多格式数据读取及结果导出功能。适用于投资者模拟不同定投策略,验证策略在历史数据或模拟数据下的收益表现,为实际定投决策提供参考。 核心优势:支持亏损/盈利场景下独立调整定投比例,兼容多种日期格式的资产数据,可自定义资产组合及配置参数,结果可视化导出至Excel便于分析。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-17 - **Last Updated**: 2026-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 差异化智能定投程序说明文档 # 一、程序概述 本程序是一款支持多资产配置、差异化盈亏调整的智能定投模拟工具,可实现定投金额随资产盈亏状态动态调整,同时集成调仓、止盈、多格式数据读取及结果导出功能。适用于投资者模拟不同定投策略,验证策略在历史数据或模拟数据下的收益表现,为实际定投决策提供参考。 核心优势:支持亏损/盈利场景下独立调整定投比例,兼容多种日期格式的资产数据,可自定义资产组合及配置参数,结果可视化导出至Excel便于分析。 # 二、主要功能 ## 2.1 差异化智能定投 突破传统固定金额定投模式,根据资产累计盈亏比例动态调整每次定投金额,且亏损与盈利场景采用独立调整比例,适配不同风险偏好: - 亏损场景:累计亏损每达到设定台阶(默认10%),按自定义比例增投,提升低位持仓成本优势; - 盈利场景:累计盈利每达到设定台阶(默认10%),按自定义比例减投,锁定部分收益,降低高位风险; - 金额限制:设置最小定投比例(默认基础金额的50%),避免盈利时过度减投。 ## 2.2 多资产组合配置 支持配置多只资产组成定投组合,默认包含沪深300、中证1000、中证2000、国债指数,新增深证红利(399317)选项,可自由增减资产并调整各资产目标配置比例,实现分散投资。 ## 2.3 自动调仓功能 当组合中各资产实际占比与目标占比的偏差超过设定阈值(默认5%)时,程序自动触发调仓操作,卖出超配资产、买入低配资产,使组合回归目标配置比例,控制组合风险。 ## 2.4 止盈择时功能 设置止盈收益率阈值(默认20%),当组合累计收益率达到或超过该阈值且存在正收益时,自动取出全部盈利部分转为现金,锁定收益,避免后续市场回调侵蚀利润。 ## 2.5 多格式数据读取 支持读取Excel格式的资产价格数据,自动识别两种日期格式,无需手动转换原始文件: - 横杠分隔格式:YYYY-MM-DD(如2003-01-01),适用于深证红利(399317)等资产数据; - 8位数字格式:YYYYMMDD(如20030101),兼容传统资产数据文件。 若Excel文件读取失败,程序自动切换为模拟数据运行,保证模拟流程完整性。 ## 2.6 结果导出与可视化 模拟结束后,将完整定投数据导出至Excel文件,包含三个工作表: - 定投明细:记录每次定投的日期、金额、盈亏、调仓/止盈状态等核心数据; - 汇总信息:展示投资周期、总收益、总收益率、调仓/止盈次数等关键指标; - 最终持仓:呈现各资产最终持仓数量、市值及最新价格。 # 三、可调整参数 所有可调整参数集中在主程序(if __name__ == "__main__":)的配置区域,用户可根据需求自定义修改,参数说明如下: ## 3.1 资产组合参数 |参数名称|参数含义|默认配置|调整说明| |---|---|---|---| |asset_config|定投组合资产清单,键为资产代码,值为资产名称|{"000300":"沪深300","000852":"中证1000","932000":"中证2000","000012":"国债指数","399317":"深证红利"}|新增资产:添加键值对(代码:名称);删除资产:移除对应键值对,需同步调整target_ratios| |target_ratios|各资产目标配置比例,总和需为1.0|{"000300":0.30,"000852":0.20,"932000":0.15,"000012":0.20,"399317":0.15}|调整比例时需确保所有资产比例之和为100%(如0.30+0.20+0.15+0.20+0.15=1.0)| ## 3.2 定投基础参数 |参数名称|参数含义|默认值|调整范围/说明| |---|---|---|---| |base_invest_amount|每次定投的基础金额(元)|5000|根据自身资金实力调整,建议为每月可支配资金的合理比例| |invest_interval_days|定投间隔天数|30|常见设置:30(月定投)、90(季定投)、180(半年定投)| |start_date|定投起始日期|2020-01-01|格式为datetime.date(year, month, day),需早于end_date| |end_date|定投结束日期|2024-12-31|建议结合资产价格数据的时间范围设置,避免无数据可用| ## 3.3 智能定投调整参数 |参数名称|参数含义|默认值|调整说明| |---|---|---|---| |smart_invest_step|盈亏调整台阶(%),即每达到该比例触发一次金额调整|10.0|台阶越小,调整越频繁;台阶越大,调整越平缓,建议5%-20%| |loss_adjust_ratio|亏损场景每台阶调整比例(%),为正数(增投)|15.0|比例越高,亏损时增投越激进(如15%表示每亏10%增投15%)| |profit_adjust_ratio|盈利场景每台阶调整比例(%),程序自动转为负数(减投)|5.0|比例越高,盈利时减投越保守(如5%表示每赚10%减投5%)| |min_invest_ratio|最小定投金额比例(相对于基础金额)|0.5|避免盈利时过度减投,建议0.3-0.7(即基础金额的30%-70%)| ## 3.4 风险控制参数 |参数名称|参数含义|默认值|调整说明| |---|---|---|---| |rebalance_threshold|调仓阈值,即资产实际占比与目标占比的偏差阈值|0.05|阈值越小,调仓越频繁;阈值越大,调仓成本越低,建议3%-10%| |take_profit_threshold|止盈阈值(%),累计收益率达到该值触发止盈|20.0|保守型15%-20%,进取型25%-30%,避免频繁止盈或过度贪婪| ## 3.5 文件路径参数 |参数名称|参数含义|默认值|调整说明| |---|---|---|---| |base_path|资产价格Excel文件存放路径|r"C:\Users\a\Downloads"|需改为自身文件实际存放路径,文件夹需包含各资产代码命名的Excel文件(如399317perf.xlsx)| |output_file|模拟结果Excel导出路径及文件名|r"C:\Users\a\Downloads\定投组合收益结果_新增399317.xlsx"|可修改文件名或导出路径,确保路径存在且有写入权限| # 四、使用说明 ## 4.1 数据准备(可选) 1. 按资产代码命名Excel文件(如399317perf.xlsx),存放至base_path设置的文件夹; 2. Excel文件第一列为日期(支持YYYY-MM-DD或YYYYMMDD格式),第十列为资产价格(数值型,大于0); 3. 若无需真实数据,程序自动生成模拟数据,可直接运行。 ## 4.2 参数调整 在主程序配置区域修改上述参数,确保target_ratios比例总和为1.0,日期范围合理,文件路径正确。 ## 4.3 程序运行 运行Python脚本,程序将依次执行:读取资产价格数据→初始化定投组合→按间隔天数执行定投、调仓、止盈→导出结果至Excel→控制台打印汇总信息。 ## 4.4 结果分析 打开导出的Excel文件,通过“定投明细”查看每次操作细节,通过“汇总信息”快速掌握策略整体收益、调仓/止盈次数等核心指标,结合自身风险偏好优化参数。 # 五、注意事项 - 资产价格Excel文件需确保日期格式正确,价格无负数或空值,否则程序会跳过异常数据并提示; - 调整target_ratios时,需与asset_config中的资产一一对应,避免遗漏或多余; - 模拟结果仅为历史数据或模拟数据下的表现,不代表未来实际收益,实际定投需结合市场情况动态调整; - 若程序运行报错,优先检查文件路径、日期格式、参数合理性(如比例总和、日期顺序)。 > (注:文档部分内容可能由 AI 生成)