Python 与 Pine Script 回测:为什么同一交易策略会得到不同结果
用比特币实证研究成交时点、仓位数量、最小价格变动单位与基点成本及账户权益,报告 Python 测量结果,并明确 Pine Script 对照流程。
相同的交易信号并不保证相同的回测结果:下单时点、数量、滑点单位和未平仓记账方式都可能改变结果。我们的固定 BTC-USDT 日线突破策略,在 2024–2025 年扣除模型设定成本后的收益为 +24.46%,可比的买入持有账户则为 +96.28%。本文用 Python 量化四种执行约定,核对一笔亏损交易,并通过交易所 API 逐根复核评估期 K 线。本文讨论的 Pine 实现没有在 TradingView 中运行,跨引擎一致性仍未经验证。
本研究解释什么
- 固定交易规则如何连接信号、订单、成交与现金记账。
- 下一开盘与同一收盘成交、信号时点定量,以及最小价格变动单位与基点差异的实测影响。
- 毛收益与净收益、回撤、基准、全部九种开发组合和两个滚动前推检验区间。
- 比较引擎之前,如何明确 Pine 执行约定,并把导出记录转换为共同格式。
交易规则只是回测的一部分
两种实现可以一致认定比特币发生突破,却在买入数量、成交成本和应报告哪一种利润上产生分歧。收盘时出现的信号,是创建订单的指令,并不是订单按该收盘价成交的记录。TradingView 通常在下一个可用价格更新处理普通市价单,常见情形是下一根 K 线开盘;设置可以改变这一规则。[1]
我们用一套固定的比特币日线突破规则研究这些差异,在完全相同的 K 线上运行四种明确声明的执行约定。下文全部数值比较都已在 Python 中执行。本文讨论的 Pine Script 实现没有在 TradingView 中编译或运行,研究中也没有导出的 Pine 账本。因此,我们测量的是指定约定的影响,并不声称已经完成跨平台业绩检验。
| Python 计算 | 数量与成交规则 | 评估期收益 |
|---|---|---|
| reference-next-open | 次日开盘时确定数量,以含手续费的 90% 现金预算买入;不利成交调整为 5 bp | +24.46% |
| signal-qty-bps | 按信号收盘价固定数量;次日开盘成交,施加 5 bp 不利调整 | +24.47% |
| signal-qty-ticks | 同样在信号时固定数量;次日开盘成交,施加五个 0.01-USDT 最小价格变动单位的不利调整 | +25.13% |
| same-close | 按已完成的信号收盘价成交,施加 5 bp 不利调整;用于对照的成交时点假设 | +24.46% |
本文延续了我们的交易算法构建实证研究。前文建立了完整研究流程,并讨论 Pine 仓位数量与滑点的差异。本文把这些差异变成明确实验,最后一节说明如何比较你自己编写的 Python 与 TradingView 实现的记录。
运行之前,先固定经济问题与记账方式
经济假设是:持续趋势可能弥补多次突破失败的成本。这并不意味着 55 和 20 是独一无二的盈利数字。我们沿用前文的回看长度,让执行研究有一个稳定对象。如果因为资金曲线好看而另选规则,就会改变研究问题,并增加一次选择机会。
| 项目 | 记录的约定 |
|---|---|
| 市场与数据 | BTC-USDT 现货价格,UTC 日线;输入为 2020-02-20–2025-12-31 |
| 入场 | 空仓时:完整收盘价严格高于此前 55 根 K 线的最高 HIGH,不包含当前 K 线 |
| 退出 | 持有多头时:完整收盘价严格低于此前 20 根 K 线的最低 LOW,不包含当前 K 线 |
| 订单 | 收盘后生成信号;次日开盘成交;最后一根 K 线产生的订单不成交 |
| 资金 | 每个区间从空仓、10,000 USDT 开始;含入场手续费的 90% 现金预算,允许不足一枚的 BTC 数量 |
| 主要成本 | 每侧收取 10 bp 手续费,并施加 5 bp 不利价格调整 |
| 其他假设 | 无杠杆、卖空、资金费、现金利息、税费或固定运营成本;不另收买卖价差 |
| 期末持仓 | 按最后收盘价盯市;不强制卖出,也不预留假想退出成本 |
| 区间 | 开发期 2021–2022;验证期 2023;评估期 2024–2025;此前数据仅用于指标预热 |
我们在本流程计算业绩之前记录了规范、配置和数据修订。这是内部研究记录,并非独立预注册。本网站已经研究过同一规则与重叠的市场历史。2024–2025 年是对冻结实现的按时间顺序评估,不能视为来自此前未知市场的新证据。
首要验收条件是机械性的:成交遵循记录的信息时序,现金不发生借贷,已平仓与未平仓盈亏之和能与账户权益核对一致。经济评估则报告相同预算的买入持有基准、回撤、成本敏感性与盈利集中度。单凭正收益不能通过部署决策。
新增的数据来源复核能够说明什么
主计算使用此前研究所用数据集中的 2,142 条日线观测:每个 UTC 日由六根四小时 K 线聚合而成,原始数据由 humblefool06 在 Hugging Face 发布,声明采用 CC BY 4.0。研究记录保留固定版本、署名、转换说明和 SHA-256 哈希。保留序列从 2020 年 2 月 20 日开始,前一研究已排除其之前不完整的一天。本分析使用截至 2025 年 12 月 31 日的固定子集。[3] [9]
我们另行通过 Binance 公开市场数据 API 获取了 2024–2025 年全部 731 根日线。开、高、低、收和成交量的 3,655 次比较全部精确一致。核验报告记录了请求 URL、响应哈希和比较过程。原始 API 响应未作为主数据集重新分发。Binance 文档规定默认 K 线边界为 UTC,并以开盘时间唯一标识 K 线。[4]
这比只检查文件哈希更进一步:它检验另一条获取路径是否报告相同的评估期 K 线。不过,这仍是同一交易所的复核,并非独立价格审计,也不能证明订单能够按某个 OHLC 价格成交。此次 731 根 K 线的 API 比较没有覆盖预热与开发期历史。
加载研究数据时,我们检查时间连续性、重复日期、价格是否为有限正数,以及 OHLC 是否一致。错误序列即使可复现,仍然是错误的;来源说明卡与本文解释的核验方法让剩余不确定性可以被检查。我们不会虚构专家审阅或第二个独立数据源来增强表面可信度。
收盘后才出现的信号,不能买到此前的开盘价
参考循环先在今日开盘执行昨日待成交订单,再按今日完整收盘价计量持仓,最后计算今日的下一条指令。入场和退出通道只包含此前 K 线。在有效 OHLC 数据上,如果入场通道包含今日最高价,就不可能出现收盘价严格高于该通道最高价的突破。 信息可用性的具体检验方法,见我们的前视偏差研究。
entry_level = max(b.high for b in bars[i-55:i])
exit_level = min(b.low for b in bars[i-20:i])
# Evaluate only after today's completed close.
if quantity == 0 and bar.close > entry_level:
pending = ("buy", bar.date)
elif quantity > 0 and bar.close < exit_level:
pending = ("sell", bar.date)
# Execute pending on the next bar; never at this bar's earlier open.成交时,按现金配置的参考模型买入 q = 0.9 × cash / [fill × (1 + fee)]。经纪商或模拟器可以在知道执行价格时计算数量。但如果 Pine 订单在前一日收盘时以明确数量提交,就只能使用当时可获得的信息。替代模型按信号收盘价固定数量;若随后资金不足,就拒绝订单,不凭空增加现金,也不悄悄调整数量。
一个人工构造的跳空例子便于检查差异:初始 10,000 USDT,信号收盘价为 100,次日开盘为 110,零成本,配置比例 90%。成交时确定数量会买入 81.818182 单位,留下 1,000 现金;信号时确定数量则申请 90 单位,花费 9,900,留下 100。成交瞬间两个账户的权益都是 10,000,但之后的敞口不同。这个算术例子用于说明机制,不属于比特币历史的实测结果。
比较收益前,先明确 Pine 实现的执行约定
本文考虑的 Pine v6 设计使用已确认日线、此前 K 线构成的通道、在信号时明确确定的数量、百分比手续费,以及五个最小价格变动单位的原生滑点。独立比较应采用标准 BTCUSDT 现货日线图、固定规范中的日期范围、足够的预热历史和声明的设置。本研究没有完成 TradingView 编译或 Strategy Tester 验证。
两个单位很容易混淆:五个基点是价格的 0.05%,而五个 0.01 USDT 的最小价格变动单位总计 0.05 USDT。假设比特币价格为 100,000 USDT,两者分别意味着 50 USDT 和 0.05 USDT 的不利调整。最小价格变动单位的个数并非百分比。Pine 内置滑点参数接受的是这种单位的个数;明确填写入场 qty 会覆盖默认百分比仓位设置。[1]
signal-qty-ticks 这个 Python 模型,是针对声明的 Pine 执行约定设置的核对目标,并非 TradingView 的完整复制品。数据修订、最小合约数量、数量舍入、资金充足性和保证金规则仍可能不同。参考模型允许不足一个整单位的持仓,未实施交易所数量过滤器;任何模拟数量都不代表它是交易场所认可的有效实盘订单。
保持 calc_on_every_tick 和 calc_on_order_fills 为声明的默认值,并关闭 process_orders_on_close。改变计算或订单处理规则,就改变了实验。Pine 执行模型区分历史与实时更新,因此,在已完成 K 线上看似等效的策略,可能在 K 线尚未形成时表现不同。[2]
参考实现赚了钱,却仍未达到收益基准
在 2024 年 1 月 1 日至 2025 年 12 月 31 日的 731 个评估日内,参考模型把 10,000 USDT 变为 12,445.81 USDT:扣除假定可变成本后的收益为 +24.46%。可比的初始配置买入持有账户收益为 +96.28%。这些都是指定区间的累计收益,并非年化数字。
| 区间 | 天数 | 策略成本前收益 | 策略净收益 | 90% 买入持有 | 已平仓交易 |
|---|---|---|---|---|---|
| 2021–2022 开发期 | 730 | +22.64% | +21.32% | -38.60% | 4 |
| 2023 验证期 | 365 | +17.97% | +16.55% | +139.71% | 4 |
| 2024–2025 评估期 | 731 | +26.50% | +24.46% | +96.28% | 6 |
策略按日收盘权益计算的最大回撤为 20.04%,买入持有则为 30.86%。平均盯市投资敞口为 37.59%,731 次收盘中有 300 次持仓。总成交名义金额除以初始权益为 12.96 倍;该换手指标同时计算买入与卖出,并非往返交易次数。
买入持有在整个区间延续初始配置,突破策略则在现金与比特币之间切换。收益更高、回撤也更高,并不足以构成完整的风险调整后排名。可以明确得出的结论较窄:突破账户没有战胜指定的累计收益基准。按日收盘计算的回撤,也没有涵盖日内发生后又收复的损失。
从订单到现金余额,核对一笔亏损交易
评估期第一笔亏损的已平仓交易,在 2024-01-02 发出信号后,于 2024-01-03 入场;在 2024-01-22 发出退出信号后,于 2024-01-23 退出。数量为 0.19993623 BTC。账本把原始参考价与不利调整后的成交价分开记录;下表使用实际模拟成交价。
入场名义金额为 8,991.01 USDT,入场手续费为 8.99。现金从 10,000.00 降至 1,000.00。退出时,按成交价计算的持仓盈亏为 -1,083.88;扣除买卖两侧手续费后,净亏损为 -1,100.78 USDT。退出后现金为 8,899.22。展示数字相加时可能出现的细小差额来自四舍五入;研究计算保留完整精度。
| 账本项目 | 数值 |
|---|---|
| 入场成交价 | 44,969.38 |
| BTC 数量 | 0.19993623 |
| 入场手续费 | 8.99 |
| 入场后现金 | 1,000.00 |
| 退出成交价 | 39,548.24 |
| 退出手续费 | 7.91 |
| 扣手续费前的成交价盈亏 | -1,083.88 |
| 已平仓交易净盈亏 | -1,100.78 |
| 退出后现金 | 8,899.22 |
滑点已经改变了入场与退出成交价。如果再从成交价盈亏中扣除展示的滑点差额,就会重复计费。账本中的“交易毛盈亏”指扣手续费前、但已包含成交价滑点的盈亏;另行运行的策略毛收益计算则同时去除了手续费与滑点。这两种标签描述的是不同计算。
已平仓利润与账户权益回答不同的问题
评估期结束时为空仓,因此六笔已平仓交易解释了账户全部利润。2023 年验证账户提供了更有启发性的例子:已平仓交易亏损 669.03 USDT,但剩余 0.25356187 BTC 按市价计量的未平仓利润为 2,323.63,该利润已扣除支付的入场手续费。因此账户总利润为 1,654.60 USDT,即 +16.55%。期末现金仅为 933.10;持仓构成了 11,654.60 账户价值的其余部分。
核对恒等式为:初始权益 + 已平仓净盈亏 + 未平仓盯市盈亏 = 现金 + 持仓市值 = 期末权益。我们对每次运行都按完整精度检查它。平台的已平仓统计与账户总收益可能不同,即使两者算术上都正确。把差异认定为错误前,应先比较相同口径。
在最后收盘时平仓会回答另一个问题,并产生额外卖出手续费与不利成交调整。我们保留未平仓盯市,并披露这一约定,而不是悄悄在已实现与未实现结果之间切换。
在这些 K 线上,哪种执行差异最重要?
仅把仓位数量从成交时现金配置改为按信号收盘价固定,评估期收益就增加 +0.0099 个百分点。在这一数量模型下,把五个基点改为五个最小价格变动单位,会让收益增加 +0.6651 个百分点,即 66.507521 USDT。同一收盘价成交只让参考模型期末余额增加 +0.002848 USDT。这些是 Python 中测得的规则影响,并非已观察到的 TradingView 差异。
比特币连续交易,因此样本中相邻日线的收盘价与开盘价可能非常接近。这里的时点影响较小,并不表示同一收盘价成交适用于其他市场、缺乏流动性的时段或存在延迟的实盘实现。前面的人工跳空例子说明,在另一条价格路径上,同样的编程选择可能影响大得多。
核对两种实现时,先比较成交记录,再比较资金曲线。找到第一处数量或价格差异,再沿着它检查后续现金影响。差异会累积:后续资金配置依赖此前现金。最终收益相近,不能证明交易机制一致。
检验成本与对少数大额盈利交易的依赖
参考模型的 12 次成交合计支付了 129.58 USDT 手续费。成本表固定每侧手续费为 10 bp,只改变不利价格调整。这里零不利调整并不等于零成本账户;前表的策略毛收益行来自另行进行的零手续费、零滑点计算。模型用一次不利调整合并表示价差与执行损耗,并未估计历史买卖价差。 更完整的费用分类,见我们的交易成本分析。
| 每侧手续费 | 每侧不利调整 | 净收益 | 最大日收盘回撤 |
|---|---|---|---|
| 10 bp | 0 bp | +25.13% | 19.79% |
| 10 bp | 5 bp | +24.46% | 20.04% |
| 10 bp | 10 bp | +23.79% | 20.30% |
| 10 bp | 20 bp | +22.45% | 20.80% |
已平仓交易的平均净盈亏为 407.63 USDT。盈利交易的平均结果为 1,748.18,亏损交易的平均结果为 -932.91;已平仓利润因子为 1.87,盈利交易占 50.00%。以金额表示的均值会受到不断变化的账户规模影响。这些是账本的描述性汇总,并非对下一笔交易的稳定预测。
三笔最大的已平仓交易贡献了 5,244.53 USDT。从账户总盈亏中减去这些贡献,剩余为 -2,798.72。这种算术展示了盈利集中度;它不是跳过这些交易、并重新计算后续仓位数量的重跑结果。年度收益也展示了路径:2024 年 +38.44%;2025 年 -10.10%。年度收益来自持续运行的评估账户,并非每年重置的新账户。
把未采用的参数变体也留给读者检查
我们声明了九种组合:入场回看长度 35、55、80,分别搭配退出回看长度 10、20、30。表中列出了每组开发期扣成本后的结果。不论排名如何,都保留 55/20,因此比较不会悄悄变成寻找最好看的执行研究标题。
| 入场回看长度 | 退出 10 | 退出 20 | 退出 30 |
|---|---|---|---|
| 35 | +4.00% | +10.03% | -9.22% |
| 55 | +14.61% | +21.32% | +17.48% |
| 80 | +9.12% | +15.55% | +11.89% |
九格中八格为正,但收益范围为 −9.22% 至 +21.32%;35/30 组合亏损,退出设置也会显著改变结果。保留的 55/20 恰好排名第一。选择记录早于本次运行,但前文已使我们熟悉这一规则,因此这一巧合并不是独立确认。这些结果共享市场历史、相互相关;切分样本或展示参数网格,都无法抹去此前认识。Bailey 及合作者分析了回测选择如何过拟合;我们的网格不是他们正式的回测过拟合概率估计器。[5]
两个滚动前推区间仅使用此前数据来检验记录的选择流程:按训练收益选出九组中的最优参数,再评估下一年。测试年份为 2022 和 2023,完全不使用 2024–2025 年进行选择。这些区间是诊断性扩展,并非最终账户之外、另一份未接触过的证据。
参数选择流程必须面对下一个区间
每个区间重新从 10,000 USDT 开始,使用更早的 K 线预热指标,并直接应用选定参数,不再修改。训练期排名良好,只能让候选方案进入测试,不能替代测试结果。
| 训练区间 | 下一测试年 | 选定入场/退出 | 测试净收益 |
|---|---|---|---|
| 2021-01-01–2021-12-31 | 2022 | 35/20 | -30.54% |
| 2021-01-01–2022-12-31 | 2023 | 55/20 | +16.55% |
我们同时保留选定参数和之后的收益。如果后续区间亏损,这一失败就留在报告中。我们不会增加新过滤条件、重调主规则,或反复查看最终区间,直到文章得到盈利结果。
蒙特卡洛路径改变排列方式,不增加证据数量
我们对参考账户实际观察到的 731 个每日净权益收益,按连续 20 天的循环区块重新抽样,到序列末尾时回绕。每条模拟路径天数相同、初始资本相同。固定随机种子为 6142026,共生成 5,000 条路径,使计算可复现。与打乱单日顺序不同,区块保留部分局部序列依赖。区块长度是明确的建模选择,并非估计出的最优值。[6]
模拟累计收益中位数为 +20.98%,第 5 和第 95 百分位数分别为 -38.34% 和 +166.29%。最大回撤中位数为 30.22%,第 95 百分位数为 50.12%。亏损模拟路径占 32.28%。这些是条件性的路径汇总,并非校准后的未来亏损概率,也不是 alpha 的置信区间。
对账户收益重新抽样,不会生成新 K 线、重跑突破决策、模拟新的流动性条件,也不会补回缺失的危机。本文没有对相对基准的收益进行自助采样。增加模拟路径,只能减少该流程下的蒙特卡洛噪声;底层历史证据仍然是同样的 731 天和同一交易序列。
在每个阶段,给助手一个可检验的任务
ChatGPT 与 Claude 可以帮助表述规则、解释记账差异、质疑报告。Codex 与 Claude Code 可以检查代码仓库、编辑文件、运行开发命令。这些有文档支持的能力适用于本流程,但并不证明它们能产生盈利交易算法。本研究使用 Codex 开发仓库,用 Python 执行计算。我们没有进行受控的 ChatGPT 与 Claude 对比实验,也没有用任何助手预测交易信号。[7] [8]
先解决信息使用边界。实现之前,助手应明确尚未确定的细节:严格还是包含等号的比较、此前 K 线窗口、下单时点、现金预算、舍入与期末持仓。第一个提示词是可复用的任务说明,并不表示我们记录了模型对比实验。
编码前,先把这个交易想法转为可执行规范。说明经济假设;入场与退出;每项输入使用哪些 K 线;信号何时可用;下单与成交时点;数量与现金约束;成本;时区;期末估值;按时间顺序划分的区间;基准;决策条件。列出尚未确定的选择。不要因为规则能改善历史结果就采用它。再约束实现。要求给出状态机与测试样例,不允许在修复错误的请求中隐藏策略优化。有效的未来数据测试会改变日期 t 之后的价格,检查此前决策和成交是否保持不变。有效的记账测试则核对现金、持仓与手续费,即使最后一笔交易尚未平仓。
严格实现随附的冻结规范。分开信号、订单创建、成交、现金记账与报告。不要增加过滤条件或优化参数。为排除当前 K 线、次日开盘时序、含手续费的数量计算、资金不足订单和期末未平仓情形构造人工测试样例。展示每项规则与代码、测试的对应关系。调试时,从第一处出现差异的记录开始比较。写报告时,要求从文件提取数字,并明确标注未执行组件的状态。市场数据提供观测,可执行代码完成计算,研究者决定哪些假设与比较值得信赖。
按时间顺序比较这两份标准化账本。找到输入 K 线、信号、申请数量、成交价、手续费、持仓或权益的最早差异,依据记录的设置与行数值解释它。核对初始权益加已平仓和未平仓盈亏是否等于期末权益。不要重调策略,也不要仅凭最终收益推断存在错误。仅根据给定配置、数据清单和已执行结果文件生成报告。包括所有测试变体、区间边界、成本前后收益、基准、回撤、敞口、换手、交易集中度和未平仓记账。把每张表链接到来源文件。明确标注未执行代码和无法完成的检查。保留不利结果;不要虚构审阅或模型对比。如何检查你实际运行的 TradingView 结果
比较你自己的 Pine 与 Python 实现时,应使用相同品种和区间的标准日线图,保留 Pine 源码、设置、图表数据源和导出的交易。隔离信号差异时,先从零成本情形开始,再向两个引擎加入相同的手续费与按最小价格变动单位计算的滑点。先比较信号日期和交易,再比较账户收益。数量步长或数据历史的差异,应记录为不匹配,而不是通过舍入把它们隐藏掉。
把两组成交记录转换为共同模式:时间戳、方向、请求数量、参考价、成交价、手续费、成交后仓位、现金与权益。逐项明确导出字段的对应关系,包括时区、单位与舍入。对照目标采用本文说明的信号时点定量、最小价格变动单位成本的 Python 约定。这是诊断流程,并不意味着所有本地化 Strategy Tester 导出格式都相同。没有导出的 Pine 运行结果,跨引擎一致性就仍未经验证。
这一流程也解释了为何盈利回测在实盘会亏损:实盘可能接收不同 K 线、稍晚下单、成交更少数量,或支付不同价差。只有这些记录一致后,剩余的业绩失败才成为策略与市场的问题,而不是继续更换执行假设的理由。
在相信两套回测收益一致之前
- 对齐交易品种、数据源、UTC K 线边界、日期范围和指标预热历史。
- 记录准确的下单时点、数量公式、最小价格变动单位、手续费和资金不足处理规则。
- 先检查第一笔出现差异的成交,再比较最终余额。
- 核对已平仓盈亏、未平仓持仓、手续费、现金与盯市权益。
- 保留所有声明过的参数变体,区分重复使用的历史与新的前瞻证据。
- 冻结下一次前瞻检验的规则,保留信号、提交的订单和确认的成交。
实际问题
为什么 Python 与 Pine Script 的回测不同?
仅凭编程语言通常不足以解释差异。数据、信号何时可用、下单时点、仓位数量、成本和账户定义共同决定结果。本研究在 Python 中明确改变这些约定,并说明如何通过分别导出的记录开展 Pine 对照。
ChatGPT 或 Claude 能构建盈利的交易机器人吗?
它们可以帮助开发和检查代码。我们的参考实现,在指定历史期间扣除假定的可变成本后获得 +24.46%,但这并不说明任何助手增加了投资优势。本文没有进行 AI 投资能力对比实验,也没有检验实盘盈利能力。
如何判断策略是否具有优势?
先确认代码符合预期的信息使用与记账规则,再把冻结的选择流程放到合适的基准、现实成本和后续观测中评估。盈利集中度、此前的研究选择和执行变化都会影响解释;一次正收益回测不能解决所有问题。
如何避免交易策略过拟合?
记录每一次尝试,限制自由调整,按时间顺序分开参数选择与评估,并保留亏损变体。本文的九格参数表和两个滚动前推区间揭示了敏感性;它们不能证明留下的规则稳健,也无法抹去此前研究带来的认识。
蒙特卡洛模拟能证明交易优势吗?
不能。这种区块自助采样按照声明的依赖假设,重新组合实际观察到的每日账户净收益。模拟路径用于检查条件性的回撤与收益敏感性,不能创造新的历史数据、新的市场状态或预测价值证据。
Pine Script 策略已经与 Python 验证一致了吗?
没有。Python 的计算和测试已经执行。配套 Pine 代码没有在 TradingView 中编译或运行;它在信号时确定数量,使用固定最小价格变动单位的滑点。其实际导出的成交仍须与指定的 Python 对照模型比较。
来源与研究方法
表格与图表是我们根据注明出处的输入实际执行的计算,并非以下资料报告的研究结论。研究过程记录了方案、计算前修订、来源哈希、API 复核、测试以及从信号到账户权益的记账。本文展示判断论证所需的假设与实测结果。外部文档支持平台行为和方法,不代表为该策略背书。我们不声称接受过独立专家审阅。
- TradingView:Pine Script 策略与经纪商模拟器
- TradingView:Pine Script 执行模型
- humblefool06:BTC-USDT 四小时数据集与来源说明卡
- Binance:公开现货 K 线市场数据文档
- Bailey 等:回测过拟合的概率
- Politis 与 White:依赖数据自助采样的区块长度自动选择
- OpenAI:代码生成与 Codex
- Anthropic:Claude Code 概述
- Creative Commons:署名 4.0 条款
采用模型设定可变成本的回顾性教育研究。未计入税费及固定运营成本。没有进行实盘执行、TradingView 业绩运行或 AI 投资能力对比实验。