在变量的创建过程中,您可以使用标准数学运算符和变量选择页面中的数据,来创建自己的自定义变量。例如,您可以使用“收入:实际价值/总企业价值:实际价值”(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 * - 位于布尔方程右侧的自定义方程