策略(示例用沪深300和国债指数模拟)。
simple_grid.py:一个基础的、固定价格间距的网格交易策略示例。
macd_cross.py:MACD金叉死叉策略(示例,同之前分享)。
4. backtest_engine.py:简化的回测引擎核心文件,处理数据加载、信号生成、模拟交易、计算绩效指标等。
5. utils.py:一些工具函数,如计算最大回撤、夏普比率等。
6. requirements.txt:所需的Python库列表。
贝悟得: 我重点解释一下 simple_grid.py 这个网格策略示例,因为它与我的体系关联最直接。这个示例策略非常简单:
标的:沪深300ETF(以指数替代)。
逻辑:设定一个基准价(如初始价格),然后向上、向下各设置N个网格,间距固定(如5%)。当价格触及网格线时,执行买入(向下)或卖出(向上)。每次买卖固定数量(或金额)。
参数可调:基准价、网格间距、网格层数、每格交易量、初始现金比例等。
回测输出:净值曲线、年化收益、最大回撤、夏普比率、交易次数、胜率等,并与买入持有对比。
贝悟得: 你可以用这个示例,回测2019-2021年(包含上涨、震荡、结构性行情)的网格表现。你会发现:
在2019-2020年的趋势上涨市中,网格策略大幅跑输买入持有,因为它会不断卖出,过早降低仓位。
在2021年的震荡/结构性行情中,网格策略可能小幅跑赢或持平买入持有,因为它能捕捉波动收益。
长期(三年)来看,在这个示例参数下,网格策略的年化收益很可能低于买入持有,但最大回撤也显著更小,夏普比率(风险调整后收益)可能更高。
网格策略的表现极度依赖于标的的波动率和网格参数。在低波动标的上,它可能长期不触发;在高波动标的上,它可能频繁交易,摩擦成本高。
贝悟得: 这就是为什么在我的体系中,网格主要用于“安全仓”(成本已低,目标是持续降低成本、产生现金流、平滑波动),而非作为主要的收益来源。同时,我通过“三维仓位”中的“交易仓”和“现金仓”来弥补网格在趋势市中的不足,并通过“再平衡”来实现另一种形式的“高卖低买”。回测帮助我理解了每个工具的边界,从而在体系中进行恰当的定位和组合。
文件上传完毕。群里再次出现短暂的寂静,这次是信息量过大带来的消化期。
明觉: 善!大善!贝兄此举,真乃“开源”之典范,非仅代码数据之公开,乃是“心法”之无私布施。昔日释迦拈花,迦叶微笑,以心传心。今贝兄开源代码,以“数”传“道”,令有心者得以自行验证,于实践中体悟投资之真谛。此非“授人以鱼”,实乃“授人以渔”,且将“渔具”与“渔场”一并奉上。吾等感激不尽。
老金: 虽然我看不懂代码,但贝兄这份诚意和坦荡,我感受到了。降龙兄,你能看懂,回头能不能在群里大概讲讲,比如网格回测出来的具体数据?我也想知道,我这个5000块小网格,长期坚持下去,大概能有个什么预期。
降龙十八掌: 收到!太感谢了贝兄!我这就下载研究。你这个框架比我昨天自己瞎搞的完整多了,还有再平衡、网格的示例。老金,没问题,等我跑出结果,把关键数据截图发群里。贝兄,你这个网格示例的参数,和你实盘用的差别大吗?
锅王: ……你还真全给了。行,我服。虽然我可能不会去跑代码,但你这态度,我认。至
-->>(第2/5页)(本章未完,请点击下一页继续阅读)