算法加密回溯测试柏拉图区块链数据智能的 3 个关键。垂直搜索。人工智能。

算法加密回测的 3 个关键

许多关于算法加密货币交易的文章过于简单化了构建交易平台和回测代码的现实。在这里,我们将回顾回测的 3 个方面,这些方面经常被掩盖,但实际上是 取得成果的关键.

算法加密回溯测试柏拉图区块链数据智能的 3 个关键。垂直搜索。人工智能。

让我们开始吧,回测的 3 个关键:

  • 蜡烛 低值 停靠点
  • 管理的 执行价格
  • 反复地 将回测与实际情况进行比较

这意味着强有力的回测是 付出很多努力 (毫不奇怪!)但让我们进一步深入探讨这一点。

许多回测设备使用蜡烛 关闭 每个刻度的值。在带有止损订单的实时交易中 它是一个价格变动中的低值,将停止您的头寸.

让我们o好的,举个例子。在下面的 BTC 图表中,假设我们在较低的绿色蜡烛的蓝线处执行买入订单,大致在该价格变动从低点到高点的中间位置。

如果止损严格,则下一个价格变动的低点可能会触发止损。但是,如果您的回测代码假设收盘时止损卖出,那么情况并非如此,并且 该位置将在您的模拟中向前延伸。 仔细观察绿色入场点(十字)后面的红色蜡烛,它的收盘价和最低价非常不同。 在这种特定情况下,后者将显示出更大的利润。

因此,以高于开盘价的价格买入的影响 可能有 对您的模拟和回测造成严重后果。这是 不能 您的执行价格与开盘价之间的差异,相反,它可能是头寸扩展和获利方式的巨大差异。

执行价格会对交易利润产生连锁效应。

考虑 2 个仓位,第一个仓位为 20.00(使用整数),第二个仓位为 20.50,价格略高(市场买入)。这个[相对较小的] 0.50 个单位的差异可以有 级联效应 随着时间的推移,该职位的利润。为什么?因为在随后的价格变动中,20.50 位置可能会停止,因为低值可能低于其止损设置。与此同时,第一个头寸会持续更多的价格变动以实现盈利。巨大差距!

为了解决这个问题,我们需要估计我们的执行价格......

重要的是要记住,回溯测试的工作是估计过去运行的模型/策略的回报。

您的回测代码不知道买入或卖出方收到的交易价格(过去时)。

当查看过去的历史市场数据时,实际的订单执行价格是未知的。事实上,您可能有一个显示头寸实际价格的日志,但反向交易者查看的是一般市场数据而不是单个交易日志。

使用开盘价作为入场价格是不现实的,使用收盘价也是不现实的。为什么这会产生很大的差异?因为,如前一节所述,以较高执行价格入场很容易导致限价卖单比回测模拟更快触发。

你希望你的回溯测试结果稍微悲观一些。

对于准确估计执行价格的位置没有真正的答案,重要的是要了解您无法在模拟中完全正确地估计执行价格。假设您的买入订单的开盘价格通常是乐观的,而不是理想的方法。同样,假设您的卖出订单的收盘价可能与实际结果有很大偏差。

在市场上购买

这里有一些选项可供选择 对于买入市价订单:

a) 估计报价开盘价和收盘价之间的中间执行价格(或某个预定义的距离)

b) 估计价格变动的最低价和最高价之间的中间执行价格(或某个预定义的距离)

c) 在开盘价或最低价和收盘价或最高价之间选择一个随机价格

虽然市场行为本质上往往是随机的,但我不喜欢 (c),因为你的回测代码 不会是幂等的; 每次对相同的数据运行时,它都会返回不同的结果。这很混乱。

选项(b)强调市场波动性更大,而选项(a)则不那么波动。这取决于你,但必须做出选择。例如,您可以使用 波动率指数,例如 CVI 然后根据你回测期间的值进行选择。

获利了结卖出限价单

这里有一些选项可供选择 用于获利卖出限价订单:

a) 估计价格变动的开盘价和最高价之间的中间执行价格(或某个预定义的距离)

