☰
从交易记录到可回测策略:anti-gambling-trader-tw 策略骨架生成原理(backtrader / vectorbt 通用)
2026/10/17 19:27:18 网站建设 项目流程

【免费下载链接】anti-gambling-trader-tw

免費開源的投資反詐、交易統計與自動化交易程式工具:預設 PaperBroker,提供 14 種券商/交易所選項;交易紀錄分析在本機執行。

项目地址:https://gitcode.com/gh_mirrors/an/anti-gambling-trader-tw
点击查看免费下载

anti-gambling-trader-tw(反詐投資王)是一款免费开源的投资反诈、交易统计与可回测策略生成工具:把你的交易记录(台股 / 美股 / 加密货币)丢进本地,它会统计判定你的交易更像「可重复的优势」还是「运气 + 赌博」,并顺手生成一份可回测的策略骨架(backtrader / vectorbt / generic 三种框架通用)。全程在你自己电脑上执行,数据不出本地。

它的立场很明确:把赌博行为自动化,只会让人赔得更快。所以它生成的不是「能下单的程序」,而是「先过统计与回测验证、再谈自动化的策略起点」。

为什么是「骨架」而不是完整策略?

大多数人的交易记录只说明了「你做了什么」,没说明「你按什么规则做的」。这个工具的解决思路是:

  1. 从交易记录反推你的风格(持仓多久、做多还是做空、集中在哪些标的);
  2. 给出统计裁决(是优势、疑似运气还是赌博);
  3. 生成带安全机制的策略骨架:进/出场条件留空,逼你把「脑中的规则」写成可量化、可回测的条件。

写不出明确的规则,本身就是警讯:说明交易可能没有可重复的逻辑。这一点直接写在骨架源码的注释里(见 core/strategy/skeleton.py)。

生成管线:从 CSV 到 .py 的 4 个步骤

整条管线入口在 core/analyzer.py 的analyze_log(),串起四段:

第 1 步:载入交易记录(本地)

支持 CSV / JSON / Excel,自动估算手续费、识别市场。缺时间、缺方向的数据会被「诚实标记」为不可用,而不是用猜值硬算(fail closed 原则,详见 docs/user-guide.md)。

第 2 步:统计裁决(Verdict)

judge()把绩效指标 + 统计检验(t 检验 + 置中 bootstrap)翻译成五档结论,定义在 core/verdict/judge.py:

裁决等级含义对骨架的影响
🟥gambling这是赌博骨架默认拒绝启用
🟧insufficient样本不足骨架默认拒绝启用
🟨luck_suspected账面赚钱但像运气骨架默认拒绝启用
🟨fragile_edge微弱但脆弱谨慎,需更多验证
🟩statistical_edge具统计显著优势骨架解除默认禁用

设计原则是「宁可错杀,不可放过」——把优势误判成赌博,代价是时间;把赌博说成优势,代价可能是毕生积蓄。

第 3 步:反推交易风格(StrategyProfile)

profile_strategy()(core/strategy/profiler.py)从客观特征反推风格,核心是平均持仓天数 + 当日冲销比例两个指标:

风格码判定条件骨架给出的进场提示
scalp_intraday当日冲销比例超阈值突破 N 根高低点、短均线上穿长均线
swing_short平均持仓 < 5 天突破、均线交叉、RSI 超卖回升
swing_medium< 30 天站上季线且量增、支撑不破后反弹
position< 180 天偏长期,定期定额 + 分散通常胜过择时
timing_incomplete进出场时间缺失拒绝猜测,要求先补齐时间数据

同时还会统计标的集中度、每个 tag(进场理由)的胜率等,作为警讯和提示写进骨架。

第 4 步:渲染骨架(generate_skeleton)

generate_skeleton(profile, verdict, framework, stage)(core/strategy/skeleton.py)把「裁决横幅 + 风格 + 方向 + 持仓天数 + 进场提示」填进对应框架模板。

