Skip to content

Commit 929a150

Browse files
committed
Point research to snapshot pipeline repo
1 parent 94b7697 commit 929a150

8 files changed

Lines changed: 29 additions & 17 deletions

README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,19 @@ python3 scripts/print_strategy_profile_status.py
106106
- `symbol`, `sector`, `mom_6_1`, `mom_12_1`, `sma200_gap`, `vol_63`, `maxdd_126`
107107
- optional passthrough columns such as `as_of`, `close`, `volume`, `adv20_usd`, `history_days`, `eligible`
108108

109-
Recommended upstream task:
109+
Recommended upstream task lives in `../UsEquitySnapshotPipelines`:
110110

111111
```bash
112-
PYTHONPATH=src:. python3 scripts/run_russell_1000_snapshot_task.py
112+
cd ../UsEquitySnapshotPipelines
113+
PYTHONPATH=src:../UsEquityStrategies/src:../QuantPlatformKit/src python scripts/update_russell_1000_input_data.py \
114+
--output-dir data/input/refreshed/r1000_official_monthly_v2_alias \
115+
--universe-start 2018-01-01 \
116+
--price-start 2018-01-01 \
117+
--extra-symbols QQQ,SPY,BOXX
118+
PYTHONPATH=src:../UsEquityStrategies/src:../QuantPlatformKit/src python scripts/build_russell_1000_feature_snapshot.py \
119+
--prices data/input/refreshed/r1000_official_monthly_v2_alias/r1000_price_history.csv \
120+
--universe data/input/refreshed/r1000_official_monthly_v2_alias/r1000_universe_history.csv \
121+
--output-dir data/output/russell_1000_multi_factor_defensive
113122
```
114123

115124
Then point this runtime at the generated file:

notifications/telegram.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,16 @@
4949
"signal_label": "信号",
5050
"no_trades": "✅ 无需调仓",
5151
"emergency": "🛡️ 金丝雀应急: {n_bad}/4 坏, 全部转入 {safe}",
52-
"quarterly": "📊 季度调仓: Top {n} 轮动",
52+
"quarterly": "📊 季度调仓: {n} 名轮动",
5353
"daily_check": "📋 每日检查: 金丝雀正常, 持仓不变",
5454
"hold": "💎 持仓不变",
5555
"market_sell": "📉 [市价卖出] {symbol}: {qty}股",
5656
"limit_buy": "📈 [限价买入] {symbol}: {qty}股 @ ${price}",
57-
"submitted": "已下发 (ID: {order_id})",
57+
"submitted": "已下发(订单号: {order_id}",
5858
"failed": "失败: {reason}",
59-
"order_filled": "✅ 订单成交 | {symbol} {side} {qty}股 均价 ${price} (ID: {order_id})",
60-
"order_partial": "⚠️ 部分成交 | {symbol} {side} {executed}/{qty}股 均价 ${price} (ID: {order_id})",
61-
"order_rejected": "❌ 订单异常 | {symbol} {side} {qty}股 状态: {status} (ID: {order_id})",
59+
"order_filled": "✅ 订单成交 | {symbol} {side} {qty}股 均价 ${price}(订单号: {order_id}",
60+
"order_partial": "⚠️ 部分成交 | {symbol} {side} {executed}/{qty}股 均价 ${price}(订单号: {order_id}",
61+
"order_rejected": "❌ 订单异常 | {symbol} {side} {qty}股 状态: {status}(订单号: {order_id}",
6262
"strategy_name_global_etf_rotation": "全球 ETF 轮动",
6363
"strategy_name_russell_1000_multi_factor_defensive": "罗素1000多因子",
6464
"strategy_name_tech_communication_pullback_enhancement": "科技通信回调增强",

