# PythonLAB 回测 - 外部数据

不同于别的程序化工具，PythonGO 的运行依赖于无限易客户端，数据都来自于无限易客户端，自身既不产生数据也不保存数据，所以没办法脱离无限易客户端运行，最常见的限制就是没法通过编辑器运行，这对编写策略来说，是不太方便的。

所以要想脱离客户端运行，实现「回测」，就必须要有外部数据，然后框架来充当无限易客户端的角色，将外部数据传递给策略，这样策略才能正常运行。

最常见的「外部数据」就是 K 线数据、Tick 数据、合约信息。

----

这些数据目前免费提供，但每个 QuantFair 模拟帐号还是会有免费的额度。

Tick 数据使用限制如下（暂行）：

* 每人可以免费获取 1000 次 Tick 数据

* 每个合约的一天（交易日） Tick 数据计为 1 次

* 重复获取某合约某天的数据，只计为 1 次

* 免费额度用完后会提示：`DATA_ALLOWED_TIMES_NOT_ENOUGH`

* 支持交易所：上期所，中金所，大商所，郑商所，能源中心，广期所，上交所，深交所

* 如果提示 `NO_AVAILABLE_ORDER`，则代表没有请求该数据的权限

例如：

回测 `2024-02-28` 到 `2024-05-15` 上期所 `ag2408` 合约，共计交易日 51 天，则消耗 51 次获取额度，之后重复获取这个期间**同合约**任意天数数据，都不消耗获取额度；

但如果再回测 `ag2412` 合约，则按实际情况消耗获取额度；

同理，如果单合约回测超过 1000 天（交易日），则免费额度全部用完，之后只能重复获取该区间段数据，无法获取新数据；

如果回测多合约，例如 `ag2408` 和 `ag2412`，由于是两个合约，则获取次数也是 X 2，如果回测 50 天（交易日）则消耗 100 次获取额度。
