main
parent
3c98065653
commit
11e585b71b
@ -0,0 +1,19 @@ |
|||||||
|
multiply(add(group_zscore(ts_rank(subtract(log(fn_def_tax_assets_liab_net_q), ts_sum(fn_liab_fair_val_a, 252)), 21), sector), ts_zscore(divide(log(multi_factor_acceleration_score_derivative), power(ts_delta(fn_liab_fair_val_a, 126), 2)), 252)), sqrt(reverse(ts_scale(signed_power(multi_factor_acceleration_score_derivative, 3), 63)))) |
||||||
|
|
||||||
|
multiply(ts_rank(kth_element(fn_def_tax_assets_liab_net_q, 63, 1), 252), group_zscore(sign(ts_covariance(ts_delta(fn_liab_fair_val_a, 21), log(fn_def_tax_assets_liab_net_q), 63)), sector)) |
||||||
|
|
||||||
|
add(group_zscore(ts_av_diff(ts_backfill(multi_factor_acceleration_score_derivative, 126), 21), sector), ts_rank(ts_delay(signed_power(log(multi_factor_acceleration_score_derivative), 2), 63), 252)) |
||||||
|
|
||||||
|
multiply(subtract(group_zscore(trade_when(log(fn_def_tax_assets_liab_net_q) > ts_mean(log(fn_def_tax_assets_liab_net_q), 252), ts_zscore(log(fn_def_tax_assets_liab_net_q), 63), divide(log(multi_factor_acceleration_score_derivative), fn_liab_fair_val_a)), sector), 0.5), ts_scale(sqrt(abs(fn_liab_fair_val_a)), 21)) |
||||||
|
|
||||||
|
sqrt(ts_rank(multiply(group_zscore(subtract(ts_sum(log(fn_def_tax_assets_liab_net_q), 63), ts_product(log(multi_factor_acceleration_score_derivative), 21)), sector), reverse(kth_element(multi_factor_acceleration_score_derivative, 252, 1))), 126)) |
||||||
|
|
||||||
|
multiply(sign(ts_delta(fn_liab_fair_val_a, 63)), group_zscore(ts_corr(ts_backfill(log(fn_def_tax_assets_liab_net_q), 252), reverse(multi_factor_acceleration_score_derivative), 126), sector)) |
||||||
|
|
||||||
|
ts_zscore(divide(add(group_zscore(kth_element(multi_factor_acceleration_score_derivative, 126, 1), sector), ts_rank(signed_power(log(fn_def_tax_assets_liab_net_q), 3), 63)), ts_delay(sqrt(abs(fn_liab_fair_val_a)), 21)), 252) |
||||||
|
|
||||||
|
multiply(ts_rank(group_zscore(ts_decay_linear(log(fn_def_tax_assets_liab_net_q), 252), sector), 126), subtract(1, ts_scale(divide(multi_factor_acceleration_score_derivative, fn_liab_fair_val_a), 63))) |
||||||
|
|
||||||
|
add(reverse(ts_zscore(multi_factor_acceleration_score_derivative, 21)), group_zscore(ts_sum(trade_when(log(fn_def_tax_assets_liab_net_q) > ts_mean(log(fn_def_tax_assets_liab_net_q), 63), signed_power(ts_delta(fn_liab_fair_val_a, 126), 2), ts_backfill(log(fn_def_tax_assets_liab_net_q), 63)), 252), sector)) |
||||||
|
|
||||||
|
multiply(sqrt(ts_rank(group_zscore(ts_product(log(multi_factor_acceleration_score_derivative), 63), sector), 126)), ts_av_diff(signed_power(ts_delay(fn_liab_fair_val_a, 21), 3), 252)) |
||||||
@ -0,0 +1,19 @@ |
|||||||
|
multiply(ts_rank(divide(ts_backfill(fnd6_drc, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_drc, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
|
multiply(ts_rank(divide(ts_backfill(fnd6_spce, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_spce, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
|
multiply(ts_rank(divide(ts_backfill(fnd6_newqeventv110_spceepsq, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqeventv110_spceepsq, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
|
multiply(ts_rank(divide(ts_backfill(fnd6_newqv1300_spcedq, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqv1300_spcedq, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
|
multiply(ts_rank(divide(ts_backfill(fnd6_newqeventv110_spcepd12, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqeventv110_spcepd12, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
|
multiply(ts_rank(divide(ts_backfill(fnd6_newqeventv110_spceeps12, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqeventv110_spceeps12, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
|
multiply(ts_rank(divide(ts_backfill(fnd6_newqeventv110_glceaq, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqeventv110_glceaq, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
|
multiply(ts_rank(divide(ts_backfill(fn_def_tax_assets_liab_net_q, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fn_def_tax_assets_liab_net_q, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
|
multiply(ts_rank(divide(ts_backfill(fn_liab_fair_val_a, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fn_liab_fair_val_a, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
|
multiply(ts_rank(divide(ts_backfill(multi_factor_acceleration_score_derivative, 252), assets), 126), subtract(group_rank(divide(ts_backfill(multi_factor_acceleration_score_derivative, 252), assets), sector), 0.5)) |
||||||
@ -0,0 +1,294 @@ |
|||||||
|
任务指令 |
||||||
|
【策略类型】优化因子 |
||||||
|
multiply(ts_rank(divide(ts_backfill(fnd6_drc, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_drc, 252), assets), sector), 0.5)) |
||||||
|
【当前情况】 |
||||||
|
{ |
||||||
|
"id": "88qMa31V", |
||||||
|
"type": "REGULAR", |
||||||
|
"author": "YC93384", |
||||||
|
"settings": { |
||||||
|
"instrumentType": "EQUITY", |
||||||
|
"region": "USA", |
||||||
|
"universe": "TOP3000", |
||||||
|
"delay": 1, |
||||||
|
"decay": 0, |
||||||
|
"neutralization": "INDUSTRY", |
||||||
|
"truncation": 0.08, |
||||||
|
"pasteurization": "ON", |
||||||
|
"unitHandling": "VERIFY", |
||||||
|
"nanHandling": "OFF", |
||||||
|
"maxTrade": "OFF", |
||||||
|
"language": "FASTEXPR", |
||||||
|
"visualization": false, |
||||||
|
"startDate": "2018-01-20", |
||||||
|
"endDate": "2023-01-20" |
||||||
|
}, |
||||||
|
"regular": { |
||||||
|
"code": "multiply(ts_rank(divide(ts_backfill(fnd6_drc, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_drc, 252), assets), sector), 0.5))", |
||||||
|
"description": null, |
||||||
|
"operatorCount": 8 |
||||||
|
}, |
||||||
|
"dateCreated": "2025-12-25T03:16:45-05:00", |
||||||
|
"dateSubmitted": null, |
||||||
|
"dateModified": "2025-12-25T03:16:45-05:00", |
||||||
|
"name": null, |
||||||
|
"favorite": false, |
||||||
|
"hidden": false, |
||||||
|
"color": null, |
||||||
|
"category": null, |
||||||
|
"tags": [], |
||||||
|
"classifications": [ |
||||||
|
{ |
||||||
|
"id": "DATA_USAGE:SINGLE_DATA_SET", |
||||||
|
"name": "Single Data Set Alpha" |
||||||
|
} |
||||||
|
], |
||||||
|
"grade": "INFERIOR", |
||||||
|
"stage": "IS", |
||||||
|
"status": "UNSUBMITTED", |
||||||
|
"is": { |
||||||
|
"pnl": 2429129, |
||||||
|
"bookSize": 20000000, |
||||||
|
"longCount": 966, |
||||||
|
"shortCount": 1435, |
||||||
|
"turnover": 0.028, |
||||||
|
"returns": 0.0491, |
||||||
|
"drawdown": 0.0485, |
||||||
|
"margin": 0.003504, |
||||||
|
"sharpe": 1.36, |
||||||
|
"fitness": 0.85, |
||||||
|
"startDate": "2018-01-20", |
||||||
|
"checks": [ |
||||||
|
{ |
||||||
|
"name": "LOW_SHARPE", |
||||||
|
"result": "PASS", |
||||||
|
"limit": 1.25, |
||||||
|
"value": 1.36 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "LOW_FITNESS", |
||||||
|
"result": "FAIL", |
||||||
|
"limit": 1.0, |
||||||
|
"value": 0.85 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "LOW_TURNOVER", |
||||||
|
"result": "PASS", |
||||||
|
"limit": 0.01, |
||||||
|
"value": 0.028 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "HIGH_TURNOVER", |
||||||
|
"result": "PASS", |
||||||
|
"limit": 0.7, |
||||||
|
"value": 0.028 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "CONCENTRATED_WEIGHT", |
||||||
|
"result": "PASS" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "LOW_SUB_UNIVERSE_SHARPE", |
||||||
|
"result": "PASS", |
||||||
|
"limit": 0.59, |
||||||
|
"value": 0.68 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "SELF_CORRELATION", |
||||||
|
"result": "PENDING" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "MATCHES_COMPETITION", |
||||||
|
"result": "PASS", |
||||||
|
"competitions": [ |
||||||
|
{ |
||||||
|
"id": "challenge", |
||||||
|
"name": "Challenge" |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
] |
||||||
|
}, |
||||||
|
"os": null, |
||||||
|
"train": null, |
||||||
|
"test": null, |
||||||
|
"prod": null, |
||||||
|
"competitions": null, |
||||||
|
"themes": null, |
||||||
|
"pyramids": null, |
||||||
|
"pyramidThemes": null, |
||||||
|
"team": null |
||||||
|
} |
||||||
|
*=========================================================================================* |
||||||
|
输出格式: |
||||||
|
输出必须是且仅是纯文本。 |
||||||
|
每一行是一个完整、独立、语法正确的WebSim表达式。 |
||||||
|
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。 |
||||||
|
===================== !!! 重点(输出方式) !!! ===================== |
||||||
|
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。 |
||||||
|
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西): |
||||||
|
表达式 |
||||||
|
表达式 |
||||||
|
表达式 |
||||||
|
... |
||||||
|
表达式 |
||||||
|
================================================================= |
||||||
|
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。 |
||||||
|
以下是我的账号有权限使用的操作符, 请严格按照操作符, 以及我提供的数据集, 进行生成,组合 10 个alpha: |
||||||
|
|
||||||
|
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子 |
||||||
|
|
||||||
|
========================= 操作符开始 =======================================注意: Operator: 后面的是操作符, |
||||||
|
Description: 此字段后面的是操作符对应的描述或使用说明, Description字段后面的内容是使用说明, 不是操作符 |
||||||
|
特别注意!!!! 必须按照操作符字段Operator的使用说明生成 alphaOperator: abs(x) |
||||||
|
Description: Absolute value of x |
||||||
|
Operator: add(x, y, filter = false) |
||||||
|
Description: Add all inputs (at least 2 inputs required). If filter = true, filter all input NaN to 0 before adding |
||||||
|
Operator: densify(x) |
||||||
|
Description: Converts a grouping field of many buckets into lesser number of only available buckets so as to make working with grouping fields computationally efficient |
||||||
|
Operator: divide(x, y) |
||||||
|
Description: x / y |
||||||
|
Operator: inverse(x) |
||||||
|
Description: 1 / x |
||||||
|
Operator: log(x) |
||||||
|
Description: Natural logarithm. For example: Log(high/low) uses natural logarithm of high/low ratio as stock weights. |
||||||
|
Operator: max(x, y, ..) |
||||||
|
Description: Maximum value of all inputs. At least 2 inputs are required |
||||||
|
Operator: min(x, y ..) |
||||||
|
Description: Minimum value of all inputs. At least 2 inputs are required |
||||||
|
Operator: multiply(x ,y, ... , filter=false) |
||||||
|
Description: Multiply all inputs. At least 2 inputs are required. Filter sets the NaN values to 1 |
||||||
|
Operator: power(x, y) |
||||||
|
Description: x ^ y |
||||||
|
Operator: reverse(x) |
||||||
|
Description: - x |
||||||
|
Operator: sign(x) |
||||||
|
Description: if input > 0, return 1; if input < 0, return -1; if input = 0, return 0; if input = NaN, return NaN; |
||||||
|
Operator: signed_power(x, y) |
||||||
|
Description: x raised to the power of y such that final result preserves sign of x |
||||||
|
Operator: sqrt(x) |
||||||
|
Description: Square root of x |
||||||
|
Operator: subtract(x, y, filter=false) |
||||||
|
Description: x-y. If filter = true, filter all input NaN to 0 before subtracting |
||||||
|
Operator: and(input1, input2) |
||||||
|
Description: Logical AND operator, returns true if both operands are true and returns false otherwise |
||||||
|
Operator: if_else(input1, input2, input 3) |
||||||
|
Description: If input1 is true then return input2 else return input3. |
||||||
|
Operator: input1 < input2 |
||||||
|
Description: If input1 < input2 return true, else return false |
||||||
|
Operator: input1 <= input2 |
||||||
|
Description: Returns true if input1 <= input2, return false otherwise |
||||||
|
Operator: input1 == input2 |
||||||
|
Description: Returns true if both inputs are same and returns false otherwise |
||||||
|
Operator: input1 > input2 |
||||||
|
Description: Logic comparison operators to compares two inputs |
||||||
|
Operator: input1 >= input2 |
||||||
|
Description: Returns true if input1 >= input2, return false otherwise |
||||||
|
Operator: input1!= input2 |
||||||
|
Description: Returns true if both inputs are NOT the same and returns false otherwise |
||||||
|
Operator: is_nan(input) |
||||||
|
Description: If (input == NaN) return 1 else return 0 |
||||||
|
Operator: not(x) |
||||||
|
Description: Returns the logical negation of x. If x is true (1), it returns false (0), and if input is false (0), it returns true (1). |
||||||
|
Operator: or(input1, input2) |
||||||
|
Description: Logical OR operator returns true if either or both inputs are true and returns false otherwise |
||||||
|
Operator: days_from_last_change(x) |
||||||
|
Description: Amount of days since last change of x |
||||||
|
Operator: hump(x, hump = 0.01) |
||||||
|
Description: Limits amount and magnitude of changes in input (thus reducing turnover) |
||||||
|
Operator: kth_element(x, d, k) |
||||||
|
Description: Returns K-th value of input by looking through lookback days. This operator can be used to backfill missing data if k=1 |
||||||
|
Operator: last_diff_value(x, d) |
||||||
|
Description: Returns last x value not equal to current x value from last d days |
||||||
|
Operator: ts_arg_max(x, d) |
||||||
|
Description: Returns the relative index of the max value in the time series for the past d days. If the current day has the max value for the past d days, it returns 0. If previous day has the max value for the past d days, it returns 1 |
||||||
|
Operator: ts_arg_min(x, d) |
||||||
|
Description: Returns the relative index of the min value in the time series for the past d days; If the current day has the min value for the past d days, it returns 0; If previous day has the min value for the past d days, it returns 1. |
||||||
|
Operator: ts_av_diff(x, d) |
||||||
|
Description: Returns x - tsmean(x, d), but deals with NaNs carefully. That is NaNs are ignored during mean computation |
||||||
|
Operator: ts_backfill(x,lookback = d, k=1, ignore="NAN") |
||||||
|
Description: Backfill is the process of replacing the NAN or 0 values by a meaningful value (i.e., a first non-NaN value) |
||||||
|
Operator: ts_corr(x, y, d) |
||||||
|
Description: Returns correlation of x and y for the past d days |
||||||
|
Operator: ts_count_nans(x ,d) |
||||||
|
Description: Returns the number of NaN values in x for the past d days |
||||||
|
Operator: ts_covariance(y, x, d) |
||||||
|
Description: Returns covariance of y and x for the past d days |
||||||
|
Operator: ts_decay_linear(x, d, dense = false) |
||||||
|
Description: Returns the linear decay on x for the past d days. Dense parameter=false means operator works in sparse mode and we treat NaN as 0. In dense mode we do not. |
||||||
|
Operator: ts_delay(x, d) |
||||||
|
Description: Returns x value d days ago |
||||||
|
Operator: ts_delta(x, d) |
||||||
|
Description: Returns x - ts_delay(x, d) |
||||||
|
Operator: ts_mean(x, d) |
||||||
|
Description: Returns average value of x for the past d days. |
||||||
|
Operator: ts_product(x, d) |
||||||
|
Description: Returns product of x for the past d days |
||||||
|
Operator: ts_quantile(x,d, driver="gaussian" ) |
||||||
|
Description: It calculates ts_rank and apply to its value an inverse cumulative density function from driver distribution. Possible values of driver (optional ) are "gaussian", "uniform", "cauchy" distribution where "gaussian" is the default. |
||||||
|
Operator: ts_rank(x, d, constant = 0) |
||||||
|
Description: Rank the values of x for each instrument over the past d days, then return the rank of the current value + constant. If not specified, by default, constant = 0. |
||||||
|
Operator: ts_regression(y, x, d, lag = 0, rettype = 0) |
||||||
|
Description: Returns various parameters related to regression function |
||||||
|
Operator: ts_scale(x, d, constant = 0) |
||||||
|
Description: Returns (x - ts_min(x, d)) / (ts_max(x, d) - ts_min(x, d)) + constant. This operator is similar to scale down operator but acts in time series space |
||||||
|
Operator: ts_std_dev(x, d) |
||||||
|
Description: Returns standard deviation of x for the past d days |
||||||
|
Operator: ts_step(1) |
||||||
|
Description: Returns days' counter |
||||||
|
Operator: ts_sum(x, d) |
||||||
|
Description: Sum values of x for the past d days. |
||||||
|
Operator: ts_zscore(x, d) |
||||||
|
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean: (x - tsmean(x,d)) / tsstddev(x,d). This operator may help reduce outliers and drawdown. |
||||||
|
Operator: normalize(x, useStd = false, limit = 0.0) |
||||||
|
Description: Calculates the mean value of all valid alpha values for a certain date, then subtracts that mean from each element |
||||||
|
Operator: quantile(x, driver = gaussian, sigma = 1.0) |
||||||
|
Description: Rank the raw vector, shift the ranked Alpha vector, apply distribution (gaussian, cauchy, uniform). If driver is uniform, it simply subtract each Alpha value with the mean of all Alpha values in the Alpha vector |
||||||
|
Operator: rank(x, rate=2) |
||||||
|
Description: Ranks the input among all the instruments and returns an equally distributed number between 0.0 and 1.0. For precise sort, use the rate as 0 |
||||||
|
Operator: scale(x, scale=1, longscale=1, shortscale=1) |
||||||
|
Description: Scales input to booksize. We can also scale the long positions and short positions to separate scales by mentioning additional parameters to the operator |
||||||
|
Operator: winsorize(x, std=4) |
||||||
|
Description: Winsorizes x to make sure that all values in x are between the lower and upper limits, which are specified as multiple of std. |
||||||
|
Operator: zscore(x) |
||||||
|
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean |
||||||
|
Operator: vec_avg(x) |
||||||
|
Description: Taking mean of the vector field x |
||||||
|
Operator: vec_sum(x) |
||||||
|
Description: Sum of vector field x |
||||||
|
Operator: bucket(rank(x), range="0, 1, 0.1" or buckets = "2,5,6,7,10") |
||||||
|
Description: Convert float values into indexes for user-specified buckets. Bucket is useful for creating group values, which can be passed to GROUP as input |
||||||
|
Operator: trade_when(x, y, z) |
||||||
|
Description: Used in order to change Alpha values only under a specified condition and to hold Alpha values in other cases. It also allows to close Alpha positions (assign NaN values) under a specified condition |
||||||
|
Operator: group_backfill(x, group, d, std = 4.0) |
||||||
|
Description: If a certain value for a certain date and instrument is NaN, from the set of same group instruments, calculate winsorized mean of all non-NaN values over last d days |
||||||
|
Operator: group_mean(x, weight, group) |
||||||
|
Description: All elements in group equals to the mean |
||||||
|
Operator: group_neutralize(x, group) |
||||||
|
Description: Neutralizes Alpha against groups. These groups can be subindustry, industry, sector, country or a constant |
||||||
|
Operator: group_rank(x, group) |
||||||
|
Description: Each elements in a group is assigned the corresponding rank in this group |
||||||
|
Operator: group_scale(x, group) |
||||||
|
Description: Normalizes the values in a group to be between 0 and 1. (x - groupmin) / (groupmax - groupmin) |
||||||
|
Operator: group_zscore(x, group) |
||||||
|
Description: Calculates group Z-score - numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean. zscore = (data - mean) / stddev of x for each instrument within its group. |
||||||
|
========================= 操作符结束 ======================================= |
||||||
|
|
||||||
|
========================= 数据字段开始 =======================================注意: data_set_name: 后面的是数据字段(可以使用), description: 此字段后面的是数据字段对应的描述或使用说明(不能使用), description_cn字段后面的内容是中文使用说明(不能使用) |
||||||
|
|
||||||
|
{'id': '98', 'data_set_name': 'fnd6_acdo', 'description': 'Current Assets of Discontinued Operations', 'description_cn': '已终止经营current资产'} |
||||||
|
{'id': '473', 'data_set_name': 'fnd6_newqeventv110_cibegniq', 'description': 'Comp Inc - Beginning Net Income', 'description_cn': 'comp_inc_beginning_net_income'} |
||||||
|
{'id': '517', 'data_set_name': 'fnd6_newqeventv110_glceaq', 'description': 'Gain/Loss on Sale (Core Earnings Adjusted) After-tax', 'description_cn': '税后核心 earnings 润亏'} |
||||||
|
{'id': '624', 'data_set_name': 'fnd6_newqeventv110_spcedq', 'description': 'S&P Core Earnings EPS Diluted', 'description_cn': 'SPCE earnings per share diluted'} |
||||||
|
{'id': '625', 'data_set_name': 'fnd6_newqeventv110_spceeps12', 'description': 'S&P Core Earnings EPS Basic 12MM', 'description_cn': '标普核心 earnings 每股基本值_12M'} |
||||||
|
{'id': '628', 'data_set_name': 'fnd6_newqeventv110_spceepsq', 'description': 'S&P Core Earnings EPS Basic', 'description_cn': '标普核心 earnings 每股基本值'} |
||||||
|
{'id': '629', 'data_set_name': 'fnd6_newqeventv110_spcep12', 'description': 'S&P Core Earnings 12MM - Preliminary', 'description_cn': '标普核心 earnings 12个月 - 预liminary'} |
||||||
|
{'id': '630', 'data_set_name': 'fnd6_newqeventv110_spcepd12', 'description': 'S&P Core Earnings 12MM EPS Diluted - Preliminary', 'description_cn': 'S&P核心 earnings_12个月稀释后每股盈亏平衡点_初步'} |
||||||
|
{'id': '774', 'data_set_name': 'fnd6_newqv1300_spcedq', 'description': 'S&P Core Earnings EPS Diluted', 'description_cn': '标准普尔核心 earnings 每股稀释后利润'} |
||||||
|
{'id': '777', 'data_set_name': 'fnd6_newqv1300_spceepsq', 'description': 'S&P Core Earnings EPS Basic', 'description_cn': '标普核心 earnings EPS 基本'} |
||||||
|
{'id': '872', 'data_set_name': 'fnd6_spce', 'description': 'S&P Core Earnings', 'description_cn': '标准普尔核心 earnings'} |
||||||
|
{'id': '1000', 'data_set_name': 'multi_factor_acceleration_score_derivative', 'description': 'Change in the acceleration of multi-factor score compared to previous period.', 'description_cn': '多因子评分加速度变化 Compared_to_Previous_Period_Multi_Factor_Score_Acceleration_Change'} |
||||||
|
{'id': '2393', 'data_set_name': 'fn_def_tax_assets_liab_net_q', 'description': 'Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.', 'description_cn': '扣除减值准备和递延税负债后,attributable_to_deferred_tax_asset_amount'} |
||||||
|
{'id': '2436', 'data_set_name': 'fn_liab_fair_val_a', 'description': 'Liabilities Fair Value, Recurring, Total', 'description_cn': '看涨期权负债公允价值_ recurring_total'} |
||||||
|
========================= 数据字段结束 ======================================= |
||||||
|
|
||||||
@ -0,0 +1,40 @@ |
|||||||
|
任务指令 |
||||||
|
【策略类型】量化因子开发 |
||||||
|
【现有方案】 |
||||||
|
递延收入 |
||||||
|
假设 |
||||||
|
递延收入较高的公司在未来确认收入时,往往会给市场带来超预期表现。 |
||||||
|
实施方案 |
||||||
|
fnd6_drc字段代表递延收入。为提高数据字段覆盖度,需使用时序回填算子。将递延收入除以总资产以消除企业规模影响。 |
||||||
|
|
||||||
|
需优化的alpha |
||||||
|
ts_backfill(fnd6_drc, 252)/assets |
||||||
|
|
||||||
|
【优化方向】 |
||||||
|
实施优化建议 |
||||||
|
建议采用横截面算子代替原始比率值来确定股票权重。可运用分组算子对同类股票进行横向比较。 |
||||||
|
|
||||||
|
*=========================================================================================* |
||||||
|
|
||||||
|
输出格式: |
||||||
|
输出必须是且仅是纯文本。 |
||||||
|
每一行是一个完整、独立、语法正确的WebSim表达式。 |
||||||
|
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。 |
||||||
|
|
||||||
|
===================== !!! 重点(输出方式) !!! ===================== |
||||||
|
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。 |
||||||
|
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西): |
||||||
|
|
||||||
|
表达式 |
||||||
|
|
||||||
|
表达式 |
||||||
|
|
||||||
|
表达式 |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
表达式 |
||||||
|
================================================================= |
||||||
|
|
||||||
|
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。 |
||||||
|
以下是我的账号有权限使用的操作符, 请严格按照操作符, 以及我提供的数据集, 进行生成,组合 10 个alpha: |
||||||
@ -0,0 +1,135 @@ |
|||||||
|
absl-py==2.3.1 |
||||||
|
aiohappyeyeballs==2.6.1 |
||||||
|
aiohttp==3.13.1 |
||||||
|
aiosignal==1.4.0 |
||||||
|
annotated-types==0.7.0 |
||||||
|
antlr4-python3-runtime==4.9.3 |
||||||
|
anyio==3.7.1 |
||||||
|
asttokens==3.0.0 |
||||||
|
async-timeout==5.0.1 |
||||||
|
attrs==25.4.0 |
||||||
|
backtrader==1.9.78.123 |
||||||
|
beautifulsoup4==4.14.2 |
||||||
|
build==1.3.0 |
||||||
|
certifi==2025.10.5 |
||||||
|
cffi==2.0.0 |
||||||
|
charset-normalizer==3.4.4 |
||||||
|
click==8.3.0 |
||||||
|
comm==0.2.3 |
||||||
|
contourpy==1.3.2 |
||||||
|
curl_cffi==0.13.0 |
||||||
|
cycler==0.12.1 |
||||||
|
decorator==5.2.1 |
||||||
|
distro==1.9.0 |
||||||
|
dnspython==2.8.0 |
||||||
|
einops==0.7.0 |
||||||
|
email-validator==2.3.0 |
||||||
|
exceptiongroup==1.3.0 |
||||||
|
executing==2.2.1 |
||||||
|
fastapi==0.104.1 |
||||||
|
filelock==3.20.0 |
||||||
|
fonttools==4.60.1 |
||||||
|
frozendict==2.4.6 |
||||||
|
frozenlist==1.8.0 |
||||||
|
fsspec==2025.9.0 |
||||||
|
greenlet @ file:///private/var/folders/c_/qfmhj66j0tn016nkx_th4hxm0000gp/T/abs_a6r9b0ikr4/croot/greenlet_1733860079251/work |
||||||
|
grpcio==1.75.1 |
||||||
|
h11==0.16.0 |
||||||
|
httpcore==1.0.9 |
||||||
|
httptools==0.7.1 |
||||||
|
httpx==0.26.0 |
||||||
|
idna==3.11 |
||||||
|
ipython==8.37.0 |
||||||
|
ipywidgets==8.1.7 |
||||||
|
itsdangerous==2.2.0 |
||||||
|
jedi==0.19.2 |
||||||
|
Jinja2==3.1.6 |
||||||
|
jiter==0.12.0 |
||||||
|
joblib==1.5.2 |
||||||
|
jupyterlab_widgets==3.0.15 |
||||||
|
kiwisolver==1.4.9 |
||||||
|
lightning==2.5.5 |
||||||
|
lightning-utilities==0.15.2 |
||||||
|
Markdown==3.9 |
||||||
|
markdown-it-py==4.0.0 |
||||||
|
MarkupSafe==3.0.3 |
||||||
|
matplotlib==3.10.7 |
||||||
|
matplotlib-inline==0.1.7 |
||||||
|
mdurl==0.1.2 |
||||||
|
mpmath==1.3.0 |
||||||
|
multidict==6.7.0 |
||||||
|
multitasking==0.0.12 |
||||||
|
networkx==3.4.2 |
||||||
|
numpy==1.26.4 |
||||||
|
omegaconf==2.3.0 |
||||||
|
openai==2.8.1 |
||||||
|
orjson==3.11.4 |
||||||
|
packaging==25.0 |
||||||
|
pandas==2.3.3 |
||||||
|
pandas-stubs==2.3.2.250926 |
||||||
|
parso==0.8.5 |
||||||
|
peewee==3.18.2 |
||||||
|
pexpect==4.9.0 |
||||||
|
pillow==12.0.0 |
||||||
|
platformdirs==4.5.0 |
||||||
|
prompt_toolkit==3.0.52 |
||||||
|
propcache==0.4.1 |
||||||
|
protobuf==5.28.3 |
||||||
|
psycopg2-binary==2.9.9 |
||||||
|
ptyprocess==0.7.0 |
||||||
|
pure_eval==0.2.3 |
||||||
|
pycparser==2.23 |
||||||
|
pydantic==2.12.3 |
||||||
|
pydantic-extra-types==2.10.6 |
||||||
|
pydantic-settings==2.12.0 |
||||||
|
pydantic_core==2.41.4 |
||||||
|
Pygments==2.19.2 |
||||||
|
pyparsing==3.2.5 |
||||||
|
pyproject_hooks==1.2.0 |
||||||
|
python-dateutil==2.9.0.post0 |
||||||
|
python-dotenv==1.2.1 |
||||||
|
python-multipart==0.0.20 |
||||||
|
pytorch-forecasting==1.5.0 |
||||||
|
pytorch-lightning==2.4.0 |
||||||
|
pytorch-tabnet==4.1.0 |
||||||
|
pytorch-tabular==1.1.1 |
||||||
|
pytz==2025.2 |
||||||
|
PyYAML==6.0.3 |
||||||
|
requests==2.32.5 |
||||||
|
rich==14.2.0 |
||||||
|
scikit-learn==1.7.2 |
||||||
|
scipy==1.15.3 |
||||||
|
seaborn==0.13.2 |
||||||
|
six==1.17.0 |
||||||
|
sniffio==1.3.1 |
||||||
|
soupsieve==2.8 |
||||||
|
stack-data==0.6.3 |
||||||
|
starlette==0.27.0 |
||||||
|
sympy==1.14.0 |
||||||
|
TA-Lib==0.6.8 |
||||||
|
tensorboard==2.20.0 |
||||||
|
tensorboard-data-server==0.7.2 |
||||||
|
threadpoolctl==3.6.0 |
||||||
|
tomli==2.3.0 |
||||||
|
torch==2.2.2 |
||||||
|
torchaudio==2.2.2 |
||||||
|
torchinfo==1.8.0 |
||||||
|
torchmetrics==1.5.2 |
||||||
|
torchvision==0.17.2 |
||||||
|
tqdm==4.67.1 |
||||||
|
traitlets==5.14.3 |
||||||
|
typing-inspection==0.4.2 |
||||||
|
typing_extensions==4.15.0 |
||||||
|
tzdata==2025.2 |
||||||
|
ujson==5.11.0 |
||||||
|
urllib3==2.5.0 |
||||||
|
uvicorn==0.24.0 |
||||||
|
uvloop==0.22.1 |
||||||
|
watchfiles==1.1.1 |
||||||
|
wcwidth==0.2.14 |
||||||
|
websockets==15.0.1 |
||||||
|
Werkzeug==3.1.3 |
||||||
|
widgetsnbextension==4.0.14 |
||||||
|
xgboost==3.1.0 |
||||||
|
yarl==1.22.0 |
||||||
|
yfinance==0.2.66 |
||||||
@ -1,884 +1,39 @@ |
|||||||
group_neutralize(ts_sum(if_else(implied_volatility_mean_10 > implied_volatility_mean_20, returns, -returns), 5), sector) |
multiply(add(group_zscore(ts_rank(subtract(log(fn_def_tax_assets_liab_net_q), ts_sum(fn_liab_fair_val_a, 252)), 21), sector), ts_zscore(divide(log(multi_factor_acceleration_score_derivative), power(ts_delta(fn_liab_fair_val_a, 126), 2)), 252)), sqrt(reverse(ts_scale(signed_power(multi_factor_acceleration_score_derivative, 3), 63)))) |
||||||
|
|
||||||
group_neutralize(ts_delta(log(volume), 10) * ts_rank(close, 20), sector) |
multiply(ts_rank(kth_element(fn_def_tax_assets_liab_net_q, 63, 1), 252), group_zscore(sign(ts_covariance(ts_delta(fn_liab_fair_val_a, 21), log(fn_def_tax_assets_liab_net_q), 63)), sector)) |
||||||
|
|
||||||
group_neutralize(ts_corr(returns, scl12_sentiment, 30) * ts_std_dev(returns, 60), sector) |
add(group_zscore(ts_av_diff(ts_backfill(multi_factor_acceleration_score_derivative, 126), 21), sector), ts_rank(ts_delay(signed_power(log(multi_factor_acceleration_score_derivative), 2), 63), 252)) |
||||||
|
|
||||||
if_else(volume > ts_mean(volume, 30), ts_rank(returns, 10), -ts_rank(returns, 10)) |
multiply(subtract(group_zscore(trade_when(log(fn_def_tax_assets_liab_net_q) > ts_mean(log(fn_def_tax_assets_liab_net_q), 252), ts_zscore(log(fn_def_tax_assets_liab_net_q), 63), divide(log(multi_factor_acceleration_score_derivative), fn_liab_fair_val_a)), sector), 0.5), ts_scale(sqrt(abs(fn_liab_fair_val_a)), 21)) |
||||||
|
|
||||||
ts_sum(if_else(ts_rank(close, 5) > ts_rank(close, 20), ts_delta(close, 1), -ts_delta(close, 1)), 10) |
sqrt(ts_rank(multiply(group_zscore(subtract(ts_sum(log(fn_def_tax_assets_liab_net_q), 63), ts_product(log(multi_factor_acceleration_score_derivative), 21)), sector), reverse(kth_element(multi_factor_acceleration_score_derivative, 252, 1))), 126)) |
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(vwap, volume, 20), 5), sector) |
multiply(sign(ts_delta(fn_liab_fair_val_a, 63)), group_zscore(ts_corr(ts_backfill(log(fn_def_tax_assets_liab_net_q), 252), reverse(multi_factor_acceleration_score_derivative), 126), sector)) |
||||||
|
|
||||||
ts_av_diff(implied_volatility_mean_180, 30) * ts_zscore(returns, 60) |
ts_zscore(divide(add(group_zscore(kth_element(multi_factor_acceleration_score_derivative, 126, 1), sector), ts_rank(signed_power(log(fn_def_tax_assets_liab_net_q), 3), 63)), ts_delay(sqrt(abs(fn_liab_fair_val_a)), 21)), 252) |
||||||
|
|
||||||
group_neutralize(ts_rank(pcr_oi_30, 10) * ts_delta(close, 5), sector) |
multiply(ts_rank(group_zscore(ts_decay_linear(log(fn_def_tax_assets_liab_net_q), 252), sector), 126), subtract(1, ts_scale(divide(multi_factor_acceleration_score_derivative, fn_liab_fair_val_a), 63))) |
||||||
|
|
||||||
ts_sum(signed_power(ts_delta(log(close), 2), sign(ts_delta(volume, 2))), 5) |
add(reverse(ts_zscore(multi_factor_acceleration_score_derivative, 21)), group_zscore(ts_sum(trade_when(log(fn_def_tax_assets_liab_net_q) > ts_mean(log(fn_def_tax_assets_liab_net_q), 63), signed_power(ts_delta(fn_liab_fair_val_a, 126), 2), ts_backfill(log(fn_def_tax_assets_liab_net_q), 63)), 252), sector)) |
||||||
|
|
||||||
scale(ts_rank(close, 10) - ts_rank(vwap, 10)) |
multiply(sqrt(ts_rank(group_zscore(ts_product(log(multi_factor_acceleration_score_derivative), 63), sector), 126)), ts_av_diff(signed_power(ts_delay(fn_liab_fair_val_a, 21), 3), 252)) |
||||||
|
|
||||||
if_else(ts_std_dev(returns, 30) > ts_mean(ts_std_dev(returns, 5), 30), ts_rank(close, 5), ts_rank(-close, 5)) |
multiply(ts_rank(divide(ts_backfill(fnd6_drc, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_drc, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(close, 2), 10) * ts_sum(volume, 5), sector) |
multiply(ts_rank(divide(ts_backfill(fnd6_spce, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_spce, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
ts_delta(ts_corr(close, volume, 10), 5) * ts_scale(close, 20) |
multiply(ts_rank(divide(ts_backfill(fnd6_newqeventv110_spceepsq, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqeventv110_spceepsq, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
group_neutralize(ts_rank(fscore_momentum, 60) * ts_zscore(returns, 30), sector) |
multiply(ts_rank(divide(ts_backfill(fnd6_newqv1300_spcedq, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqv1300_spcedq, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
ts_sum(if_else(ts_rank(close, 20) > ts_rank(vwap, 20), log(volume), -log(volume)), 15) |
multiply(ts_rank(divide(ts_backfill(fnd6_newqeventv110_spcepd12, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqeventv110_spcepd12, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
if_else(historical_volatility_60 > ts_mean(historical_volatility_60, 60), ts_rank(returns, 10), ts_rank(-returns, 10)) |
multiply(ts_rank(divide(ts_backfill(fnd6_newqeventv110_spceeps12, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqeventv110_spceeps12, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
ts_regression(returns, ts_delta(scl12_sentiment, 1), 30, 0, 0) |
multiply(ts_rank(divide(ts_backfill(fnd6_newqeventv110_glceaq, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_newqeventv110_glceaq, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
group_neutralize(ts_sum(signed_power(ts_delta(close, 1), sign(ts_delta(pcr_vol_10, 1))), 5), sector) |
multiply(ts_rank(divide(ts_backfill(fn_def_tax_assets_liab_net_q, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fn_def_tax_assets_liab_net_q, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
ts_av_diff(implied_volatility_mean_skew_30, 20) * ts_zscore(close, 50) |
multiply(ts_rank(divide(ts_backfill(fn_liab_fair_val_a, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fn_liab_fair_val_a, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
if_else(ts_mean(volume, 10) > ts_mean(volume, 30), ts_rank(close, 5), -ts_rank(close, 10)) |
multiply(ts_rank(divide(ts_backfill(multi_factor_acceleration_score_derivative, 252), assets), 126), subtract(group_rank(divide(ts_backfill(multi_factor_acceleration_score_derivative, 252), assets), sector), 0.5)) |
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(fscore_value, returns, 40), 10), sector) |
|
||||||
|
|
||||||
ts_sum(if_else(ts_delta(log(volume), 5) > 0, ts_delta(close, 1), -ts_delta(close, 1)), 8) |
|
||||||
|
|
||||||
ts_corr(ts_rank(close, 5), ts_rank(volume, 20), 10) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(vwap, 3), 15) * ts_std_dev(returns, 20), sector) |
|
||||||
|
|
||||||
if_else(pcr_oi_90 > ts_mean(pcr_oi_90, 30), ts_rank(returns, 10), -ts_rank(returns, 10)) |
|
||||||
|
|
||||||
ts_av_diff(fscore_growth, 20) * ts_zscore(ts_delta(close, 2), 40) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(implied_volatility_call_30, returns, 30), 10), sector) |
|
||||||
|
|
||||||
ts_sum(signed_power(ts_delta(vwap, 1), sign(ts_delta(fscore_profitability, 5))), 10) |
|
||||||
|
|
||||||
scale(ts_rank(ts_sum(returns, 5), 20) - ts_rank(ts_sum(volume, 5), 20)) |
|
||||||
|
|
||||||
if_else(beta_last_30_days_spy > ts_mean(beta_last_30_days_spy, 60), ts_rank(close, 5), ts_rank(-close, 10)) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(fscore_quality, 10), 20) * ts_zscore(returns, 30), sector) |
|
||||||
|
|
||||||
ts_delta(ts_corr(close, parkinson_volatility_30, 20), 5) * ts_scale(close, 15) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(rp_css_earnings, 40) * ts_delta(close, 3), sector) |
|
||||||
|
|
||||||
ts_sum(if_else(ts_rank(close, 15) > ts_rank(volume, 15), ts_delta(close, 1), -ts_delta(close, 1)), 10) |
|
||||||
|
|
||||||
if_else(implied_volatility_mean_360 > ts_mean(implied_volatility_mean_360, 90), ts_rank(returns, 15), ts_rank(-returns, 15)) |
|
||||||
|
|
||||||
ts_regression(returns, ts_delta(rp_nip_price, 1), 25, 0, 0) |
|
||||||
|
|
||||||
group_neutralize(ts_sum(signed_power(ts_delta(close, 1), sign(ts_delta(call_breakeven_30, 1))), 5), sector) |
|
||||||
|
|
||||||
ts_av_diff(implied_volatility_mean_skew_120, 30) * ts_zscore(returns, 50) |
|
||||||
|
|
||||||
if_else(ts_mean(adv20, 10) > ts_mean(adv20, 30), ts_rank(close, 8), -ts_rank(close, 12)) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(forward_price_60, returns, 35), 10), sector) |
|
||||||
|
|
||||||
ts_sum(if_else(ts_delta(log(adv20), 5) > 0, ts_delta(close, 1), -ts_delta(close, 1)), 12) |
|
||||||
|
|
||||||
ts_corr(ts_rank(vwap, 8), ts_rank(pcr_vol_20, 25), 15) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(put_breakeven_30, 5), 20) * ts_std_dev(returns, 25), sector) |
|
||||||
|
|
||||||
if_else(pcr_vol_30 > ts_mean(pcr_vol_30, 30), ts_rank(returns, 10), -ts_rank(returns, 10)) |
|
||||||
|
|
||||||
ts_av_diff(fscore_total, 25) * ts_zscore(ts_delta(close, 3), 60) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(implied_volatility_call_90, returns, 40), 10), sector) |
|
||||||
|
|
||||||
ts_sum(signed_power(ts_delta(close, 2), sign(ts_delta(fscore_surface_accel, 7))), 8) |
|
||||||
|
|
||||||
scale(ts_rank(ts_sum(returns, 7), 25) - ts_rank(ts_sum(adv20, 7), 25)) |
|
||||||
|
|
||||||
if_else(beta_last_90_days_spy > ts_mean(beta_last_90_days_spy, 90), ts_rank(close, 10), ts_rank(-close, 15)) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(systematic_risk_last_30_days, 15), 30) * ts_zscore(returns, 40), sector) |
|
||||||
|
|
||||||
ts_delta(ts_corr(close, nws18_nip, 25), 7) * ts_scale(close, 20) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(rp_css_ptg, 50) * ts_delta(close, 4), sector) |
|
||||||
|
|
||||||
ts_sum(if_else(ts_rank(vwap, 20) > ts_rank(adv20, 20), ts_delta(close, 1), -ts_delta(close, 1)), 15) |
|
||||||
|
|
||||||
if_else(implied_volatility_mean_720 > ts_mean(implied_volatility_mean_720, 120), ts_rank(returns, 20), ts_rank(-returns, 20)) |
|
||||||
|
|
||||||
ts_regression(returns, ts_delta(scl12_buzz, 1), 20, 0, 0) |
|
||||||
|
|
||||||
group_neutralize(ts_sum(signed_power(ts_delta(close, 1), sign(ts_delta(option_breakeven_90, 1))), 6), sector) |
|
||||||
|
|
||||||
ts_av_diff(implied_volatility_mean_skew_10, 15) * ts_zscore(returns, 30) |
|
||||||
|
|
||||||
if_else(ts_mean(volume, 15) > ts_mean(volume, 45), ts_rank(close, 10), -ts_rank(close, 20)) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(forward_price_180, returns, 45), 10), sector) |
|
||||||
|
|
||||||
ts_sum(if_else(ts_delta(log(volume), 7) > 0, ts_delta(close, 2), -ts_delta(close, 2)), 10) |
|
||||||
|
|
||||||
ts_corr(ts_rank(close, 10), ts_rank(pcr_oi_120, 30), 20) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(call_breakeven_180, 7), 25) * ts_std_dev(returns, 30), sector) |
|
||||||
|
|
||||||
if_else(pcr_vol_270 > ts_mean(pcr_vol_270, 30), ts_rank(returns, 12), -ts_rank(returns, 12)) |
|
||||||
|
|
||||||
ts_av_diff(fscore_surface, 30) * ts_zscore(ts_delta(close, 4), 70) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(implied_volatility_call_270, returns, 50), 10), sector) |
|
||||||
|
|
||||||
ts_sum(signed_power(ts_delta(vwap, 2), sign(ts_delta(fscore_momentum, 10))), 12) |
|
||||||
|
|
||||||
scale(ts_rank(ts_sum(returns, 10), 30) - ts_rank(ts_sum(pcr_oi_20, 10), 30)) |
|
||||||
|
|
||||||
if_else(unsystematic_risk_last_60_days > ts_mean(unsystematic_risk_last_60_days, 120), ts_rank(close, 12), ts_rank(-close, 18)) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(beta_last_60_days_spy, 20), 35) * ts_zscore(returns, 45), sector) |
|
||||||
|
|
||||||
ts_delta(ts_corr(close, rp_ess_price, 30), 10) * ts_scale(close, 25) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(rp_css_dividends, 60) * ts_delta(close, 5), sector) |
|
||||||
|
|
||||||
ts_sum(if_else(ts_rank(close, 25) > ts_rank(volume, 25), ts_delta(close, 2), -ts_delta(close, 2)), 20) |
|
||||||
|
|
||||||
if_else(parkinson_volatility_90 > ts_mean(parkinson_volatility_90, 60), ts_rank(returns, 15), ts_rank(-returns, 15)) |
|
||||||
|
|
||||||
ts_regression(returns, ts_delta(fscore_profitability, 2), 35, 0, 0) |
|
||||||
|
|
||||||
group_neutralize(ts_sum(signed_power(ts_delta(close, 1), sign(ts_delta(put_breakeven_270, 1))), 7), sector) |
|
||||||
|
|
||||||
ts_av_diff(implied_volatility_mean_150, 40) * ts_zscore(returns, 60) |
|
||||||
|
|
||||||
if_else(ts_mean(adv20, 20) > ts_mean(adv20, 60), ts_rank(close, 15), -ts_rank(close, 25)) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(forward_price_720, returns, 60), 10), sector) |
|
||||||
|
|
||||||
ts_sum(if_else(ts_delta(log(adv20), 10) > 0, ts_delta(close, 3), -ts_delta(close, 3)), 15) |
|
||||||
|
|
||||||
ts_corr(ts_rank(vwap, 12), ts_rank(pcr_vol_360, 40), 25) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(option_breakeven_720, 10), 30) * ts_std_dev(returns, 35), sector) |
|
||||||
|
|
||||||
if_else(pcr_oi_270 > ts_mean(pcr_oi_270, 30), ts_rank(returns, 15), -ts_rank(returns, 15)) |
|
||||||
|
|
||||||
ts_av_diff(fscore_bfl_surface_accel, 35) * ts_zscore(ts_delta(close, 5), 80) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(implied_volatility_call_1080, returns, 70), 10), sector) |
|
||||||
|
|
||||||
ts_sum(signed_power(ts_delta(close, 3), sign(ts_delta(analyst_revision_rank_derivative, 15))), 15) |
|
||||||
|
|
||||||
scale(ts_rank(ts_sum(returns, 12), 35) - ts_rank(ts_sum(pcr_oi_90, 12), 35)) |
|
||||||
|
|
||||||
if_else(correlation_last_90_days_spy > ts_mean(correlation_last_90_days_spy, 180), ts_rank(close, 15), ts_rank(-close, 22)) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(systematic_risk_last_90_days, 25), 40) * ts_zscore(returns, 50), sector) |
|
||||||
|
|
||||||
ts_delta(ts_corr(close, nws18_acb, 35), 12) * ts_scale(close, 30) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(rp_css_assets, 70) * ts_delta(close, 6), sector) |
|
||||||
|
|
||||||
ts_sum(if_else(ts_rank(vwap, 30) > ts_rank(volume, 30), ts_delta(close, 3), -ts_delta(close, 3)), 25) |
|
||||||
|
|
||||||
if_else(historical_volatility_150 > ts_mean(historical_volatility_150, 90), ts_rank(returns, 18), ts_rank(-returns, 18)) |
|
||||||
|
|
||||||
ts_regression(returns, ts_delta(fscore_growth, 3), 40, 0, 0) |
|
||||||
|
|
||||||
group_neutralize(ts_sum(signed_power(ts_delta(close, 2), sign(ts_delta(call_breakeven_270, 2))), 8), sector) |
|
||||||
|
|
||||||
ts_av_diff(implied_volatility_mean_360, 50) * ts_zscore(returns, 70) |
|
||||||
|
|
||||||
if_else(ts_mean(volume, 25) > ts_mean(volume, 75), ts_rank(close, 20), -ts_rank(close, 30)) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_corr(forward_price_120, returns, 80), 10), sector) |
|
||||||
|
|
||||||
ts_sum(if_else(ts_delta(log(volume), 12) > 0, ts_delta(close, 4), -ts_delta(close, 4)), 20) |
|
||||||
|
|
||||||
ts_corr(ts_rank(close, 15), ts_rank(pcr_oi_720, 50), 30) |
|
||||||
|
|
||||||
group_neutralize(ts_rank(ts_delta(put_breakeven_150, 12), 35) * ts_std_dev(returns, 40), sector) |
|
||||||
|
|
||||||
if_else(pcr_vol_30 > 1, ts_rank(returns, 18), -ts_rank(returns, 18)) |
|
||||||
|
|
||||||
ts_av_diff(fscore_bfl_total, 40) * ts_zscore(ts_delta(close, 6), 90) |
|
||||||
|
|
||||||
|
|
||||||
ts_rank(volume, 20) * ts_rank(returns, 20) |
|
||||||
|
|
||||||
ts_delta(volume, 5) / ts_mean(volume, 20) |
|
||||||
|
|
||||||
log(volume) * ts_rank(close, 10) |
|
||||||
|
|
||||||
ts_rank(adv20, 60) - ts_rank(returns, 60) |
|
||||||
|
|
||||||
ts_corr(volume, returns, 20) |
|
||||||
|
|
||||||
ts_rank(multiply(volume, returns), 20) |
|
||||||
|
|
||||||
sign(ts_delta(volume, 10)) * (-1 * ts_rank(returns, 10)) |
|
||||||
|
|
||||||
ts_rank(low, 5) - ts_rank(volume, 5) |
|
||||||
|
|
||||||
ts_mean(volume, 5) / ts_mean(volume, 60) |
|
||||||
|
|
||||||
rank(volume) - rank(returns) |
|
||||||
|
|
||||||
ts_delta(log(volume), 5) |
|
||||||
|
|
||||||
multiply(ts_rank(volume, 20), ts_delta(close, 20)) |
|
||||||
|
|
||||||
ts_mean(returns, 20) * ts_std_dev(volume, 20) |
|
||||||
|
|
||||||
divide(ts_sum(volume, 5), ts_sum(volume, 20)) |
|
||||||
|
|
||||||
ts_rank(close, 20) / ts_rank(volume, 20) |
|
||||||
|
|
||||||
ts_corr(ts_delta(close, 1), ts_delta(volume, 1), 5) |
|
||||||
|
|
||||||
rank(ts_delta(close, 5)) * rank(volume) |
|
||||||
|
|
||||||
ts_mean(divide(ts_delta(high, 1), close), 10) * rank(volume) |
|
||||||
|
|
||||||
multiply(rank(volume), rank(close)) |
|
||||||
|
|
||||||
ts_rank(volume, 10) * ts_std_dev(returns, 10) |
|
||||||
|
|
||||||
ts_zscore(volume, 60) * ts_rank(returns, 20) |
|
||||||
|
|
||||||
ts_mean(rank(volume), 10) * sign(ts_delta(close, 10)) |
|
||||||
|
|
||||||
ts_delta(rank(volume), 20) * rank(returns) |
|
||||||
|
|
||||||
inverse(rank(volume)) * ts_rank(returns, 5) |
|
||||||
|
|
||||||
ts_mean(ts_delta(close, 1), 10) * rank(volume) |
|
||||||
|
|
||||||
multiply(sign(ts_delta(close, 10)), ts_rank(volume, 20)) |
|
||||||
|
|
||||||
ts_coeff(returns, ts_mean(volume, 20), 10) |
|
||||||
|
|
||||||
divide(ts_rank(volume, 10), ts_rank(volume, 60)) |
|
||||||
|
|
||||||
rank(multiply(volume, returns)) |
|
||||||
|
|
||||||
ts_mean(volume, 3) - ts_mean(volume, 20) |
|
||||||
|
|
||||||
multiply(ts_rank(volume, 20), ts_rank(ts_delta(close, 20), 20)) |
|
||||||
|
|
||||||
ts_corr(rank(volume), rank(close), 20) |
|
||||||
|
|
||||||
ts_mean(returns, 20) / ts_mean(volume, 20) |
|
||||||
|
|
||||||
ts_rank(volume, 20) - ts_rank(volume, 60) |
|
||||||
|
|
||||||
rank(volume) * rank(ts_delta(close, 10)) |
|
||||||
|
|
||||||
multiply(ts_rank(volume, 20), ts_corr(close, volume, 20)) |
|
||||||
|
|
||||||
divide(ts_sum(volume, 20), cap) |
|
||||||
|
|
||||||
ts_mean(returns, 20) * ts_mean(volume, 20) |
|
||||||
|
|
||||||
rank(returns) - rank(volume) |
|
||||||
|
|
||||||
ts_delta(log(volume), 10) * rank(returns) |
|
||||||
|
|
||||||
ts_mean(rank(volume), 20) * rank(close) |
|
||||||
|
|
||||||
multiply(ts_std_dev(returns, 20), ts_std_dev(volume, 20)) |
|
||||||
|
|
||||||
ts_rank(volume, 20) * ts_mean(ts_delta(close, 1), 10) |
|
||||||
|
|
||||||
divide(ts_mean(volume, 20), adv20) |
|
||||||
|
|
||||||
rank(volume) + rank(returns) |
|
||||||
|
|
||||||
ts_delta(volume, 20) * ts_std_dev(returns, 20) |
|
||||||
|
|
||||||
multiply(rank(close), rank(volume)) |
|
||||||
|
|
||||||
ts_rank(returns, 20) / ts_rank(volume, 20) |
|
||||||
|
|
||||||
ts_mean(ts_corr(close, volume, 10), 20) |
|
||||||
|
|
||||||
ts_rank(volume, 20) * ts_rank(ts_delta(close, 5), 10) |
|
||||||
|
|
||||||
rank(multiply(returns, volume)) |
|
||||||
|
|
||||||
ts_mean(returns, 20) * rank(volume) |
|
||||||
|
|
||||||
ts_rank(volume, 60) - ts_rank(returns, 20) |
|
||||||
|
|
||||||
multiply(ts_rank(volume, 20), ts_mean(ts_delta(close, 1), 5)) |
|
||||||
|
|
||||||
ts_corr(rank(volume), rank(returns), 20) |
|
||||||
|
|
||||||
divide(ts_delta(volume, 10), ts_mean(volume, 60)) |
|
||||||
|
|
||||||
rank(volume) * rank(ts_delta(close, 20)) |
|
||||||
|
|
||||||
multiply(ts_std_dev(volume, 20), ts_rank(returns, 20)) |
|
||||||
|
|
||||||
ts_mean(rank(volume), 20) * rank(returns) |
|
||||||
|
|
||||||
ts_rank(volume, 20) - ts_rank(close, 20) |
|
||||||
|
|
||||||
rank(volume) * ts_std_dev(returns, 20) |
|
||||||
|
|
||||||
ts_rank(multiply(volume, ts_delta(close, 10)), 20) |
|
||||||
|
|
||||||
ts_mean(returns, 20) / rank(volume) |
|
||||||
|
|
||||||
multiply(ts_rank(volume, 20), ts_corr(ts_delta(close, 1), ts_delta(volume, 1), 20)) |
|
||||||
|
|
||||||
divide(ts_sum(volume, 20), ts_sum(volume, 60)) |
|
||||||
|
|
||||||
rank(volume) * rank(returns) * -1 |
|
||||||
|
|
||||||
ts_delta(volume, 20) * ts_rank(close, 20) |
|
||||||
|
|
||||||
ts_mean(rank(volume), 20) - rank(close) |
|
||||||
|
|
||||||
multiply(ts_corr(close, volume, 20), ts_rank(returns, 20)) |
|
||||||
|
|
||||||
divide(ts_std_dev(volume, 20), ts_mean(volume, 20)) |
|
||||||
|
|
||||||
ts_rank(volume, 20) * ts_zscore(returns, 20) |
|
||||||
|
|
||||||
multiply(rank(volume), rank(ts_delta(close, 5))) |
|
||||||
|
|
||||||
ts_mean(ts_corr(close, volume, 10), 20) * rank(returns) |
|
||||||
|
|
||||||
ts_rank(volume, 60) / ts_rank(close, 20) |
|
||||||
|
|
||||||
(rank(volume) > rank(returns)) * (-1) |
|
||||||
|
|
||||||
ts_delta(volume, 10) * ts_corr(close, volume, 20) |
|
||||||
|
|
||||||
divide(ts_mean(volume, 10), adv20) * -1 |
|
||||||
|
|
||||||
multiply(rank(volume), rank(ts_delta(close, 20))) |
|
||||||
|
|
||||||
ts_std_dev(returns, 20) * ts_rank(volume, 20) |
|
||||||
|
|
||||||
rank(volume) - rank(close) * -1 |
|
||||||
|
|
||||||
multiply(ts_mean(ts_delta(close, 1), 10), rank(volume)) |
|
||||||
|
|
||||||
ts_corr(rank(returns), rank(volume), 20) |
|
||||||
|
|
||||||
ts_rank(volume, 20) * ts_mean(rank(close), 20) |
|
||||||
|
|
||||||
divide(ts_sum(volume, 10), ts_sum(volume, 20)) |
|
||||||
|
|
||||||
rank(volume) * rank(ts_delta(close, 10)) * -1 |
|
||||||
|
|
||||||
ts_delta(volume, 20) * ts_mean(returns, 20) |
|
||||||
|
|
||||||
multiply(rank(volume), rank(returns)) |
|
||||||
|
|
||||||
ts_rank(volume, 20) * ts_rank(ts_delta(close, 20), 20) * -1 |
|
||||||
|
|
||||||
divide(ts_std_dev(volume, 20), ts_std_dev(returns, 20)) |
|
||||||
|
|
||||||
rank(volume) + rank(ts_delta(close, 20)) |
|
||||||
|
|
||||||
multiply(ts_corr(close, volume, 20), rank(volume)) |
|
||||||
|
|
||||||
ts_mean(returns, 20) * ts_mean(rank(volume), 20) |
|
||||||
|
|
||||||
ts_rank(volume, 20) - ts_delta(close, 20) |
|
||||||
|
|
||||||
rank(volume) * ts_zscore(returns, 20) |
|
||||||
|
|
||||||
multiply(ts_rank(volume, 20), ts_corr(rank(close), rank(volume), 20)) |
|
||||||
|
|
||||||
divide(ts_delta(volume, 20), ts_mean(volume, 20)) |
|
||||||
|
|
||||||
rank(volume) * ts_rank(returns, 20) * -1 |
|
||||||
|
|
||||||
ts_delta(volume, 10) * ts_mean(ts_delta(close, 1), 10) |
|
||||||
|
|
||||||
multiply(rank(volume), rank(ts_delta(close, 20))) * -1 |
|
||||||
|
|
||||||
ts_std_dev(returns, 20) / ts_std_dev(volume, 20) |
|
||||||
|
|
||||||
rank(ts_delta(close, 5) / ts_std_dev(close, 30), 2) * sign(ts_delta(close, 10)) |
|
||||||
|
|
||||||
scale(ts_mean(volume, 20) / ts_mean(volume, 60), 1) - ts_delta(cap, 21) / cap |
|
||||||
|
|
||||||
rank(ts_corr(ts_delta(close, 1), volume, 20), 2) * (ts_mean(close, 5) > ts_mean(close, 20)) |
|
||||||
|
|
||||||
ts_zscore(close, 30) * (1 - ts_count_nans(close, 5)) |
|
||||||
|
|
||||||
ts_decay_linear(close, 20) * (ts_mean(volume, 10) > ts_mean(volume, 40)) |
|
||||||
|
|
||||||
(ts_mean(close, 10) - ts_mean(close, 40)) / ts_std_dev(close, 90) * (volume > ts_mean(volume, 20)) |
|
||||||
|
|
||||||
rank(ts_arg_max(close, 30), 2) * -sign(ts_delta(close, 5)) |
|
||||||
|
|
||||||
(ts_delay(close, 5) - ts_delay(close, 20)) / ts_delay(close, 20) * ts_mean(volume, 10) |
|
||||||
|
|
||||||
rank(ts_corr(returns, ts_mean(returns, 10), 20), 2) * (ts_std_dev(returns, 10) < 0.02) |
|
||||||
|
|
||||||
ts_scale(ts_delta(close, 1), 1) * (ts_mean(volume, 5) > ts_mean(volume, 25)) |
|
||||||
|
|
||||||
(ts_delta(close, 5) / ts_std_dev(close, 30)) * ts_decay_linear(volume, 20) |
|
||||||
|
|
||||||
rank(ts_backfill(fclose, 20, 1), 2) * sign(ts_delta(close, 1)) |
|
||||||
|
|
||||||
(ts_mean(close, 60) - ts_mean(close, 120)) / ts_std_dev(close, 180) * (ts_mean(volume, 60) > ts_mean(volume, 120)) |
|
||||||
|
|
||||||
(1 - ts_rank(close, 20)) * (ts_delay(close, 1) < ts_mean(close, 30)) |
|
||||||
|
|
||||||
ts_delta(ts_mean(close, 10), 30) * ts_std_dev(returns, 10) |
|
||||||
|
|
||||||
rank(ts_delta(close, 10), 2) * (volume > ts_mean(volume, 20)) |
|
||||||
|
|
||||||
(ts_delay(close, 30) - ts_delay(close, 90)) / ts_delay(close, 90) * ts_std_dev(volume, 10) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(close, 5), 10) * (ts_mean(close, 5) < ts_mean(close, 20)) |
|
||||||
|
|
||||||
rank(ts_corr(close, ts_mean(close, 20), 60), 2) * ts_delay(volume, 1) |
|
||||||
|
|
||||||
(ts_mean(close, 20) < ts_mean(close, 100)) * (ts_delta(close, 5) > 0.02) |
|
||||||
|
|
||||||
rank(ts_delay(close, 5), 2) * (ts_delta(close, 15) / ts_std_dev(close, 30)) |
|
||||||
|
|
||||||
scale(ts_delta(volume, 10), 1) * (ts_corr(close, ts_mean(close, 30), 20) < 0.5) |
|
||||||
|
|
||||||
ts_decay_linear(ts_delta(close, 1), 20) * (ts_rank(volume, 10) > 0.8) |
|
||||||
|
|
||||||
rank(ts_corr(ts_delay(close, 5), ts_delay(close, 20), 30), 2) * (ts_std_dev(returns, 5) > 0.03) |
|
||||||
|
|
||||||
(ts_delta(close, 20) / ts_std_dev(close, 60)) * (ts_mean(volume, 20) < ts_mean(volume, 100)) |
|
||||||
|
|
||||||
(1 - ts_rank(close, 30)) * (ts_delta(close, 10) < -0.01) |
|
||||||
|
|
||||||
rank(ts_delta(ts_mean(high, 5), 10), 2) * (volume > ts_mean(volume, 20)) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 5), 20), 60) * (ts_rank(volume, 20) > 0.7) |
|
||||||
|
|
||||||
(ts_corr(close, ts_mean(close, 10), 30) < 0.3) * ts_delta(close, 20) |
|
||||||
|
|
||||||
rank(ts_backfill(close, 10, 1), 2) * sign(ts_delta(close, 5)) |
|
||||||
|
|
||||||
(ts_mean(high, 10) - ts_mean(low, 10)) / ts_mean(close, 10) * ts_volume(10) |
|
||||||
|
|
||||||
rank(ts_arg_min(close, 30), 2) * (ts_delta(close, 5) < 0) |
|
||||||
|
|
||||||
(ts_delta(close, 5) / ts_delay(close, 5)) * ts_decay_linear(volume, 20) |
|
||||||
|
|
||||||
rank(ts_corr(returns, volume, 20), 2) * (ts_std_dev(returns, 20) > 0.025) |
|
||||||
|
|
||||||
(ts_delay(close, 20) - ts_delay(close, 60)) / ts_delay(close, 60) * ts_mean(volume, 20) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 20), 60), 90) * (ts_rank(close, 30) < 0.3) |
|
||||||
|
|
||||||
(ts_delta(close, 10) > 0.02) * (ts_mean(volume, 5) / ts_mean(volume, 60) > 1.5) |
|
||||||
|
|
||||||
rank(ts_corr(ts_delay(close, 10), ts_delay(close, 40), 60), 2) * (ts_std_dev(volume, 10) > 0.01) |
|
||||||
|
|
||||||
ts_scale(ts_delta(close, 20), 1) * (ts_mean(close, 20) < ts_mean(close, 100)) |
|
||||||
|
|
||||||
(1 - ts_rank(close, 60)) * (ts_delta(close, 15) > 0) |
|
||||||
|
|
||||||
ts_delta(ts_mean(close, 30), 90) * ts_std_dev(returns, 30) |
|
||||||
|
|
||||||
rank(ts_arg_max(close, 90), 2) * sign(ts_delta(close, 10)) |
|
||||||
|
|
||||||
(ts_delay(close, 10) - ts_delay(close, 30)) / ts_delay(close, 30) * ts_mean(volume, 10) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 10), 30), 60) * (ts_rank(volume, 30) > 0.8) |
|
||||||
|
|
||||||
(ts_corr(close, ts_mean(close, 60), 120) < 0.4) * ts_delta(close, 30) |
|
||||||
|
|
||||||
rank(ts_backfill(close, 30, 1), 2) * sign(ts_delta(close, 10)) |
|
||||||
|
|
||||||
(ts_mean(high, 20) - ts_mean(low, 20)) / ts_mean(close, 20) * ts_volume(20) |
|
||||||
|
|
||||||
rank(ts_arg_min(close, 60), 2) * (ts_delta(close, 5) < 0) |
|
||||||
|
|
||||||
(ts_delta(close, 5) / ts_delay(close, 5)) * ts_decay_linear(volume, 30) |
|
||||||
|
|
||||||
rank(ts_corr(returns, volume, 30), 2) * (ts_std_dev(returns, 30) > 0.03) |
|
||||||
|
|
||||||
(ts_delay(close, 30) - ts_delay(close, 90)) / ts_delay(close, 90) * ts_mean(volume, 30) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 60), 120), 180) * (ts_rank(close, 60) < 0.2) |
|
||||||
|
|
||||||
(ts_delta(close, 20) > 0.02) * (ts_mean(volume, 10) / ts_mean(volume, 120) > 1.5) |
|
||||||
|
|
||||||
rank(ts_corr(ts_delay(close, 20), ts_delay(close, 80), 120), 2) * (ts_std_dev(volume, 20) > 0.02) |
|
||||||
|
|
||||||
ts_scale(ts_delta(close, 40), 1) * (ts_mean(close, 40) < ts_mean(close, 160)) |
|
||||||
|
|
||||||
(1 - ts_rank(close, 90)) * (ts_delta(close, 30) > 0) |
|
||||||
|
|
||||||
ts_delta(ts_mean(close, 60), 180) * ts_std_dev(returns, 60) |
|
||||||
|
|
||||||
rank(ts_arg_max(close, 180), 2) * sign(ts_delta(close, 20)) |
|
||||||
|
|
||||||
(ts_delay(close, 20) - ts_delay(close, 60)) / ts_delay(close, 60) * ts_mean(volume, 20) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 20), 60), 120) * (ts_rank(volume, 60) > 0.7) |
|
||||||
|
|
||||||
(ts_corr(close, ts_mean(close, 120), 250) < 0.5) * ts_delta(close, 60) |
|
||||||
|
|
||||||
rank(ts_backfill(close, 60, 1), 2) * sign(ts_delta(close, 20)) |
|
||||||
|
|
||||||
(ts_mean(high, 60) - ts_mean(low, 60)) / ts_mean(close, 60) * ts_volume(60) |
|
||||||
|
|
||||||
rank(ts_arg_min(close, 120), 2) * (ts_delta(close, 10) < 0) |
|
||||||
|
|
||||||
(ts_delta(close, 10) / ts_delay(close, 10)) * ts_decay_linear(volume, 60) |
|
||||||
|
|
||||||
rank(ts_corr(returns, volume, 60), 2) * (ts_std_dev(returns, 60) > 0.04) |
|
||||||
|
|
||||||
(ts_delay(close, 60) - ts_delay(close, 180)) / ts_delay(close, 180) * ts_mean(volume, 60) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 120), 360), 720) * (ts_rank(close, 120) < 0.1) |
|
||||||
|
|
||||||
(ts_delta(close, 30) > 0.03) * (ts_mean(volume, 20) / ts_mean(volume, 240) > 2.0) |
|
||||||
|
|
||||||
rank(ts_corr(ts_delay(close, 30), ts_delay(close, 120), 180), 2) * (ts_std_dev(volume, 30) > 0.03) |
|
||||||
|
|
||||||
ts_scale(ts_delta(close, 80), 1) * (ts_mean(close, 80) < ts_mean(close, 320)) |
|
||||||
|
|
||||||
(1 - ts_rank(close, 180)) * (ts_delta(close, 90) > 0) |
|
||||||
|
|
||||||
ts_delta(ts_mean(close, 120), 360) * ts_std_dev(returns, 120) |
|
||||||
|
|
||||||
rank(ts_arg_max(close, 360), 2) * sign(ts_delta(close, 30)) |
|
||||||
|
|
||||||
(ts_delay(close, 30) - ts_delay(close, 90)) / ts_delay(close, 90) * ts_mean(volume, 30) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 40), 120), 240) * (ts_rank(volume, 120) > 0.75) |
|
||||||
|
|
||||||
(ts_corr(close, ts_mean(close, 240), 500) < 0.6) * ts_delta(close, 90) |
|
||||||
|
|
||||||
rank(ts_backfill(close, 90, 1), 2) * sign(ts_delta(close, 30)) |
|
||||||
|
|
||||||
(ts_mean(high, 120) - ts_mean(low, 120)) / ts_mean(close, 120) * ts_volume(120) |
|
||||||
|
|
||||||
rank(ts_arg_min(close, 240), 2) * (ts_delta(close, 20) < 0) |
|
||||||
|
|
||||||
(ts_delta(close, 20) / ts_delay(close, 20)) * ts_decay_linear(volume, 120) |
|
||||||
|
|
||||||
rank(ts_corr(returns, volume, 120), 2) * (ts_std_dev(returns, 120) > 0.05) |
|
||||||
|
|
||||||
(ts_delay(close, 120) - ts_delay(close, 360)) / ts_delay(close, 360) * ts_mean(volume, 120) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 240), 720), 1440) * (ts_rank(close, 240) < 0.05) |
|
||||||
|
|
||||||
(ts_delta(close, 60) > 0.04) * (ts_mean(volume, 40) / ts_mean(volume, 480) > 2.5) |
|
||||||
|
|
||||||
rank(ts_corr(ts_delay(close, 60), ts_delay(close, 240), 360), 2) * (ts_std_dev(volume, 60) > 0.04) |
|
||||||
|
|
||||||
ts_scale(ts_delta(close, 160), 1) * (ts_mean(close, 160) < ts_mean(close, 640)) |
|
||||||
|
|
||||||
(1 - ts_rank(close, 360)) * (ts_delta(close, 180) > 0) |
|
||||||
|
|
||||||
ts_delta(ts_mean(close, 180), 540) * ts_std_dev(returns, 180) |
|
||||||
|
|
||||||
rank(ts_arg_max(close, 540), 2) * sign(ts_delta(close, 60)) |
|
||||||
|
|
||||||
(ts_delay(close, 60) - ts_delay(close, 180)) / ts_delay(close, 180) * ts_mean(volume, 60) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 60), 180), 360) * (ts_rank(volume, 180) > 0.8) |
|
||||||
|
|
||||||
(ts_corr(close, ts_mean(close, 360), 720) < 0.7) * ts_delta(close, 180) |
|
||||||
|
|
||||||
rank(ts_backfill(close, 180, 1), 2) * sign(ts_delta(close, 60)) |
|
||||||
|
|
||||||
(ts_mean(high, 180) - ts_mean(low, 180)) / ts_mean(close, 180) * ts_volume(180) |
|
||||||
|
|
||||||
rank(ts_arg_min(close, 360), 2) * (ts_delta(close, 40) < 0) |
|
||||||
|
|
||||||
(ts_delta(close, 40) / ts_delay(close, 40)) * ts_decay_linear(volume, 180) |
|
||||||
|
|
||||||
rank(ts_corr(returns, volume, 180), 2) * (ts_std_dev(returns, 180) > 0.06) |
|
||||||
|
|
||||||
(ts_delay(close, 180) - ts_delay(close, 540)) / ts_delay(close, 540) * ts_mean(volume, 180) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 360), 1080), 2160) * (ts_rank(close, 360) < 0.03) |
|
||||||
|
|
||||||
(ts_delta(close, 90) > 0.05) * (ts_mean(volume, 60) / ts_mean(volume, 720) > 3.0) |
|
||||||
|
|
||||||
rank(ts_corr(ts_delay(close, 90), ts_delay(close, 360), 540), 2) * (ts_std_dev(volume, 90) > 0.05) |
|
||||||
|
|
||||||
ts_scale(ts_delta(close, 240), 1) * (ts_mean(close, 240) < ts_mean(close, 960)) |
|
||||||
|
|
||||||
(1 - ts_rank(close, 540)) * (ts_delta(close, 270) > 0) |
|
||||||
|
|
||||||
ts_delta(ts_mean(close, 270), 810) * ts_std_dev(returns, 270) |
|
||||||
|
|
||||||
rank(ts_arg_max(close, 810), 2) * sign(ts_delta(close, 90)) |
|
||||||
|
|
||||||
(ts_delay(close, 90) - ts_delay(close, 270)) / ts_delay(close, 270) * ts_mean(volume, 90) |
|
||||||
|
|
||||||
ts_zscore(ts_delta(ts_mean(close, 90), 270), 540) * (ts_rank(volume, 270) > 0.85) |
|
||||||
|
|
||||||
(ts_corr(close, ts_mean(close, 540), 1080) < 0.75) * ts_delta(close |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
add(returns, ts_delay(returns,1)) |
|
||||||
|
|
||||||
multiply(returns, inverse(volume)) |
|
||||||
|
|
||||||
divide(multiply(returns, vwap), cap) |
|
||||||
|
|
||||||
group_zscore(returns, sector) |
|
||||||
|
|
||||||
ts_mean(multiply(returns, volume),5) |
|
||||||
|
|
||||||
if_else(volume > ts_mean(volume,30), 1, 0) |
|
||||||
|
|
||||||
scale(returns,1,0) |
|
||||||
|
|
||||||
winsorize(returns) |
|
||||||
|
|
||||||
add(zscore(returns), zscore(adv20)) |
|
||||||
|
|
||||||
multiply(zscore(returns), ts_mean(returns,20)) |
|
||||||
|
|
||||||
group_neutralize(returns, sector) |
|
||||||
|
|
||||||
group_backfill(returns, sector,30) |
|
||||||
|
|
||||||
divide(returns, beta_last_30_days_spy) |
|
||||||
|
|
||||||
multiply(returns, fscore_surface) |
|
||||||
|
|
||||||
ts_corr(close, adv20,20) |
|
||||||
|
|
||||||
add(ts_delay(returns,1), ts_delay(returns,2)) |
|
||||||
|
|
||||||
multiply( adv20, 0.01 ) |
|
||||||
|
|
||||||
subtract( ts_mean(returns,20), multiply(adv20,0.001)) |
|
||||||
|
|
||||||
add(zscore(adv20), zscore(volume)) |
|
||||||
|
|
||||||
ts_zscore(multiply(returns, volume),60) |
|
||||||
|
|
||||||
if_else( snt_value > 0.7, -1, 1 ) * returns |
|
||||||
|
|
||||||
divide( nws12_allz_result1, close ) |
|
||||||
|
|
||||||
ts_delay( snt_value, 1) * returns |
|
||||||
|
|
||||||
add( normalize(returns), group_neutralize(beta_last_30_days_spy, sector) ) |
|
||||||
|
|
||||||
multiply( group_zscore(fscore_momentum, sector), returns ) |
|
||||||
|
|
||||||
group_zscore(fscore_surface, sector) |
|
||||||
|
|
||||||
group_zscore(fscore_value, sector) |
|
||||||
|
|
||||||
scale( fscore_value, 1, 0 ) |
|
||||||
|
|
||||||
ts_corr( close, snt_value,30 ) |
|
||||||
|
|
||||||
multiply( snt_value, ts_delay(returns,5) ) |
|
||||||
|
|
||||||
add( ts_delay(snt_value,1), ts_delay(snt_value,2) ) |
|
||||||
|
|
||||||
divide( call_breakeven_20, put_breakeven_20 ) |
|
||||||
|
|
||||||
ts_mean( divide( call_breakeven_30, put_breakeven_30 ),10) |
|
||||||
|
|
||||||
if_else( pcr_vol_20 > 1.2, 1, -1 ) * returns |
|
||||||
|
|
||||||
multiply( pcr_oi_60, returns ) |
|
||||||
|
|
||||||
group_zscore( pcr_oi_60, sector ) |
|
||||||
|
|
||||||
add( zscore( pcr_oi_60 ), zscore( adv20 ) ) |
|
||||||
|
|
||||||
ts_delay( pcr_oi_60,1) * returns |
|
||||||
|
|
||||||
group_mean( sales, pv13_revere_company ) |
|
||||||
|
|
||||||
divide( group_mean(sales, pv13_revere_company), group_mean(market_cap, pv13_revere_company) ) |
|
||||||
|
|
||||||
multiply( fscore_surface, fscore_momentum ) |
|
||||||
|
|
||||||
if_else( fscore_surface > 50, 1, 0 ) * returns |
|
||||||
|
|
||||||
normalize( fscore_surface ) |
|
||||||
|
|
||||||
ts_rank( fscore_surface,60 ) |
|
||||||
|
|
||||||
ts_delay( fscore_surface,30 ) |
|
||||||
|
|
||||||
multiply( ts_delay(returns,10), ts_rank( fscore_bfl_total,60 ) ) |
|
||||||
|
|
||||||
add( ts_delay(fscore_total,30), returns ) |
|
||||||
|
|
||||||
divide( fscore_value, fscore_growth ) |
|
||||||
|
|
||||||
group_scale(adv20, sector) |
|
||||||
|
|
||||||
multiply( group_zscore(adv20, sector), returns ) |
|
||||||
|
|
||||||
ts_corr( adv20, snt_value,60 ) |
|
||||||
|
|
||||||
ts_covariance( adv20, returns,60 ) |
|
||||||
|
|
||||||
add( returns, multiply( adv20, 0.001 ) ) |
|
||||||
|
|
||||||
add( multiply(returns, volume), ts_delay(returns,1) ) |
|
||||||
|
|
||||||
multiply( adv20, beta_last_30_days_spy ) |
|
||||||
|
|
||||||
group_zscore( beta_last_30_days_spy, sector ) |
|
||||||
|
|
||||||
scale(div ide(returns, adv20),1,0 ) |
|
||||||
|
|
||||||
winsorize(multiply(returns, volume)) |
|
||||||
|
|
||||||
if_else( volume > adv20 * 2, 1, -1 ) * returns |
|
||||||
|
|
||||||
add( snt_value, ts_delay(snt_value,1) ) |
|
||||||
|
|
||||||
scale( snt_social_volume, 1, 0 ) |
|
||||||
|
|
||||||
if_else( is_nan(close), group_mean(close, sector ), close ) |
|
||||||
|
|
||||||
group_backfill(close, sector,30) |
|
||||||
|
|
||||||
ad d( ts_mean(returns,5), ts_mean(returns,10) ) |
|
||||||
|
|
||||||
add( ts_mean(returns,5), ts_mean(returns,10) ) |
|
||||||
|
|
||||||
scale(returns, longscale=1, shortscale=1 ) |
|
||||||
|
|
||||||
winsorize(group_zscore(returns, pv13_revere_key_sector)) |
|
||||||
|
|
||||||
ts_delay( volume,1 ) |
|
||||||
|
|
||||||
ts_mean( volume,10 ) |
|
||||||
|
|
||||||
if_else( ts_std_dev(returns,30) > 0.15, ts_delta(close,5), ts_delta(close,30)) |
|
||||||
|
|
||||||
divide( fscore_bfl_tota, fscore_bfl_value ) |
|
||||||
|
|
||||||
add( normalize(returns), group_neutralize(beta_last_30_days_spy, sector) ) |
|
||||||
|
|
||||||
multiply( group_zscore(returns, pv13_revere_company ), returns ) |
|
||||||
|
|
||||||
add( ts_delta(close, 5), ts_delta(close,10) ) |
|
||||||
|
|
||||||
multiply( snt_social_volume, 10 ) |
|
||||||
|
|
||||||
normalize( snt_social_value ) |
|
||||||
|
|
||||||
scale( snt_social_value, 1, 0 ) |
|
||||||
|
|
||||||
if_else( nws12_prez_02l > 0, 1, -1 ) * returns |
|
||||||
|
|
||||||
ts_corr( close, volume,20 ) |
|
||||||
|
|
||||||
add( zscore(adv20), zscore(volume) ) |
|
||||||
|
|
||||||
group_mean( fscore_surface, pv13_revere_company ) |
|
||||||
|
|
||||||
divide( group_mean(sales, pv13_revere_company), group_mean(market_cap, pv13_revere_company) ) |
|
||||||
|
|
||||||
multiply( group_zscore(returns, pv13_revere_company), fscore_surface ) |
|
||||||
|
|
||||||
if_else( group_zscore(fscore_surface, sector) > 0.5, 1, -1 ) * returns |
|
||||||
|
|
||||||
ts_mean( divide( group_mean(sales, pv13_revere_company), group_mean(market_cap, pv13_revere_company) ),5) |
|
||||||
|
|
||||||
add( normalize( fscore_surface ), normalize( fscore_momentum ) ) |
|
||||||
|
|
||||||
multiply( snt_value, ts_delay(returns,1) ) |
|
||||||
|
|
||||||
add( ts_delay(snt_value,1), ts_delay(snt_value,2) ) |
|
||||||
|
|
||||||
if_else( pcr_oi_60 > 0.5, 1, -1) * returns |
|
||||||
|
|
||||||
ts_delay( pcr_oi_60,1) * returns |
|
||||||
|
|
||||||
divide( call_breakeven_10, put_breakeven_10 ) |
|
||||||
|
|
||||||
ts_mean( divide( call_breakeven_30, put_breakeven_30 ),10) |
|
||||||
|
|
||||||
group_zscore( volume, pv13_revere_key_sector ) |
|
||||||
|
|
||||||
multiply( group_zscore(returns, sector), volume ) |
|
||||||
|
|
||||||
if_else( adv20 < 100000, 1, 0 ) * returns |
|
||||||
|
|
||||||
add( zscore( adv20 ), zscore( fscore_surface ) ) |
|
||||||
|
|
||||||
multiply( ts_delta(close,5), ts_std_dev(returns,60) ) |
|
||||||
|
|
||||||
winsorize(group_scale(returns, sector)) |
|
||||||
|
|
||||||
divide( market_cap, ts_mean(market_cap,90) ) |
|
||||||
|
|
||||||
scale( divide(returns, market_cap), 1,0 ) |
|
||||||
|
|
||||||
group_backfill(returns, pv13_revere_company,30) |
|
||||||
|
|
||||||
add( returns, multiply( beta_last_30_days_spy, 0.05 ) ) |
|
||||||
|
|
||||||
multiply( group_zscore(fscore_surface, pv13_revere_sector), group_zscore(returns, pv13_revere_sector) ) |
|
||||||
|
|
||||||
if_else( ts_mean(returns,10) > 0, 1, -1 ) * snt_value |
|
||||||
|
|
||||||
add( normalize( returns ), normalize( group_zscore(returns, pv13_revere_company) ) ) |
|
||||||
|
|
||||||
multiply( adv20, ts_delta(volume,5) ) |
|
||||||
|
|
||||||
ts_corr( close, adv20,30 ) |
|
||||||
|
|
||||||
add( ts_delay(close,5), multiply( adv20, 0.001 ) ) |
|
||||||
|
|
||||||
scale( snt_value, 1, 0 ) |
|
||||||
|
|
||||||
multiply( snt_value, 10 ) |
|
||||||
|
|
||||||
if_else( snt_value > 0.6, zscore(returns), 0 ) |
|
||||||
|
|
||||||
divide( nws12_prez_02l, close ) |
|
||||||
|
|
||||||
ts_delay( nws12_allz_result1,1) * returns |
|
||||||
|
|
||||||
group_mean( fscore_surface, sector ) |
|
||||||
|
|
||||||
divide( group_mean(eps_estimate, pv13_revere_company), group_mean(earnings_actual, pv13_revere_company) ) |
|
||||||
|
|
||||||
add( normalize( fscore_surface ), normalize( fscore_momentum ) ) |
|
||||||
|
|
||||||
multiply( fscore_surface, ts_delay(returns,5) ) |
|
||||||
|
|
||||||
ts_corr( fscore_surface, close,30 ) |
|
||||||
|
|
||||||
add( ts_delay(returns,1), ts_delay(returns,2) ) |
|
||||||
|
|
||||||
multiply( snt_value, ts_delay(returns,5) ) |
|
||||||
|
|
||||||
add( ts_delay(snt_value,1), ts_delay(snt_value,2) ) |
|
||||||
|
|
||||||
scale( group_zscore(returns, sector), 1, 0 ) |
|
||||||
|
|
||||||
if_else( snt_value > 0.5, -ts_delta(close,5), ts_delta(close,5) ) |
|
||||||
|
|
||||||
ts_mean( divide( group_mean(eps_estimate, pv13_revere_company), group_mean(earnings_actual, pv13_revere_company) ),20) |
|
||||||
|
|
||||||
add( normalize( bffl_surface ), normalize( fscore_momentum ) ) |
|
||||||
|
|
||||||
multiply( group_zscore(returns, pv13_revere_company), multiplier( adv20, 0.01 ) ) |
|
||||||
|
|
||||||
scale( snt_social_volume, 1, 0 ) |
|
||||||
|
|
||||||
divide( call_breakeven_60, put_breakeven_60 ) |
|
||||||
|
|
||||||
ts_scale( divide(returns, adv20), 30,1 ) |
|
||||||
|
|
||||||
if_else( group_zscore(returns, sector) < 0.2, 1, 0 ) |
|
||||||
Loading…
Reference in new issue