b) 估计一个价格变动的收盘价和最高价之间的执行价格

c) 在上述蜡烛值之间选择一个随机价格

止损卖出限价单

这里有一些选项可供选择 对于止损卖出限价订单:

a) 估计开盘价和收盘价中间的执行价格

b) 估计一个价格变动的收盘价和最低价中间的执行价格

c) 在上述蜡烛值之间选择一个随机价格

请注意根据订单的低值与高值的使用 姿态。获利限价卖单处理上涨的价格,而止损预防性限价卖单处理下跌的价格。两者都可能面临超越极限值的差距!

处理过去的止损限价单

扩大头寸损失的一个非常常见的方式是 价格差距超过您的止损限价单。您的交易平台需要通过识别低于止损限价订单的头寸并在其进一步陷入亏损之前执行市场卖出订单来管理这一点。

Binance TradingView 图表上显示的止损限价单

请记住,许多交易交易所不支持止损市场订单,例如。 Binance,所以你被迫使用 止损限制 订单来保护您的头寸。止损限价单有“止损价”和“限价”,前者触发后者价格的限价卖出。

许多交易所(例如币安)不支持止损限价单。

这对你的回测算法意味着什么? 要持有保守/悲观的观点,应该采取 某处的售价 止损限价和最低价之间。比率越低,结果越保守。实际情况是,这些止损限价订单中很大一部分将以其限价执行,但其他订单将在限价以下执行, 必须考虑到这一点.

获利卖出订单的会计处理

如果您的交易平台支持获利了结模式(它应该),即一旦达到退出水平就以利润平仓,那么应该积极管理这些订单。

在这种情况下,市价订单将留下利润,最好以特定价格发出限价卖单。

当希望在头寸上获利时,一个强有力的方法是获得订单簿的顶部(见上文)并将卖出限价设置为这些价格之一。此时,这可能会以比市价订单更高的价格(利润)成交。

这对你的回测算法意味着什么? 要持有保守/悲观的观点,应该假设 获利了结退出水平和最高点之间的价格。实际售价将 取决于订单簿价差 在交易时,但回测模拟器中当然没有“订单簿”,因此我们需要根据可用数据进行估计。

除非与实际结果进行比较,否则无法改进回测算法 反复地.

除非您反复将回测结果与实际交易结果进行比较,否则您无法对回测充满信心。

下面是如何实现这一目标的具体示例:

  • 运行您的实时交易平台一段时间,例如。 24小时
  • 记录结果:每笔交易、每次退出、每次止损
  • 在此时间段之后,在同一时间段运行回测代码
  • 将回测结果与实际结果进行比较!

详细比较每笔交易,您的回测代码做出了哪些不代表实际实时交易的假设?

有什么区别?

  • 你的回测乐观吗?如果是的话在哪里?如何?为什么?
  • 你的回测是否过于悲观?

您希望回测始终显示略显悲观的结果;保守的。

这样做几次后,关闭您的交易装备并改进回测代码和您的交易装备,然后 重复.

由于您的实时交易平台可以以相对较小的订单规模运行,因此运行测试不需要太多成本。

当然,在任何时期,市场都会出现意想不到的行为,这里的重点是确定你的回测显然没有估计你的实际情况所揭示的区域。

我在执行此操作时发现的一些示例:

  • 回测对LIMIT SELL价格过于乐观,实际交易中经常出现跳空缺口导致利润减少的情况
  • 回测对BUY执行价格过于乐观,实际交易中很少能得到tick开盘价执行
  • 回测没有捕获一个价格变动内低值的止损卖单,在实际交易中,这是提前结束仓位

这是从加密货币交易平台中赚取利润的唯一方法。随着时间的推移不断改进你的回溯测试,并迭代实际结果以改进它。

币安交易平台自动限价单调整

回测你的算法交易模型是一项艰苦的工作!这应该不足为奇。这里没有“简单的道路”。

Source: https://medium.com/@gk_/3-keys-to-algo-crypto-backtesting-99f006cfd390?source=rss——-8—————–cryptocurrency

时间戳记:

更多来自 M中号