策略概述 这个策略是一个多资产趋势跟踪策略,它通过在多个ETF上应用技术指标(均线排列和“六脉神剑”模型)来生成交易信号。策略的核心是寻找处于强势趋势中的资产,并在趋势转弱时卖出。 策略详细原理 1. 资产选择(股票池) 策略选择的股票池包括14只ETF,覆盖了不同国家和资产类别: 美股:纳斯达克ETF、标普500ETF A股:沪深300ETF、创业板ETF、中证1000ETF、A500ETF、银行ETF、红利ETF 债券:30年债券ETF 黄金:黄金ETF 这种选择实现了跨市场(美国、中国)和跨资产(股票、债券、商品)的分散。不同资产之间的低相关性可以降低整体组合的波动性。 2. 数据准备 策略使用历史日线数据(默认数据类型为'D'),通过get_all_hist_data方法从Excel文件“自定义交易股票池.xlsx”中读取股票列表,并获取这些股票的历史数据。 3. 指标计算 均线系统 计算5条均线:3日、5日、10日、15日、20日。均线系统是趋势跟踪策略的核心,用于判断趋势的方向和强度。 趋势强度 趋势强度得分的计算规则是:均线呈多头排列(短周期均线在长周期均线之上)时得分高。具体: 3日均线 >= 5日均线:25分 5日均线 >= 10日均线:25分 10日均线 >= 15日均线:25分 15日均线 >= 20日均线:25分 最高100分,最低0分。得分越高,趋势越强劲。 六脉神剑模型 调用six_pulse_excalibur_hist模型,该模型可能是一个基于多种技术指标(如动量、波动率等)的综合信号模型。该模型返回一个信号值,数值越大代表买入信号越强。 其他指标 站上均线:收盘价大于等于5日均线 跌破均线:收盘价小于5日均线 涨跌幅:当日收盘价相对于前一日收盘价的百分比变化 4. 买卖信号 买入信号(同时满足): 趋势强度 >= 50:趋势中等偏强。 站上5日均线:短期趋势向上。 涨跌幅在0%到3%之间:避免追高(涨幅过大)和下跌时买入。 六脉神剑 >= 4:模型给出较强的买入信号。 卖出信号(满足任一): 趋势强度 <= 25:趋势转弱。 跌破5日均线:短期趋势破坏。 六脉神剑 <= 3:模型给出卖出信号。 5. 仓位管理和交易执行 持股限制 策略规定最大持股数量为10只。这是为了分散风险,避免过度集中,同时也不会过于分散导致管理困难。 交易金额 买入:每只股票固定买入20,000元。 卖出:每只股票固定卖出30,000元。 这里卖出金额大于买入金额,可能是为了在卖出时减少仓位,或者是因为卖出时股票市值已经增长。但注意,实际卖出数量是根据当时持仓来决定的,这里卖出价值30,000元,如果股票市值不足30,000元,则全部卖出。 交易流程 每天,策略首先根据信号生成买入候选列表和卖出候选列表。 卖出候选列表是当前持仓中满足卖出信号的股票。 买入候选列表是满足买入信号的股票,并且不在当前持仓中(避免重复买入)。 计算可买入数量:可用数量 = 持股限制 - 当前持股数 + 当日卖出数量。这样,卖出股票后释放的资金和仓位可以用于买入新的股票。 对买入候选列表按趋势强度和六脉神剑信号降序排序,选择前av_amount只股票。 先执行卖出,再执行买入。 6. 回测执行 回测从开始日期到结束日期,逐日进行: 获取当天的买卖信号 调整仓位:卖出信号触发的股票,买入信号触发且排名靠前的股票(不超过可用数量) 策略逻辑总结 这个策略试图捕捉多个ETF的中短期趋势。当某个ETF趋势强劲(均线多头排列)且模型给出买入信号时,策略会买入。当趋势转弱或模型给出卖出信号时,策略会卖出。通过分散到多个不相关的资产,策略希望在不同市场环境下都能捕捉到趋势,从而获得稳定的收益。 潜在风险和改进 风险 趋势反转风险:趋势跟踪策略在震荡市中容易亏损,因为信号会频繁切换,导致追涨杀跌。 相关性风险:虽然资产类别不同,但在极端情况下(如全球金融危机)相关性会升高,分散效果降低。 参数风险:均线周期、买卖阈值等参数可能过拟合历史数据,在未来表现可能变化。 改进方向 动态仓位管理:根据市场波动性或趋势强度调整仓位大小。 止损机制:引入止损规则,控制单笔亏损。 信号过滤:加入成交量或其他指标过滤假信号。 模型优化:对“六脉神剑”模型和趋势强度的阈值进行优化。 代码结构说明 __init__:初始化回测参数和交易器。 get_all_hist_data:获取所有股票的历史数据。 cacal_stock_score:计算趋势强度得分。 cacal_all_stock_indicator:计算所有股票的指标。 get_buy_sell_data:根据指标生成买卖信号。 run_backtrader:运行回测,逐日交易。 get_backtrader_result:生成回测报告。 这个策略是一个典型的多资产趋势跟踪系统,通过均线排列和自定义模型来捕捉趋势,并通过严格的仓位管理控制风险。 好的,让我对这个策略进行更加深入和全面的详细分析: 策略完整架构解析 1. 策略哲学与投资理念 这是一个基于全球资产轮动+趋势跟踪+动量效应的复合策略: 核心投资逻辑: 趋势为王:认为资产价格趋势具有持续性,顺势而为 动量效应:近期表现良好的资产会继续表现良好 分散投资:通过多资产配置降低单一市场风险 纪律执行:严格按规则操作,避免情绪干扰 2. 资产配置深度分析 资产类别细分: text 全球资产配置体系: ├── 美国权益类 (40%) │ ├── 纳斯达克ETF (513100, 159941, 159659) │ └── 标普500ETF (159612) ├── 中国权益类 (30%) │ ├── 宽基指数 (510300, 159915, 159680) │ ├── 行业主题 (159887-银行, 159351-A500) │ └── 策略指数 (512890-红利) ├── 固收类 (15%) │ └── 长期国债 (511130, 511090-30年债券) └── 商品类 (15%) └── 黄金 (159937, 159934) 配置逻辑: 地域分散:中美市场互补,经济周期不同步 风格互补:成长(纳斯达克) vs 价值(红利) vs 防御(债券黄金) 风险对冲:股票与债券、黄金的负相关性 3. 技术指标体系详解 3.1 均线系统 - 趋势识别核心 均线周期设计原理: python # 短期均线组 - 捕捉近期动量 3日均线:超短期趋势,敏感度高 5日均线:一周交易趋势,市场情绪指标 # 中期均线组 - 趋势确认 10日均线:两周趋势,重要支撑阻力 15日均线:三周趋势,中期方向 # 长期均线组 - 大趋势判断 20日均线:一月趋势,主要趋势线 均线排列的物理意义: 完美多头(100分):3日>5日>10日>15日>20日 代表:短期资金流入 > 中期资金 > 长期资金 市场情绪:极度乐观,资金持续进场 混乱排列(25-75分):均线交错 代表:资金分歧,方向不明 市场状态:震荡整理 完美空头(0分):3日<5日<10日<15日<20日 代表:资金持续流出 市场情绪:悲观 3.2 趋势强度评分算法深度解析 评分权重分配: text 短期趋势(50%): 3日 vs 5日:25分 - 最近期动量 5日 vs 10日:25分 - 短期趋势确认 中期趋势(50%): 10日 vs 15日:25分 - 中期趋势强度 15日 vs 20日:25分 - 长期趋势确认 评分等级的市场含义: 75-100分:强势上涨趋势,适合重仓参与 50-75分:中等上涨趋势,可适度参与 25-50分:弱势震荡,观望或轻仓 0-25分:下跌趋势,回避或做空 3.3 "六脉神剑"模型推测分析 基于名称和上下文,该模型可能包含以下技术指标: text 六脉神剑可能包含: 1. 价格动量指标 (如RSI, MACD) 2. 成交量确认 (量价配合) 3. 波动率指标 (ATR, 布林带) 4. 趋势确认指标 (DMI, 抛物线SAR) 5. 超买超卖指标 (KDJ, CCI) 6. 形态识别 (K线组合, 突破形态) 信号强度4分以上为买入,说明需要多个指标同时发出信号。 4. 买卖条件深度逻辑 4.1 买入条件组合逻辑 四重过滤机制: text 第一重:趋势强度 >= 50分 └── 确保处于上升趋势中 第二重:站上5日均线 == True └── 短期趋势向上,避免抄底下跌趋势 第三重:涨跌幅 0% <= x <= 3% └── 避免追高:涨幅>3%可能短期过热 └── 避免下跌:排除继续下跌的标的 第四重:六脉神剑 >= 4 └── 多因子模型确认,提高胜率 买入时机的精妙设计: 不买大跌股:避免接飞刀 不买暴涨股:避免追高风险 只买温和上涨股:风险收益比最优 4.2 卖出条件风控逻辑 三重风控机制: text 主动止盈: 趋势强度 <= 25分 - 趋势明显转弱 被动止损: 跌破5日均线 - 短期趋势破坏 模型预警: 六脉神剑 <= 3 - 多因子发出卖出信号 卖出逻辑的特点: 不止损价格,止损趋势:趋势破坏就卖出 多重确认:任一条件触发即卖出,控制回撤 及时性:在趋势初期转弱时即离场 5. 仓位管理系统的精妙设计 5.1 动态仓位调整算法 python 可用买入数量 = 持股限制(10) - 当前持股数 + 当日卖出数量 这个公式的精妙之处: 硬性风控:最多10只,避免过度分散 动态调整:卖出后立即释放仓位 机会捕捉:有卖出就有新买入机会 5.2 资金管理策略 text 买入:每只固定20,000元 卖出:每只固定30,000元 资金管理逻辑: 等金额分配:每只标的风险暴露相同 卖出金额 > 买入金额:可能考虑交易成本或部分获利了结 固定金额:简化管理,避免情绪化调整 6. 交易执行流程的完整逻辑 6.1 每日执行流程 text 1. 数据准备阶段 ↓ 2. 信号生成阶段 ↓ 3. 持仓分析阶段 ↓ 4. 买卖决策阶段 ↓ 5. 订单执行阶段 (先卖后买) ↓ 6. 结算复盘阶段 6.2 排序优选算法 python buy_df = buy_df.sort_values(by=['趋势强度','六脉神剑'], ascending=False) 优选逻辑: 第一优先级:趋势强度 - 选择趋势最强的 第二优先级:六脉神剑 - 模型信号最强的 排除已持有:避免重复建仓 7. 策略的心理学基础 7.1 克服人性弱点 恐惧:规则化买入,避免不敢买 贪婪:规则化卖出,避免舍不得卖 希望:趋势破坏立即卖出,不抱幻想 侥幸:严格止损,不扛单 7.2 行为金融学应用 动量效应:追涨强势品种 反转效应回避:不抄底下跌品种 处置效应克服:及时卖出亏损标的 8. 策略的风险收益特征 8.1 预期收益来源 趋势收益:抓住中期趋势行情 轮动收益:在不同资产间切换 动量收益:强势品种的持续性 8.2 风险控制机制 分散风险:多资产配置 系统风险:趋势跟踪,不预测市场 个体风险:单标的最大2万元暴露 流动性风险:主要交易ETF,流动性好 9. 策略适用环境 9.1 优势市场环境 趋势市:单边上涨或下跌 板块轮动市:不同资产轮番表现 波动适中的市场:避免极端震荡 9.2 劣势市场环境 窄幅震荡市:趋势策略容易磨损 暴涨暴跌市:买卖条件可能错过机会 政策干预市:技术分析失效 10. 策略的潜在改进方向 10.1 参数优化空间 均线周期组合优化 买卖阈值动态调整 仓位大小的弹性管理 10.2 功能增强 加入止损机制 波动率调整仓位 市场状态识别 这是一个相当成熟和完整的趋势跟踪策略体系,结合了技术分析、资产配置、风险管理和行为金融学的多重原理,体现了量化投资的系统化思维。