research/backtest_growth_pullback_suite.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1292,7 +1292,7 @@ def build_workspace_mapping() -> dict[str, object]:
12921292
"qqq_plus_default_config": str(DEFAULT_CONFIGS_DIR / "qqq_plus_stock_alpha_v1_1_default.json"),
12931293
"qqq_plus_aggressive_config": str(DEFAULT_CONFIGS_DIR / "qqq_plus_stock_alpha_v1_1_aggressive.json"),
12941294
"defensive_strategy_entry": str(suite.US_EQUITY_STRATEGIES_ROOT / "src/us_equity_strategies/strategies/russell_1000_multi_factor_defensive.py"),
1295-
"defensive_backtest_entry": str(suite.US_EQUITY_STRATEGIES_ROOT / "src/us_equity_strategies/backtests/russell_1000_multi_factor_defensive.py"),
1295+
"defensive_backtest_entry": str(suite.US_EQUITY_SNAPSHOT_PIPELINES_ROOT / "src/us_equity_snapshot_pipelines/russell_1000_multi_factor_backtest.py"),
12961296
"interactivebrokers_research_dir": str(SCRIPT_DIR),
12971297
"us_equity_strategies_read_only_reference": str(suite.US_EQUITY_STRATEGIES_ROOT / "src/us_equity_strategies"),
12981298
"quant_platform_kit_shared_read_only": str(suite.QUANT_PLATFORM_KIT_ROOT / "src/quant_platform_kit"),

research/backtest_stock_alpha_suite.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@
2929

3030
WORKSPACE_ROOT = Path(__file__).resolve().parents[2]
3131
US_EQUITY_STRATEGIES_ROOT = WORKSPACE_ROOT / "UsEquityStrategies"
32+
US_EQUITY_SNAPSHOT_PIPELINES_ROOT = WORKSPACE_ROOT / "UsEquitySnapshotPipelines"
3233
QUANT_PLATFORM_KIT_ROOT = WORKSPACE_ROOT / "QuantPlatformKit"
3334
LOCAL_RUNS_ROOT = WORKSPACE_ROOT / "_local_runs"
3435

