{ "success": true, "summary": { "total_templates": 16, "normalized_templates": 16, "total_expressions": 16, "valid_expressions": 6, "unique_expressions": 6, "invalid_count": 10 }, "templates": [ { "template": "divide(subtract(max_sales_guidance_value, min_sales_guidance_value), abs(sales_estimate_average_annual))", "original_template": "divide(subtract(max_sales_guidance_value, min_sales_guidance_value), abs(sales_estimate_average_annual))", "idea": "**Concept**: Guidance Uncertainty Width \n- **Sample Fields Used**: `min_sales_guidance_value`, `max_sales_guidance_value` \n- **Definition**: `(max_guidance - min_guidance) / abs(mean_guidance)` \n- **Why This Feature**: Narrow guidance indicates high management confidence; wide guidance signals uncertainty or volatile business outlook. \n- **Logical Meaning**: Relative size of the “cone of uncertainty” around forward guidance. \n- **Is filling nan necessary**: No – guidance fields only have values when guidance is issued. NaN indicates no guidance available. We should not fill because absence itself is informative. \n- **Directionality**: High values = more uncertainty; low values = more precision. \n- **Boundary Conditions**: May be extreme if mean guidance is near zero; use winsorization or truncation.", "expression_count": 1, "expressions": [ "divide(subtract(max_sales_guidance_value, min_sales_guidance_value), abs(sales_estimate_average_annual))" ] }, { "template": "divide(anl4_qfv4_eps_std, abs(anl4_qfv4_eps_mean))", "original_template": "divide(anl4_qfv4_eps_std, abs(anl4_qfv4_eps_mean))", "idea": "**Concept**: Consensus Stability \n- **Sample Fields Used**: `anl4_qfv4_eps_std`, `anl4_qfv4_eps_mean` \n- **Definition**: `std / abs(mean)` – coefficient of variation of EPS estimates. \n- **Why This Feature**: Low CV indicates high analyst agreement, suggesting the stock is well‑understood and less prone to surprise. \n- **Logical Meaning**: Normalized dispersion of analyst opinions. \n- **Is filling nan necessary**: The standard deviation may be NaN when fewer than two estimates exist. Use `if_else` with `is_nan` to set a default (e.g., 0). \n- **Directionality**: High CV = high disagreement, possibly leading to volatile price reactions. \n- **Boundary Conditions**: If mean is near zero, the ratio may explode – use with caution.", "expression_count": 1, "expressions": [ "divide(anl4_qfv4_eps_std, abs(anl4_qfv4_eps_mean))" ] }, { "template": "divide(ts_delta(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1), abs(ts_delay(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1)))", "original_template": "divide(ts_delta(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1), abs(ts_delay(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1)))", "idea": "**Concept**: Estimate Revision Momentum \n- **Sample Fields Used**: `anl4_qfv4_eps_mean` \n- **Definition**: `ts_delta(anl4_qfv4_eps_mean, 1) / abs(ts_delay(anl4_qfv4_eps_mean, 1))` – percentage change in consensus from previous update. \n- **Why This Feature**: Captures the speed and direction of consensus adjustments; large positive changes may signal under‑reaction. \n- **Logical Meaning**: Relative revision intensity. \n- **Is filling nan necessary**: The consensus field may be NaN on non‑update days. Use `ts_backfill` to carry forward the last value before applying `ts_delta`. \n- **Directionality**: Positive = upward revision (bullish); negative = downward revision (bearish). \n- **Boundary Conditions**: Zero denominator can occur if previous value is zero; use `if_else` to handle.", "expression_count": 1, "expressions": [ "divide(ts_delta(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1), abs(ts_delay(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1)))" ] }, { "template": "ts_delta( subtract(ts_backfill(max_sales_guidance_value, lookback=180, k=1), ts_backfill(min_sales_guidance_value, lookback=180, k=1)), 1 )", "original_template": "ts_delta( subtract(ts_backfill(max_sales_guidance_value, lookback=180, k=1), ts_backfill(min_sales_guidance_value, lookback=180, k=1)), 1 )", "idea": "**Concept**: Guidance Range Narrowing \n- **Sample Fields Used**: `min_sales_guidance_value`, `max_sales_guidance_value` \n- **Definition**: `ts_delta( max_guidance - min_guidance, 1 )` – change in absolute guidance width over time. \n- **Why This Feature**: Narrowing range indicates management’s increasing confidence as the fiscal period approaches. \n- **Logical Meaning**: Temporal tightening of the forecast corridor. \n- **Is filling nan necessary**: Guidance values are event‑based; backfill to get last known range before measuring change. \n- **Directionality**: Negative change = increased precision. \n- **Boundary Conditions**: May be zero if no update.", "expression_count": 1, "expressions": [ "ts_delta( subtract(ts_backfill(max_sales_guidance_value, lookback=180, k=1), ts_backfill(min_sales_guidance_value, lookback=180, k=1)), 1 )" ] }, { "template": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(anl4_qfv4_eps_mean) )", "original_template": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(anl4_qfv4_eps_mean) )", "idea": "**Concept**: Earnings Surprise \n- **Sample Fields Used**: `actual_eps_value_quarterly`, `anl4_qfv4_eps_mean` \n- **Definition**: `(actual - consensus) / abs(consensus)` – standardized surprise. \n- **Why This Feature**: Positive surprises often trigger immediate price jumps; the magnitude determines subsequent drift. \n- **Logical Meaning**: Unexpected earnings relative to market expectation. \n- **Is filling nan necessary**: The actual field is NaN most days. The feature is only meaningful on the announcement date. No filling needed. \n- **Directionality**: Positive = beat; negative = miss. \n- **Boundary Conditions**: Consensus may be zero; use `if_else` to avoid division by zero.", "expression_count": 1, "expressions": [ "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(anl4_qfv4_eps_mean) )" ] }, { "template": "divide( subtract(ts_backfill(anl4_qfv4_eps_high, lookback=90, k=1), ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)), abs(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)) )", "original_template": "divide( subtract(ts_backfill(anl4_qfv4_eps_high, lookback=90, k=1), ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)), abs(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)) )", "idea": "**Concept**: Analyst Over‑optimism \n- **Sample Fields Used**: `anl4_qfv4_eps_high`, `anl4_qfv4_eps_mean` \n- **Definition**: `(high - mean) / abs(mean)` – relative gap between the most optimistic estimate and consensus. \n- **Why This Feature**: A persistently large gap may indicate a subset of overly optimistic analysts; their future revisions can drive price. \n- **Logical Meaning**: Skew in analyst expectations toward the upside. \n- **Is filling nan necessary**: Backfill high and mean to last known values. \n- **Directionality**: High values = optimism skew; low values = consensus closer to the top. \n- **Boundary Conditions**: May be undefined if mean is zero.", "expression_count": 1, "expressions": [ "divide( subtract(ts_backfill(anl4_qfv4_eps_high, lookback=90, k=1), ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)), abs(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)) )" ] }, { "template": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(ts_backfill(book_value_per_share_reported_value, lookback=180, k=1)) )", "original_template": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(ts_backfill(book_value_per_share_reported_value, lookback=180, k=1)) )", "idea": "**Concept**: Valuation‑Adjusted Surprise \n- **Sample Fields Used**: `actual_eps_value_quarterly`, `anl4_qfv4_eps_mean`, `book_value_per_share_reported_value` \n- **Definition**: `(actual - consensus) / book_value_per_share` – surprise scaled by balance sheet anchor. \n- **Why This Feature**: Same surprise magnitude may have different impact depending on firm’s asset base. \n- **Logical Meaning**: Earnings surprise relative to the book value – a more fundamental scaling. \n- **Is filling nan necessary**: Book value is reported quarterly (event field). Backfill to latest available. \n- **Directionality**: Positive = beat relative to asset size. \n- **Boundary Conditions**: Book value may be negative; use absolute value or treat as special.", "expression_count": 1, "expressions": [ "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(ts_backfill(book_value_per_share_reported_value, lookback=180, k=1)) )" ] }, { "template": "divide( subtract(actual_eps_value_quarterly, actual_cashflow_per_share_value_quarterly), abs(actual_eps_value_quarterly) )", "original_template": "divide( subtract(actual_eps_value_quarterly, actual_cashflow_per_share_value_quarterly), abs(actual_eps_value_quarterly) )", "idea": "**Concept**: Cash Flow Quality Adjustment \n- **Sample Fields Used**: `actual_eps_value_quarterly`, `actual_cashflow_per_share_value_quarterly` \n- **Definition**: `(eps - cashflow) / abs(eps)` – difference between earnings and cash flow per share. \n- **Why This Feature**: Large divergence may signal accounting discretion or unsustainable earnings. \n- **Logical Meaning**: Accrual component of earnings. \n- **Is filling nan necessary**: Both fields are event‑based; combine only when both have values (e.g., on earnings day). \n- **Directionality**: Negative = cash flow stronger than earnings (higher quality). \n- **Boundary Conditions**: EPS may be zero; use absolute denominator.", "expression_count": 1, "expressions": [ "divide( subtract(actual_eps_value_quarterly, actual_cashflow_per_share_value_quarterly), abs(actual_eps_value_quarterly) )" ] }, { "template": "divide( ts_backfill(total_goodwill_reported_value, lookback=180, k=1), ts_backfill(total_assets_reported_value, lookback=180, k=1) )", "original_template": "divide( ts_backfill(total_goodwill_reported_value, lookback=180, k=1), ts_backfill(total_assets_reported_value, lookback=180, k=1) )", "idea": "**Concept**: Tangible Asset Intensity \n- **Sample Fields Used**: `total_goodwill_reported_value`, `total_assets_reported_value` \n- **Definition**: `goodwill / total_assets` – proportion of assets that is goodwill (intangible). \n- **Why This Feature**: High ratio indicates reliance on past acquisitions; such firms may be more volatile post‑earnings. \n- **Logical Meaning**: Degree of asset “intangibility”. \n- **Is filling nan necessary**: Balance sheet items are reported quarterly; backfill to last known. \n- **Directionality**: High = more goodwill‑heavy, potentially riskier. \n- **Boundary Conditions**: Total assets must be non‑zero.", "expression_count": 1, "expressions": [ "divide( ts_backfill(total_goodwill_reported_value, lookback=180, k=1), ts_backfill(total_assets_reported_value, lookback=180, k=1) )" ] }, { "template": "divide( ts_backfill(net_debt_actual_value, lookback=180, k=1), ts_backfill(shareholders_equity_actual_value, lookback=180, k=1) )", "original_template": "divide( ts_backfill(net_debt_actual_value, lookback=180, k=1), ts_backfill(shareholders_equity_actual_value, lookback=180, k=1) )", "idea": "**Concept**: Net Debt to Equity \n- **Sample Fields Used**: `net_debt_actual_value`, `shareholders_equity_actual_value` \n- **Definition**: `net_debt / equity` – leverage measure. \n- **Why This Feature**: High leverage amplifies sensitivity to earnings surprises and interest rate changes. \n- **Logical Meaning**: Financial risk exposure. \n- **Is filling nan necessary**: Backfill both to latest reported. \n- **Directionality**: High = more leveraged. \n- **Boundary Conditions**: Equity could be negative; use absolute or treat as special.", "expression_count": 1, "expressions": [ "divide( ts_backfill(net_debt_actual_value, lookback=180, k=1), ts_backfill(shareholders_equity_actual_value, lookback=180, k=1) )" ] }, { "template": "ts_sum( ts_delta( ts_backfill(anl4_qfv4_eps_mean, lookback=120, k=1), 1 ), 90 )", "original_template": "ts_sum( ts_delta( ts_backfill(anl4_qfv4_eps_mean, lookback=120, k=1), 1 ), 90 )", "idea": "**Concept**: Cumulative Estimate Revisions Over Quarter \n- **Sample Fields Used**: `anl4_qfv4_eps_mean` \n- **Definition**: `ts_sum( ts_delta(backfilled_eps, 1), 90 )` – sum of daily consensus changes over the last 90 days. \n- **Why This Feature**: Captures net revision pressure as the earnings date approaches. \n- **Logical Meaning**: Net momentum of analyst expectations over a quarter. \n- **Is filling nan necessary**: Backfill consensus before calculating deltas. \n- **Directionality**: Positive = net upward revisions. \n- **Boundary Conditions**: Use `ts_delta` with backfilled series to avoid noise from non‑update days.", "expression_count": 1, "expressions": [ "ts_sum( ts_delta( ts_backfill(anl4_qfv4_eps_mean, lookback=120, k=1), 1 ), 90 )" ] }, { "template": "ts_sum( subtract( ts_backfill(max_sales_guidance_value, lookback=200, k=1), ts_backfill(min_sales_guidance_value, lookback=200, k=1) ), 180 )", "original_template": "ts_sum( subtract( ts_backfill(max_sales_guidance_value, lookback=200, k=1), ts_backfill(min_sales_guidance_value, lookback=200, k=1) ), 180 )", "idea": "**Concept**: Rolling Guidance Width Accumulation \n- **Sample Fields Used**: `min_sales_guidance_value`, `max_sales_guidance_value` \n- **Definition**: `ts_sum( max_guidance - min_guidance, 180 )` – total uncertainty “exposure” over past 180 days. \n- **Why This Feature**: Repeated wide guidance may indicate chronic uncertainty. \n- **Logical Meaning**: Integrated management ambiguity. \n- **Is filling nan necessary**: Backfill guidance ranges before summation. \n- **Directionality**: High = persistently uncertain outlook. \n- **Boundary Conditions**: Sum may become very large; consider normalization by number of non‑NaN days.", "expression_count": 1, "expressions": [ "ts_sum( subtract( ts_backfill(max_sales_guidance_value, lookback=200, k=1), ts_backfill(min_sales_guidance_value, lookback=200, k=1) ), 180 )" ] }, { "template": "group_zscore( divide( ts_backfill(anl4_qfv4_eps_std, lookback=90, k=1), abs( ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1) ) ), group )", "original_template": "group_zscore( divide( ts_backfill(anl4_qfv4_eps_std, lookback=90, k=1), abs( ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1) ) ), group )", "idea": "**Concept**: Sector‑Relative Disagreement \n- **Sample Fields Used**: `anl4_qfv4_eps_std`, `anl4_qfv4_eps_mean`, `group` (e.g., industry) \n- **Definition**: `group_zscore( anl4_qfv4_eps_std / abs(anl4_qfv4_eps_mean), industry )` – how analyst disagreement deviates from industry norm. \n- **Why This Feature**: Abnormal disagreement may indicate stock‑specific uncertainty. \n- **Logical Meaning**: Relative uncertainty vs. peers. \n- **Is filling nan necessary**: Backfill standard deviation and mean; apply group_zscore only when group is defined. \n- **Directionality**: Positive = more disagreement than industry average. \n- **Boundary Conditions**: Group must be available; use `group_mean` to compute industry average if needed.", "expression_count": 1, "expressions": [ "group_zscore( divide( ts_backfill(anl4_qfv4_eps_std, lookback=90, k=1), abs( ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1) ) ), group )" ] }, { "template": "subtract( anl4_mark, divide( anl4_buy, anl4_total_rec ) )", "original_template": "subtract( anl4_mark, divide( anl4_buy, anl4_total_rec ) )", "idea": "**Concept**: Consensus Score Deviation from Recommendation Counts \n- **Sample Fields Used**: `anl4_mark`, `anl4_buy`, `anl4_total_rec` \n- **Definition**: `anl4_mark - (anl4_buy / anl4_total_rec)` – residual of consensus score relative to simple buy ratio. \n- **Why This Feature**: Consensus scores often weight ratings non‑linearly; deviation captures nuanced sentiment. \n- **Logical Meaning**: Unexplained sentiment (e.g., strong “sell” recommendations dragging down score). \n- **Is filling nan necessary**: Recommendation fields are daily (continuous). Use directly. \n- **Directionality**: Positive = score higher than buy ratio suggests. \n- **Boundary Conditions**: Avoid division by zero if total_rec = 0.", "expression_count": 1, "expressions": [ "subtract( anl4_mark, divide( anl4_buy, anl4_total_rec ) )" ] }, { "template": "divide( subtract( ts_delay( anl4_qfv4_eps_mean, -5 ), anl4_qfv4_eps_mean ), abs( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean) ) )", "original_template": "divide( subtract( ts_delay( anl4_qfv4_eps_mean, -5 ), anl4_qfv4_eps_mean ), abs( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean) ) )", "idea": "**Concept**: Surprise‑Adjusted Revision Response \n- **Sample Fields Used**: `actual_eps_value_quarterly`, `anl4_qfv4_eps_mean`, `anl4_qfv4_eps_mean` (future) \n- **Definition**: `( future_consensus - pre_actual_consensus ) / abs( surprise )` – the revision magnitude following a surprise. \n- **Why This Feature**: Measures how quickly and strongly analysts incorporate new information. \n- **Logical Meaning**: Information diffusion speed. \n- **Is filling nan necessary**: This feature requires aligning the pre‑actual consensus and the consensus after the earnings announcement (e.g., 5 days later). Use `ts_delay` to capture post‑actual consensus. \n- **Directionality**: Large response to small surprise indicates over‑reaction. \n- **Boundary Conditions**: Surprise may be zero; use conditional. \n *Note: Negative delay is not allowed; implement as `ts_delay( anl4_qfv4_eps_mean, 5 )` after aligning dates.*", "expression_count": 1, "expressions": [ "divide( subtract( ts_delay( anl4_qfv4_eps_mean, -5 ), anl4_qfv4_eps_mean ), abs( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean) ) )" ] }, { "template": "ts_corr( ts_backfill(est_eps, lookback=180, k=1), ts_backfill(est_cashflow_ps, lookback=180, k=1), 12 )", "original_template": "ts_corr( ts_backfill(est_eps, lookback=180, k=1), ts_backfill(est_cashflow_ps, lookback=180, k=1), 12 )", "idea": "**Concept**: Fundamental Persistence Score \n- **Sample Fields Used**: `est_eps`, `est_cashflow_ps`, `est_ebitda` \n- **Definition**: `ts_corr( est_eps, est_cashflow_ps, 12 )` – rolling correlation between annual EPS and cash flow estimates. \n- **Why This Feature**: High correlation suggests earnings are driven by cash flow (higher quality); low correlation may indicate accounting distortions. \n- **Logical Meaning**: Earnings quality persistence. \n- **Is filling nan necessary**: Estimate fields are event‑based; backfill to daily before correlation. \n- **Directionality**: High = stable, high‑quality earnings. \n- **Boundary Conditions**: Need at least two non‑NaN points for correlation.", "expression_count": 1, "expressions": [ "ts_corr( ts_backfill(est_eps, lookback=180, k=1), ts_backfill(est_cashflow_ps, lookback=180, k=1), 12 )" ] } ], "expressions": [ "divide(subtract(max_sales_guidance_value, min_sales_guidance_value), abs(sales_estimate_average_annual))", "divide(anl4_qfv4_eps_std, abs(anl4_qfv4_eps_mean))", "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(anl4_qfv4_eps_mean) )", "divide( subtract(actual_eps_value_quarterly, actual_cashflow_per_share_value_quarterly), abs(actual_eps_value_quarterly) )", "subtract( anl4_mark, divide( anl4_buy, anl4_total_rec ) )", "divide( subtract( ts_delay( anl4_qfv4_eps_mean, -5 ), anl4_qfv4_eps_mean ), abs( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean) ) )" ], "invalid_details": [ { "expression": "divide(ts_delta(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1), abs(ts_delay(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1)))", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'", "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] }, { "expression": "ts_delta( subtract(ts_backfill(max_sales_guidance_value, lookback=180, k=1), ts_backfill(min_sales_guidance_value, lookback=180, k=1)), 1 )", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'", "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] }, { "expression": "divide( subtract(ts_backfill(anl4_qfv4_eps_high, lookback=90, k=1), ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)), abs(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)) )", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'", "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'", "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] }, { "expression": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(ts_backfill(book_value_per_share_reported_value, lookback=180, k=1)) )", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] }, { "expression": "divide( ts_backfill(total_goodwill_reported_value, lookback=180, k=1), ts_backfill(total_assets_reported_value, lookback=180, k=1) )", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'", "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] }, { "expression": "divide( ts_backfill(net_debt_actual_value, lookback=180, k=1), ts_backfill(shareholders_equity_actual_value, lookback=180, k=1) )", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'", "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] }, { "expression": "ts_sum( ts_delta( ts_backfill(anl4_qfv4_eps_mean, lookback=120, k=1), 1 ), 90 )", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] }, { "expression": "ts_sum( subtract( ts_backfill(max_sales_guidance_value, lookback=200, k=1), ts_backfill(min_sales_guidance_value, lookback=200, k=1) ), 180 )", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'", "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] }, { "expression": "group_zscore( divide( ts_backfill(anl4_qfv4_eps_std, lookback=90, k=1), abs( ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1) ) ), group )", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'", "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] }, { "expression": "ts_corr( ts_backfill(est_eps, lookback=180, k=1), ts_backfill(est_cashflow_ps, lookback=180, k=1), 12 )", "errors": [ "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'", "函数 ts_backfill 最多接受 2 个参数,但提供了 3", "函数 ts_backfill 不存在参数 'lookback'", "函数 ts_backfill 不存在参数 'k'" ] } ] }