基于规则的系统在算法外汇交易中的应用
什么是基于规则的系统?
基于规则的系统是一种算法方法,其决策由明确的、人类可读的规则驱动。在算法外汇交易的背景下,这些规则通常定义了在一种或多种输入(例如近期价格变动、指标值或基于时间的过滤器)满足条件时采取某种操作。
与从零开始学习策略不同,基于规则的系统编码了一种结构化逻辑,例如:“如果满足某些条件,则生成特定指令”,以及“如果不满足,则执行其他操作”。这些规则可以很简单(单一条件),也可以更复杂(多个条件通过逻辑运算符组合)。
基于规则的系统如何工作?
基于规则的系统通常遵循一个可重复的工作流程:
-
定义输入和度量
首先选择系统将“查看”的数据。这可以包括汇率、衍生指标(如移动平均线)、波动率度量或日历/时间过滤器。任何衍生指标都依赖于其计算方法(窗口大小、采样频率和数据源)。 -
编写决策规则
接下来,使用逻辑运算符(如 AND/OR)和比较操作(如“大于”或“上穿”)指定条件。规则还可以包括约束,例如将系统限制在特定交易时段,或要求水平之间保持最小距离。 -
持续评估规则
在运行期间,系统会不断检查规则条件是否当前成立。根据规则的定义方式,系统可能会创建一个期望状态(例如“允许入场”),或直接生成指令。 -
将决策转化为订单
即使决策逻辑清晰,实施步骤仍然重要。系统必须将其决策映射到执行方法:订单类型、时机、仓位规模逻辑,以及如何处理部分成交或缺失数据。 -
跟踪结果并更新规则(如允许)
在许多设置中,规则不会自动更改;而是由人工审查和调整。如果修改了规则,更新过程本身就会成为整个系统行为的一部分。
规则逻辑的简单示例(概念性)
一个概念性规则可能是:“当某个指标上穿阈值且波动率处于指定范围内时,系统从中性状态切换到激活状态。” 另一个规则可能定义退出行为,例如当相反的指标条件出现或达到预设的风险限制时切换回中性状态。
相关的局限性和风险
基于规则的系统通过使逻辑明确来减少歧义,但并不能消除不确定性。主要局限包括:
1) 假设可能不再符合现实
外汇市场是变化的。适用于某一市场“状态”的规则在另一状态下可能表现不同,尤其是在波动性、流动性或典型价格行为发生转变时。即使规则在设计时所依据的历史时期是正确的,这也可能导致表现不佳。
2) 过度拟合和确认偏误
即使有明确的规则,也可能将参数过度贴合历史数据(例如选择恰好符合过去结果的阈值和窗口大小)。这可能使规则在回测中看起来有效,但在面对新数据时却难以奏效。
3) 数据质量和时间差异
规则评估依赖于输入的准确性和时间性。不同的数据源、数据可用性的变化,或测试中使用的时间戳与实盘操作中使用的时间戳不匹配,都可能改变条件成立的时机。
4) 执行和市场微观结构影响
规则引擎在逻辑上可能是正确的,但由于执行摩擦(如点差变化、滑点、延迟和订单成交行为)而导致实际结果不同。回测通常会简化这些因素,因此现实路径可能偏离预期。
5) “简单”规则中的隐藏复杂性
多个规则可能以不明显的方式相互作用。例如,重叠的入场和出场条件可能产生冲突指令,除非系统明确指定了优先级或状态模型。诸如缺失报价、突然跳空或数据断连等边缘情况也可能影响行为。
如何独立验证基于规则的系统
由于基于规则的系统涉及假设,验证应侧重于可重复、可检查的证据,而非预期。
- 在多个时间段测试逻辑,而不仅限于一个历史窗口。
- 使用一种将评估数据与规则设计过程分开的方法。
- 在可能的情况下,检查对非关键参数合理变化的鲁棒性。
- 将关于输入的假设(数据源、采样、计算方法)与实际操作中将使用的进行比较。
- 审查执行细节:订单时机、缺失数据的处理方式,以及在部分成交情况下的行为。
不确定性依然存在:过去的表现并不能保证未来的行为。然而,仔细的验证可以澄清基于规则的系统实际上对什么敏感,以及在条件变化时逻辑可能在何处失效。
在整体自动化图景中如何定位基于规则的系统
基于规则的系统是自动化决策逻辑的一种风格。它们常与更隐式地从数据中推断模式或持续自适应的方法形成对比。主要的实践启示是,基于规则的系统以灵活性换取透明度:其行为可以通过明确的条件来理解,但其成功仍取决于这些条件是否持续有意义,以及实施是否符合测试假设。