3536
for candidate in (
37+
US_EQUITY_SNAPSHOT_PIPELINES_ROOT,
38+
US_EQUITY_SNAPSHOT_PIPELINES_ROOT / "src",
3639
US_EQUITY_STRATEGIES_ROOT,
3740
US_EQUITY_STRATEGIES_ROOT / "src",
3841
QUANT_PLATFORM_KIT_ROOT,
@@ -43,12 +46,12 @@
4346
if candidate_text not in sys.path:
4447
sys.path.insert(0, candidate_text)
4548

46-
from us_equity_strategies.backtests.russell_1000_multi_factor_defensive import ( # noqa: E402
49+
from us_equity_snapshot_pipelines.russell_1000_multi_factor_backtest import ( # noqa: E402
4750
build_monthly_rebalance_dates,
4851
resolve_active_universe,
4952
run_backtest as run_defensive_backtest,
5053
)
51-
from us_equity_strategies.snapshots.russell_1000_multi_factor_defensive import ( # noqa: E402
54+
from us_equity_snapshot_pipelines.russell_1000_multi_factor_defensive_snapshot import ( # noqa: E402
5255
read_table,
5356
)
5457
from us_equity_strategies.strategies.tqqq_growth_income import ( # noqa: E402
@@ -1731,8 +1734,8 @@ def build_workspace_mapping(results_dir: Path, data_run_dir: Path) -> dict[str,
17311734
return {
17321735
"workspace_root": str(WORKSPACE_ROOT),
17331736
"defensive_code_entry": str(US_EQUITY_STRATEGIES_ROOT / "src/us_equity_strategies/strategies/russell_1000_multi_factor_defensive.py"),
1734-
"defensive_snapshot_entry": str(US_EQUITY_STRATEGIES_ROOT / "src/us_equity_strategies/snapshots/russell_1000_multi_factor_defensive.py"),
1735-
"defensive_backtest_entry": str(US_EQUITY_STRATEGIES_ROOT / "src/us_equity_strategies/backtests/russell_1000_multi_factor_defensive.py"),
1737+
"defensive_snapshot_entry": str(US_EQUITY_SNAPSHOT_PIPELINES_ROOT / "src/us_equity_snapshot_pipelines/russell_1000_multi_factor_defensive_snapshot.py"),
1738+
"defensive_backtest_entry": str(US_EQUITY_SNAPSHOT_PIPELINES_ROOT / "src/us_equity_snapshot_pipelines/russell_1000_multi_factor_backtest.py"),
17361739
"hybrid_code_entry": str(US_EQUITY_STRATEGIES_ROOT / "src/us_equity_strategies/strategies/tqqq_growth_income.py"),
17371740
"hybrid_runtime_entry": str(WORKSPACE_ROOT / "CharlesSchwabPlatform/main.py"),
17381741
"semiconductor_code_entry": str(US_EQUITY_STRATEGIES_ROOT / "src/us_equity_strategies/strategies/soxl_soxx_trend_income.py"),

research/backtest_stock_alpha_v1_robustness.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
import backtest_stock_alpha_suite as suite # noqa: E402
3232

33-
from us_equity_strategies.backtests.russell_1000_multi_factor_defensive import ( # noqa: E402
33+
from us_equity_snapshot_pipelines.russell_1000_multi_factor_backtest import ( # noqa: E402
3434
build_monthly_rebalance_dates,
3535
resolve_active_universe,
3636
run_backtest as run_defensive_backtest,

research/results/growth_pullback_summary.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- qqq_plus default config: /Users/lisiyi/Projects/InteractiveBrokersPlatform/research/configs/qqq_plus_stock_alpha_v1_1_default.json
66
- qqq_plus aggressive config: /Users/lisiyi/Projects/InteractiveBrokersPlatform/research/configs/qqq_plus_stock_alpha_v1_1_aggressive.json
77
- defensive strategy entry: /Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies/strategies/russell_1000_multi_factor_defensive.py
8-
- defensive backtest entry: /Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies/backtests/russell_1000_multi_factor_defensive.py
8+
- defensive backtest entry: /Users/lisiyi/Projects/UsEquitySnapshotPipelines/src/us_equity_snapshot_pipelines/russell_1000_multi_factor_backtest.py
99
- new research entry: /Users/lisiyi/Projects/InteractiveBrokersPlatform/research/backtest_growth_pullback_suite.py
1010
- avoided repos: /Users/lisiyi/Projects/BinancePlatform, /Users/lisiyi/Projects/CryptoLeaderRotation
1111

research/results/growth_pullback_workspace_mapping.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"qqq_plus_default_config": "/Users/lisiyi/Projects/InteractiveBrokersPlatform/research/configs/qqq_plus_stock_alpha_v1_1_default.json",
44
"qqq_plus_aggressive_config": "/Users/lisiyi/Projects/InteractiveBrokersPlatform/research/configs/qqq_plus_stock_alpha_v1_1_aggressive.json",
55
"defensive_strategy_entry": "/Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies/strategies/russell_1000_multi_factor_defensive.py",
6-
"defensive_backtest_entry": "/Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies/backtests/russell_1000_multi_factor_defensive.py",
6+
"defensive_backtest_entry": "/Users/lisiyi/Projects/UsEquitySnapshotPipelines/src/us_equity_snapshot_pipelines/russell_1000_multi_factor_backtest.py",
77
"interactivebrokers_research_dir": "/Users/lisiyi/Projects/InteractiveBrokersPlatform/research",
88
"us_equity_strategies_read_only_reference": "/Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies",
99
"quant_platform_kit_shared_read_only": "/Users/lisiyi/Projects/QuantPlatformKit/src/quant_platform_kit",

research/results/stock_strategy_workspace_mapping.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"workspace_root": "/Users/lisiyi/Projects",
33
"defensive_code_entry": "/Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies/strategies/russell_1000_multi_factor_defensive.py",
4-
"defensive_snapshot_entry": "/Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies/snapshots/russell_1000_multi_factor_defensive.py",
5-
"defensive_backtest_entry": "/Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies/backtests/russell_1000_multi_factor_defensive.py",
4+
"defensive_snapshot_entry": "/Users/lisiyi/Projects/UsEquitySnapshotPipelines/src/us_equity_snapshot_pipelines/russell_1000_multi_factor_defensive_snapshot.py",
5+
"defensive_backtest_entry": "/Users/lisiyi/Projects/UsEquitySnapshotPipelines/src/us_equity_snapshot_pipelines/russell_1000_multi_factor_backtest.py",
66
"hybrid_code_entry": "/Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies/strategies/hybrid_growth_income.py",
77
"hybrid_runtime_entry": "/Users/lisiyi/Projects/CharlesSchwabPlatform/main.py",
88
"semiconductor_code_entry": "/Users/lisiyi/Projects/UsEquityStrategies/src/us_equity_strategies/strategies/semiconductor_rotation_income.py",

0 commit comments

Comments
 (0)