<essential_principles>
The investment clock simplifies market states into four quadrants:
金融環境支持(寬鬆)
↑
Q3 │ Q1
修復過渡 │ 理想象限
────────────┼────────────→ 獲利成長
Q4 │ Q2
最差象限 │ 好壞混合
│
金融環境不支持(緊縮)
| Quadrant | Earnings | Financial Conditions | Meaning | Allocation Suggestion |
|---|---|---|---|---|
| Q1 Ideal Quadrant | ↑ | Supportive ↑ | Friendly to risk assets | Bullish, tailwind allocation |
| Q2 Mixed | ↑ | Not supportive ↓ | Valuation pressure, volatility | Volatility management, valuation sensitivity |
| Q3 Recovery Transition | ↓ | Supportive ↑ | Easing rescue, fundamentals not yet recovered | Do not misjudge as a full-blown bull market |
| Q4 Worst Quadrant | ↓ | Not supportive ↓ | Risk assets vulnerable | Risk control, deleveraging |
Investment clock charts from different sources may have different axis definitions. This skill defaults to:
-
X-axis: Financial Conditions
- Left side = easing (highly supportive)
- Right side = tightening (low supportiveness)
-
Y-axis: Earnings Growth
- Top = positive growth
- Bottom = negative growth
If your chart is defined differently, please adjust in the input parameters axis_mapping and clock_convention。
Via atan2(y, x) calculate the angle, then convert to a 12-hour clock:
- 12 o'clock: straight up (highest earnings, neutral financial conditions)
- 3 o'clock: right side (tightest financial conditions)
- 6 o'clock: straight down (lowest earnings)
- 9 o'clock: left side (loosest financial conditions)
Rotation Direction:
- Clockwise: typical business cycle path (Q1 → Q2 → Q4 → Q3 → Q1)
- Counterclockwise: policy intervention or atypical events
This skill usesno API key required data sources:
- FRED CSV:
https://fred.stlouisfed.org/graph/fredgraph.csv?id={SERIES_ID}- Financial conditions: NFCI (Chicago Fed), STLFSI4 (St. Louis Fed)
- Earnings proxies: CP (corporate profits), GDP-related indicators
The script is located in the scripts/ directory and can be run directly.
</essential_principles>
- Construct coordinates: calculate earnings growth and financial conditions Z-scores from FRED data
- Determine quadrant: identify which quadrant it currently falls in
- Calculate clock position: convert to a 12-hour clock position
- Analyze rotation: determine rotation direction and magnitude
- Cycle comparison: compare with the previous cycle (optional)
Output: current quadrant, clock position, rotation summary, allocation suggestions.
<quick_start>
Fastest way: run the default analysis
cd skills/analyze-investment-clock-rotation
pip install pandas numpy requests # 首次使用
python scripts/investment_clock.py --quick
Example output:
{
"as_of": "2026-01-15",
"current_position": {
"clock_hour": 10,
"quadrant": "Q1_ideal",
"earnings_growth": 0.052,
"financial_conditions_zscore": -0.35
},
"interpretation": "理想象限,風險資產相對順風"
}
Full analysis:
python scripts/investment_clock.py \
--start 2022-01-01 \
--end 2026-01-19 \
--compare-cycle 2020-01-01 2022-12-31 \
--output result.json
</quick_start>
- Quick check - view the current investment clock position and quadrant
- Full analysis - analyze the rotation path and direction within the time interval
- Cycle comparison - Compare rotation characteristics with the previous cycle
- Visualization charts - Generate investment clock visualization charts
- Methodology learning - Understand the logic of the investment clock model
Please select or directly provide analysis parameters.
After routing, read the corresponding file and execute.
<directory_structure>
analyze-investment-clock-rotation/
├── SKILL.md # 本文件(路由器)
├── skill.yaml # 前端展示元數據
├── manifest.json # 技能元數據
├── workflows/
│ ├── analyze.md # 完整分析工作流
│ ├── compare-cycle.md # 循環比較工作流
│ └── visualize.md # 視覺化工作流
├── references/
│ ├── methodology.md # 投資時鐘方法論
│ ├── data-sources.md # FRED 系列代碼與資料來源
│ └── input-schema.md # 完整輸入參數定義
├── templates/
│ ├── output-json.md # JSON 輸出模板
│ └── output-markdown.md # Markdown 報告模板
└── scripts/
├── investment_clock.py # 主分析腳本
├── fetch_data.py # 數據抓取工具
└── visualize.py # 視覺化繪圖工具
</directory_structure>
<reference_index>
Methodology: references/methodology.md
- Investment clock concept and history
- Four-quadrant definitions and allocation implications
- Rotation direction interpretation
Data sources: references/data-sources.md
- FRED series codes (financial conditions/profit proxies)
- Data frequency and alignment methods
Input parameters: references/input-schema.md
- Complete parameter definitions
- Default values and suggested ranges
</reference_index>
<workflows_index>
| Workflow | Purpose | When to use |
|---|---|---|
| analyze.md | Full analysis | When detailed quadrant and rotation analysis is needed |
| compare-cycle.md | Cycle comparison | Compare characteristics of different cycles |
| visualize.md | Generate visualization charts | When chart presentation is needed |
| </workflows_index> |
<templates_index>
| Template | Purpose |
|---|---|
| output-json.md | JSON output structure definition |
| output-markdown.md | Markdown report template |
| </templates_index> |
<scripts_index>
| Script | Command | Purpose |
|---|---|---|
| investment_clock.py | --quick |
Quickly check current position |
| investment_clock.py | --start DATE --end DATE |
Full analysis |
| investment_clock.py | --compare-cycle START END |
Cycle comparison |
| fetch_data.py | --series NFCI,CP |
Fetch FRED data |
| visualize.py | -i result.json -o chart.png |
Generate visualization charts |
| </scripts_index> |
<input_schema_summary>
Core parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
| market | string | US_EQUITY | Analysis target |
| start_date | string | 2022-01-01 | Analysis start point |
| end_date | string | today | Analysis end point |
| freq | string | weekly | Frequency (weekly/monthly) |
Data source parameters
| Parameter | Type | Description |
|---|---|---|
| earnings_series.source | string | fred / api / csv / manual |
| earnings_series.series_id | string | FRED series ID (e.g., CP) |
| earnings_series.growth_method | string | yoy / qoq_annualized |
| financial_conditions_series.source | string | fred / api / csv |
| financial_conditions_series.series_id | string | NFCI / STLFSI4 |
| financial_conditions_series.transform | string | level / zscore / inverse |
Axis parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
| axis_mapping.x | string | financial_conditions | X-axis definition |
| axis_mapping.y | string | earnings_growth | Y-axis definition |
| clock_convention.financial_loose_is_left | bool | true | Easing on the left side |
For complete parameter definitions, see references/input-schema.md。
</input_schema_summary>
<output_schema_summary>
{
"skill": "analyze-investment-clock-rotation",
"as_of": "2026-01-19",
"market": "US_EQUITY",
"current_state": {
"clock_hour": 10,
"quadrant": "Q1_ideal",
"quadrant_name": "理想象限",
"x_value": -0.35,
"y_value": 0.052
},
"rotation_summary": {
"from_hour": 2,
"to_hour": 10,
"direction": "clockwise",
"magnitude_degrees": 240
},
"interpretation": "獲利成長為正,金融環境偏支持,屬於風險資產相對順風的象限"
}
For the complete output structure, see templates/output-json.md。
</output_schema_summary>
<success_criteria> Successful execution should produce:
- Current quadrant (Q1/Q2/Q3/Q4)
- Clock position (1-12 o'clock)
- Profit growth value and financial conditions Z-score
- Rotation direction (clockwise/counterclockwise)
- Rotation magnitude (degrees)
- Allocation recommendations (by quadrant)
- Cycle comparison summary (if enabled)
- Visualization charts (optional, output to
output/directory) </success_criteria>