自定义方程

在变量的创建过程中,您可以使用标准数学运算符和变量选择页面中的数据,来创建自己的自定义变量。例如,您可以使用“收入:实际价值/总企业价值:实际价值”(Revenue: Actual Value / Total Enterprise Value:Actual Value)  来构建“标准化收入”(Normalized Revenue)。

您甚至可以使用以下函数来创建更复杂的公式。例如,您可以使用相对于基准:“相对动量”的动量概念,创建一个公式:pct(Close Price: actual value, 21) - pct(benchmark(), 21)

 

 

上面的函数可计算池内每只证券的 21 天收盘价百分比差异,然后再减去基准的 21 天百分比变化。因此,如果 21 天前 AAPL 的价值为 200 美元,而今天的价值为 220 美元,则 pct(Close Price: actual value, 21) 的值为 0.10。如果基准是 SPY,且 21 天前为 300 美元,而今天为 303 美元,则其价值将为 0.01。公式的最终结果(对于 AAPL)为 0.10 - 0.01 = 0.09。

 

1. 基准:基准价格

说明:

使用此特定模型的基准(在模型创建的“约束 (constraints)”屏幕上设置)和价格类型(即开盘价)来获取基准价格时间序列值。

函数:

benchmark()

参数:

 

2. 应用绝对值 - 将绝对值应用于函数的方程中

函数:

abs(equation)

参数:

equation* - 应用绝对值的自定义方程

 

3. 应用自然对数 - 将自然对数应用于函数的方程中

函数:

log(equation)

参数:

equation * - 应用自然对数的自定义方程

 

4. 检索最小值 - 在两个方程中检索两个值中的最小值。

函数:

min(equation_1, equation_2)

参数:

equation_1 * - 用于与 equation_2 进行比较,以确定最小值的自定义方程

equation_2 * - 用于与 equation_1 进行比较,以确定最小值的自定义方程

 

5. 检索最大值 - 在两个方程中检索两个值中的最大值。

函数:

max(equation_1, equation_2)

参数:

equation_1 * - 用于与 equation_2 进行比较,以确定最大值的自定义方程

equation_2 * - 用于与 equation_1 进行比较,以确定最大值的自定义方程

 

6. 应用指数 - 将指数应用于函数的方程中

函数:

pow(equation_1, equation_2)

参数:

equation_1 * - 在指数运算中用作底数的自定义方程

equation_2 * - 在指数运算中用作指数的自定义方程

 

7. 应用方差 - 将方差应用于函数的方程中

函数:

var(equation, num_days)

参数:

equation* - 应用方差的自定义方程

num_days * - 计算方差时用作时间窗口的营业日数量

 

8. 应用百分比变化 - 将一段时间的百分比变化应用于函数的方程中

函数:

pct(equation, num_days)

参数:

equation * - 应用百分比变化的自定义方程

num_days * - 计算百分比变化时用作时间窗口的营业日数量

 

9. 应用简单移动均值 - 将简单移动均值应用于函数的方程中

函数:

sma(equation, num_days)

参数:

equation * - 应用简单移动均值的自定义方程

num_days * - 计算简单移动均值时用作时间窗口的营业日数量

 

10. 应用加权移动均值 - 将加权移动均值应用于函数的方程中

函数:

wma(equation, num_days)

参数:

equation * - 应用加权移动均值的自定义方程

num_days * - 计算加权移动均值时用作时间窗口的营业日数量

 

11. 应用指数移动均值 - 将指数移动均值应用于函数的方程中

函数:

ema(equation, num_days)

参数:

equation * - 应用指数移动均值的自定义方程

num_days * - 计算指数移动均值时用作时间窗口的营业日数量

 

12. 替换 NaN(非数值)- 根据一个方程中的值来替换另一个方程中的 NaN 值

函数:

nan_to_num(equation_1, equation_2)

参数:

equation_1 * - 考虑需替换 NaN 的自定义方程

equation_2 * - 用于替换 equation_1 中 NaN 的自定义方程。如果是常数值即可,则可以为十进制。

 

13. 使用历史数据 - 对数据应用延迟

函数:

prev(equation, num_days)

参数:

equation* - 应用延迟的自定义方程

num_days * - 用作延迟时间窗口的营业日数量

 

14. 使用未来数据 - 对数据应用未来趋势***仅用于自定义目标方程***

函数:

fwd(equation, num_days)

参数:

equation* - 应用未来趋势的自定义方程

num_days * - 用作延迟时间窗口的营业日数量

 

15. 检索随时间变化的最小值 - 在两个方程中检索两个值中的最小值。

函数:

tmin(equation, num_days)

参数:

equation* - 应用未来趋势的自定义方程

num_days * - 用作最小值查找时间窗口的营业日数量

 

16. 检索随时间变化的最大值 - 在两个方程中检索两个值中的最大值。

函数:

tmax(equation, num_days)

参数:

equation* - 应用未来趋势的自定义方程

num_days * - 用作最大值查找时间窗口的营业日数量 

 

17. 大于或等于 (>=) 布尔逻辑 - 使用大于或等于布尔逻辑比较两个方程,并将 True/False 转换为 1/0

函数:

ge(equation_1, equation_2)

参数:

equation_1 * - 位于布尔方程左侧的自定义方程

equation_2 * - 位于布尔方程右侧的自定义方程

 

18. 大于 (>) 布尔逻辑 - 使用大于布尔逻辑比较两个方程,并将 True/False 转换为 1/0

函数:

gt(equation_1, equation_2)

参数:

equation_1 * - 位于布尔方程左侧的自定义方程

equation_2 * - 位于布尔方程右侧的自定义方程

 

19. 等于 (==) 布尔逻辑 - 使用等于布尔逻辑比较两个方程,并将 True/False 转换为 1/0

函数:

eq(equation_1, equation_2)

参数:

equation_1 * - 位于布尔方程左侧的自定义方程

equation_2 * - 位于布尔方程右侧的自定义方程

 

20. 不等于 (!=) 布尔逻辑 - 使用不等于布尔逻辑比较两个方程,并将 True/False 转换为 1/0

函数:

ne(equation_1, equation_2)

参数:

equation_1 * - 位于布尔方程左侧的自定义方程

equation_2 * - 位于布尔方程右侧的自定义方程

 

21. 小于或等于 (<=) 布尔逻辑 - 使用小于或等于布尔逻辑比较两个方程,并将 True/False 转换为 1/0

函数:

le(equation_1, equation_2)

参数:

equation_1 * - 位于布尔方程左侧的自定义方程

equation_2 * - 位于布尔方程右侧的自定义方程

 

22. 小于 (<) 布尔逻辑 - 使用小于布尔逻辑比较两个方程,并将 True/False 转换为 1/0

函数:

lt(equation_1, equation_2)

参数:

equation_1 * - 位于布尔方程左侧的自定义方程

equation_2 * - 位于布尔方程右侧的自定义方程