尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Cassandre Trading Bot回测教程:如何用历史数据3步验证你的策略收益

Cassandre Trading Bot回测教程:如何用历史数据3步验证你的策略收益 Cassandre Trading Bot回测教程如何用历史数据3步验证你的策略收益【免费下载链接】cassandre-trading-botCreate your Java crypto trading bot in minutes. Our Spring boot starter takes care of exchange connections, accounts, orders, trades, and positions so you can focus on building your strategies.项目地址: https://gitcode.com/gh_mirrors/ca/cassandre-trading-bot写好的交易策略真的能赚钱吗在投入真金白银之前用历史数据回测是每个量化交易者的必修课。Cassandre Trading Bot一个基于 Spring Boot 的 Java 加密货币交易机器人框架内置了强大的回测与模拟交易能力无需连接真实交易所就能用历史行情数据重放你的策略快速验证策略收益是否达到预期。本教程将带你用 3 个步骤完成一次完整的 Cassandre Trading Bot 回测从准备历史数据到运行 JUnit 测试全程无需真实下单。第1步准备回测所需的历史数据与虚拟账户Cassandre Trading Bot 的回测依赖两个关键资源历史 K 线数据文件和虚拟账户余额文件。它们都放在src/test/resources目录下回测启动时会被自动扫描导入。1.1 生成历史 K 线数据candles CSVCassandre 会读取所有以candles-for-backtesting开头、以.csv结尾的文件。文件格式如下每行代表一根 K 线TIMESTAMP,OPEN,CLOSE,HIGH,LOW,VOLUME,QUOTE_VOLUME,CURRENCY_PAIR 1508371200,10000,10000,10000,10000,10000,10000,BTC-USDT 1508457600,20000,20000,20000,20000,20000,20000,BTC-USDT获取历史数据最便捷的方式是调用交易所的公开行情接口。以 Kucoin 为例一条命令即可拉取近 3 个月的 BTC/USDT 15 分钟 K 线并生成candles-for-backtesting-btc-usdt.csv文件时间戳按秒计CURRENCY_PAIR使用BTC-USDT格式。你也可以从任何支持导出的交易所或数据平台手工整理成上述格式。1.2 配置虚拟账户余额user CSV/TSV回测模式下 Cassandre 会自动导入所有以user-开头、以.tsv或.csv结尾的余额文件。每个账户文件内容为币种,数量的列表例如user-trade.csvUSDT,200000 ETH,100启动后你会看到日志Adding account trade并逐行显示虚拟余额。Cassandre 会在模拟撮合时校验你是否有足够资产防止凭空下单。小提示想深入了解数据导入机制可以阅读导入历史数据官方指南或查看数据导入实现 TickerFluxMock.java。第2步引入回测测试依赖并编写测试2.1 添加 starter-test 依赖回测能力封装在cassandre-trading-bot-spring-boot-starter-test中在pom.xml里加入依赖scope 为 test即可。这是官方为回测与单元测试专门提供的 starter也是整个回测流程的核心入口。2.2 用Import(TickerFluxMock.class)开启数据重放编写一个 JUnit 测试类通过Import(TickerFluxMock.class)注解让 Cassandre 在测试期间不再从交易所接收实时 ticker而是改为逐条重放 CSV 文件中的历史 K 线。参考官方示例 OnlyTickersStrategyTest.javaSpringBootTest(properties { ONLY_TICKERS_STRATEGY_ENABLEDtrue, ONLY_ORDERS_STRATEGY_ENABLEDfalse, ONLY_POSITIONS_STRATEGY_ENABLEDfalse }) Import(TickerFluxMock.class) public class OnlyTickersStrategyTest extends BaseTest { // ... 测试用例 }测试执行时你的策略会像在真实环境一样收到 ticker 推送、触发买卖信号、创建订单只是所有成交都发生在虚拟交易所里。回测引擎会按文件顺序逐条投喂数据并自动等待订单、成交同步完成后再进入下一轮行情保证模拟真实、节奏可控核心逻辑见 MarketServiceBacktestingImplementation.java。第3步运行测试并分析策略收益配置完成、测试写好之后直接运行 JUnit 测试即可观察执行日志虚拟账户余额随订单成交增减、仓位开平仓过程清晰可见日志会显示每次下单、成交的明细验证策略行为在测试中断言策略收到的 ticker 数量、开仓次数、平仓价格等确保策略逻辑与预期一致计算收益结果回测结束后对比虚拟账户的期初与期末余额就是该策略在历史行情下的收益表现。更进一步的玩法是配合Dry Mode模拟模式在application.properties中设置cassandre.trading.bot.exchange.modes.drytrue即可在没有历史数据的情况下模拟虚拟交易所验证策略在真实时间轴上的运行表现。两种模式的区别可参考官方文档 dry-mode-and-backtesting.md。回测常见问题与避坑指南问题解决方法文件没有被导入确认文件以candles-for-backtesting开头、.csv结尾并放在src/test/resources下虚拟账户余额为 0检查user-开头的 tsv/csv 文件格式币种需与交易对一致交易对无法匹配确保 CSV 中CURRENCY_PAIR使用BTC-USDT格式与策略请求的交易对一致想导入更多历史数据参考导入历史数据指南中的initialize()与getImportedTickers()用法总结为什么用 Cassandre Trading Bot 回测⚡零成本试错虚拟账户 模拟撮合不花一分钱验证策略真实数据重放逐条回放历史 K 线完整触发 ticker、订单、成交事件流与单元测试无缝集成基于 JUnit 与 Spring Boot Test回测即测试天然支持 CI策略收益一目了然通过虚拟账户余额变化快速判断策略是否值得实盘。现在就去准备你的历史数据用这 3 步给策略做一次体检吧想深入学习还可以研究 spring-boot-starter-test 模块下的官方测试示例以及回测与模拟模式官方文档中更多高级用法。【免费下载链接】cassandre-trading-botCreate your Java crypto trading bot in minutes. Our Spring boot starter takes care of exchange connections, accounts, orders, trades, and positions so you can focus on building your strategies.项目地址: https://gitcode.com/gh_mirrors/ca/cassandre-trading-bot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表