三种框架模板有什么差别?

框架模板特点适合谁
backtrader(默认)bt.Strategy子类 +next()逐 K 线决策,附 Sharpe / DrawDown 分析器与run_backtest()事件驱动回测、想精细控制进出场
vectorbtentries/exits布尔数组 +vbt.Portfolio.from_signals()向量化回测快速扫描参数、批量回测
generic纯函数should_enter()/should_exit(),不绑定框架想接入任何自研回测引擎

三个模板的共同点:都只生成回测 / 纸上模拟代码,不含任何真实下单功能。

核心安全设计:安全闸门(safety gate)

这是整套机制里最值得新手看懂的一段(示例见 core/strategy/skeleton.py):

  • 骨架顶部有一个由裁决结果决定的开关_DISCOURAGED。若裁決为「应劝退」,或阶段分流(core/onboarding.py)未达到tiny_live_validation,该开关为True;
  • 程序一启动就执行_safety_gate():闸门开启时直接SystemExit,阻止你「先跑起来再说」;
  • 文件头还嵌入完整裁决结论横幅(等级、理由、警讯)与免责声明,让你每次打开文件都先看到工具对你的判词。

换句话说:统计没过关的策略,工具宁可让它「跑不起来」。

快速上手:一条命令生成策略骨架

git clone https://gitcode.com/gh_mirrors/an/anti-gambling-trader-tw cd anti-gambling-trader-tw python -m pip install -e .

然后用内建范例体验(零数据也能跑):

anti-gambling-trader demo --edge --strategy my_strategy.py

换成你自己的记录(示例数据见 core/examples/tw_stock_gambling.csv 等):

# 默认生成 backtrader 骨架 anti-gambling-trader analyze my_trades.csv --strategy out.py # 生成 vectorbt 版本 anti-gambling-trader analyze my_trades.csv --framework vectorbt --strategy out_vbt.py

骨架写好文件后(见 core/cli.py 的输出逻辑),接着打开.py,把signal = False # TODO处换成你自己的进场规则,再用模板里自带的run_backtest()搭配历史数据回测即可。

想更进一步?anti-gambling-trader scaffold --from-analysis out.json可生成完整的交易程序专案(默认 PaperBroker 纸上模拟、14 种券商/交易所选项),骨架的安全闸门会一并嵌入(core/scaffold/generator.py)。

生成骨架之后该做什么?

  1. 填规则:把进场条件写成明确、可量化的代码(写不出来 = 重新审视你的交易方法);
  2. 带 tag 记录:每笔交易标注进场理由,工具会按 tag 统计胜率,帮你分辨「哪套逻辑真的带来获利」(逐策略体检见 core/strategy/per_tag.py);
  3. 回测验证:样本外、含手续费,优势还在才算数;
  4. 再谈自动化:规则冻结 + 样本外通过之后,才考虑接真实券商,且风险自担。

相关模块路径速查

模块作用
core/strategy/skeleton.py策略骨架生成器 + 三套框架模板
core/strategy/profiler.py从交易记录反推风格(StrategyProfile)
core/verdict/judge.py五档统计裁决引擎与赌博特征扫描
core/onboarding.py阶段分流(stop / paper / tiny live)
core/scaffold/generator.py完整交易程序专案脚手架
core/cli.pyanalyze --strategy等命令行入口
docs/user-guide.md完整功能与判读指南

免责声明:anti-gambling-trader-tw 仅提供统计分析与回测骨架,不构成投资建议;过去绩效不代表未来表现。生成的策略骨架默认只在回测 / 纸上模拟模式运行,任何真实交易决策与后果由使用者自行承担。

【免费下载链接】anti-gambling-trader-tw

免費開源的投資反詐、交易統計與自動化交易程式工具:預設 PaperBroker,提供 14 種券商/交易所選項;交易紀錄分析在本機執行。

项目地址:https://gitcode.com/gh_mirrors/an/anti-gambling-trader-tw
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询