detect-palladium-lead-silver-turns
npx skills add https://github.com/fatfingererr/macro-skills --skill detect-palladium-lead-silver-turns
Agent 安装分布
Skill 文档
<essential_principles>
ãééé å ç½éãçå說éè¦å¯éåé©èï¼
- 以 cross-correlation ä¼°è¨æä½³é å æ»¯å¾ï¼lead-lagï¼
- ç¶éåºç¾æé»æï¼æª¢æ¥é鿝å¦å¨ç¢ºèªçªå£å §å è¡æåæ¥åºç¾ååæé»
- æªè¢«ç¢ºèªçæé»è¦çºãå¤±ææ¨åãçåé¸
Lead-Lag = argmax(cross_correlation(pd_ret[t-k:t], ag_ret[t:t+k]))
Confirmed = pd_turn exists within [ag_turn.ts - window, ag_turn.ts + window]
| æ¹æ³ | åç | é©ç¨å ´æ¯ |
|---|---|---|
pivot |
å·¦å³ N æ ¹Kæ£å §çå±é¨æ¥µå¼ | çµæ§æç¢ºçè¶¨å¢ |
peaks |
scipy find_peaks + prominence | èªååå¯åº¦æ§å¶ |
slope_change |
è¶¨å¢æçç±æ£è½è² æåä¹ | å¹³æ»è¶¨å¢è¿½è¹¤ |
建è°å¾ pivot éå§ï¼å·¦å³å 3-5 æ ¹Kæ£ï¼åä¾éæ±èª¿æ´ã
é鿝å¦ãåèãéçèµ°å¢ï¼æå¤ç¨®è¡¡éæ¹å¼ï¼
| ææ¨ | å®ç¾© | éæª»å»ºè° |
|---|---|---|
returns_corr |
å ±é ¬çæ»¾åç¸éä¿æ¸ | > 0.5 |
direction_agree |
ååæ¼²è·çæ¯ä¾ | > 60% |
vol_expansion |
å ©è æ³¢å忥æ´å¼µ | Ï_pd / Ï_ag > 0.8 |
breakout_confirm |
éçªç ´æééä¹çªç ´ | ååçªç ´ |
æªééæª»æï¼éçåä½å¯è½æ¯ãæµåæ§åªé³ãèé趨å¢ç¢ºèªã
å°ãç¡ééåèçéåä½ãè½å°çºå¯å測çè¦åï¼
| è¦å | å®ç¾© | 徿 |
|---|---|---|
no_confirm_then_revert |
ç¡ç¢ºèª + éå¨ N æ ¹Kå §åæ¤éèµ·é» | æ¨è¨çº failed_move |
no_confirm_then_break_fail |
ç¡ç¢ºèª + éçªç ´å¾åè½è·ç ´çªç ´é» | åçªç ´ |
æ·å²çµ±è¨ï¼æªç¢ºèªäºä»¶ç失æç vs 已確èªäºä»¶çæåçã
</essential_principles>
- æ¸æåå¾ï¼ç½éèééç OHLCVï¼yfinance: SI=F, PA=Fï¼
- æé»åµæ¸¬ï¼èå¥å ©è çå±é¨é«ä½é»ï¼pivot / peaks / slope_changeï¼
- é å æ»¯å¾ä¼°è¨ï¼cross-correlation æ¾æä½³ lag
- è·¨é屬確èªï¼éçæé»æ¯å¦å¨çªå£å §è¢«ééååæé»ç¢ºèª
- 失æèµ°å¢å¤å®ï¼æªç¢ºèªçéæé»æ¯å¦ç¬¦å失æè¦å
輸åºï¼ç¢ºèªçã失æçãæ¯åäºä»¶ç詳細å¤å®ã風æ§å»ºè°ã
<quick_start>
æå¿«çæ¹å¼ï¼åµæ¸¬ç½éè¿ææé»æ¯å¦è¢«éé確èª
cd skills/detect-palladium-lead-silver-turns
pip install pandas numpy yfinance scipy statsmodels # 馿¬¡ä½¿ç¨
python scripts/palladium_lead_silver.py --silver SI=F --palladium PA=F --quick
輸åºç¯ä¾ï¼
{
"symbol_pair": {"silver": "SI=F", "palladium": "PA=F"},
"as_of": "2026-01-14",
"timeframe": "1h",
"estimated_pd_leads_by_bars": 6,
"lead_lag_corr": 0.42,
"confirmation_rate": 0.71,
"unconfirmed_failure_rate": 0.64,
"latest_event": {
"ts": "2026-01-15T14:00:00Z",
"turn": "top",
"confirmed": false,
"participation_ok": false,
"failed_move": true
}
}
宿´åæï¼
python scripts/palladium_lead_silver.py --silver SI=F --palladium PA=F --timeframe 1h --lookback 1000 --output result.json
çæ Bloomberg é¢¨æ ¼è¦è¦ºååè¡¨ï¼æ¨è¦ï¼ï¼
pip install matplotlib yfinance # 馿¬¡ä½¿ç¨
python scripts/plot_bloomberg_style.py --input result.json --output output/palladium_silver_2026-01-26.png
å表ç¹è²ï¼
- Bloomberg å°æ¥é è²ï¼æ·±è²èæ¯ãæ©ç´ è²ç½éç·ãæ©é»è²ééç·
- èæ¯è²å¸¶æ¨è¨ï¼ç¶ è²èæ¯ = å·²ç¢ºèªæé»ååï¼ç´ è²èæ¯ = æªç¢ºèªæé»ååï¼ä¸æä½èµ°å¢ç·ï¼
- ææ°äºä»¶æ¨è¨»ï¼éç®æ¨ç¤ºææ°æé»ç確èªçæ è广 ¼
- Pd/Ag 广 ¼æ¯çåï¼é¡¯ç¤ºééå°ç½éçç¸å°å¹æ ¼è®åï¼å« 20 æåç·
- 滾å確èªçï¼åæ 顯示確èªéè¼¯çæææ§è¶¨å¢
- çµ±è¨é¢æ¿ï¼ç¢ºèªçã失æçã總æé»æ¸çé鵿æ¨
- è¡æ è§£è®ï¼ç¶åçæ è©ä¼°è坿ä½å»ºè°
å³çµ±ä¸åä¸åè¡¨ï¼æè¡åæåï¼ï¼
python scripts/plot_palladium_silver.py --silver SI=F --palladium PA=F --output output/
å å«ï¼
- é/é广 ¼çå èæé»æ¨è¨
- 確èª/æªç¢ºèªäºä»¶åå¸
- 滾åç¸éä¿æ¸æéåºå
- 失æèµ°å¢çµ±è¨
</quick_start>
- å¿«é嵿¸¬ – æª¢æ¥æè¿ç½éæé»æ¯å¦è¢«éé確èª
- æ·å²å測 – åæº¯åæè·¨é屬確èªçæææ§
- æçºç£æ§ – è¨å®è¦å ±ç¶åºç¾æ°æé»æéç¥
- åæ¸èª¿æ ¡ – æ¾åºæä½³ç確èªçªå£èåèåº¦éæª»
- æ¹æ³è«å¸ç¿ – äºè§£è·¨é屬é å æ»¯å¾ççè«åºç¤
è«é¸ææç´æ¥æä¾åæåæ¸éå§ã
è·¯ç±å¾ï¼é±è®å°ææä»¶ä¸¦å·è¡ã
<directory_structure>
detect-palladium-lead-silver-turns/
âââ SKILL.md # æ¬æä»¶ï¼è·¯ç±å¨ï¼
âââ skill.yaml # å端å±ç¤ºå
æ¸æ
âââ manifest.json # æè½å
æ¸æ
âââ workflows/
â âââ detect.md # 宿¬¡åµæ¸¬å·¥ä½æµ
â âââ backtest.md # æ·å²åæ¸¬å·¥ä½æµ
â âââ monitor.md # æçºç£æ§å·¥ä½æµ
âââ references/
â âââ methodology.md # è·¨é屬é å
æ»¯å¾æ¹æ³è«
â âââ input-schema.md # 宿´è¼¸å
¥åæ¸å®ç¾©
â âââ data-sources.md # è³æä¾æºèªªæ
âââ templates/
â âââ output-json.md # JSON è¼¸åºæ¨¡æ¿
â âââ output-markdown.md # Markdown å ±åæ¨¡æ¿
âââ scripts/
â âââ palladium_lead_silver.py # 䏻嵿¸¬è
³æ¬
â âââ plot_bloomberg_style.py # Bloomberg é¢¨æ ¼è¦è¦ºåï¼æ¨è¦ï¼
â âââ plot_palladium_silver.py # å³çµ±ä¸åä¸å表
âââ examples/
âââ silver-palladium-2024.json # ç¯ä¾è¼¸åº
</directory_structure>
<reference_index>
æ¹æ³è«: references/methodology.md
- è·¨é屬é å æ»¯å¾åç
- æé»åµæ¸¬ä¸æ³è©³è§£
- åè度è確èªé輯
- 失æèµ°å¢çå¸å ´å«ç¾©
è³æä¾æº: references/data-sources.md
- Yahoo Finance æè²¨ä»£ç¢¼
- å®è§æ¿¾é¡æ¸æä¾æº
- æ¸æé »çèå°é½
è¼¸å ¥åæ¸: references/input-schema.md
- 宿´åæ¸å®ç¾©
- é è¨å¼è建è°ç¯å
</reference_index>
<workflows_index>
| Workflow | Purpose | ä½¿ç¨ææ© |
|---|---|---|
| detect.md | 宿¬¡åµæ¸¬ | 檢æ¥ç¹å®æéç¯å |
| backtest.md | æ·å²å測 | é©è確èªéè¼¯æææ§ |
| monitor.md | æçºç£æ§ | æ¥å¸¸è¿½è¹¤æè¦å ± |
| </workflows_index> |
<templates_index>
| Template | Purpose |
|---|---|
| output-json.md | JSON 輸åºçµæ§å®ç¾© |
| output-markdown.md | Markdown å ±åæ¨¡æ¿ |
| </templates_index> |
<scripts_index>
| Script | Command | Purpose |
|---|---|---|
| palladium_lead_silver.py | --silver SI=F --palladium PA=F --quick |
å¿«éæª¢æ¥ç¶åçæ |
| palladium_lead_silver.py | --silver SI=F --palladium PA=F --lookback 1000 |
宿´æ·å²åæ |
| plot_bloomberg_style.py | --input result.json --output output/chart.png |
Bloomberg é¢¨æ ¼åè¡¨ï¼æ¨è¦ï¼ |
| plot_palladium_silver.py | --silver SI=F --palladium PA=F --output dir/ |
å³çµ±ä¸åä¸å表 |
| </scripts_index> |
<input_schema_summary>
æ ¸å¿åæ¸
| 忏 | é¡å | é è¨å¼ | 說æ |
|---|---|---|---|
| silver_symbol | string | (required) | ç½éæ¨ç代碼 |
| palladium_symbol | string | (required) | é鿍ç代碼 |
| timeframe | string | 1h | åææé尺度 |
| lookback_bars | int | 1000 | åæº¯Kæ£æ¸ |
æé»åµæ¸¬åæ¸
| 忏 | é¡å | é è¨å¼ | 說æ |
|---|---|---|---|
| turn_method | string | pivot | æé»åµæ¸¬æ¹æ³ |
| pivot_left | int | 3 | pivot å·¦å´ç¢ºèªKæ¸ |
| pivot_right | int | 3 | pivot å³å´ç¢ºèªKæ¸ |
| confirm_window_bars | int | 6 | è·¨é屬確èªçªå£ |
| lead_lag_max_bars | int | 24 | é å æ»¯å¾æå¤§æ»¯å¾Kæ¸ |
åèåº¦åæ¸
| 忏 | é¡å | é è¨å¼ | 說æ |
|---|---|---|---|
| participation_metric | string | direction_agree | åèåº¦è¡¡éæ¹å¼ |
| participation_threshold | float | 0.6 | åèåº¦éæª» |
| failure_rule | string | no_confirm_then_revert | 失æèµ°å¢è¦å |
宿´åæ¸å®ç¾©è¦ references/input-schema.mdã
</input_schema_summary>
<output_schema_summary>
{
"skill": "detect-palladium-lead-silver-turns",
"symbol_pair": {"silver": "SI=F", "palladium": "PA=F"},
"as_of": "2026-01-14",
"timeframe": "1h",
"lookback_bars": 1200,
"summary": {
"estimated_pd_leads_by_bars": 6,
"lead_lag_corr": 0.42,
"confirmation_rate": 0.71,
"unconfirmed_failure_rate": 0.64,
"total_ag_turns": 24,
"confirmed_turns": 17,
"failed_moves": 5
},
"events": [
{
"ts": "2026-01-08T10:00:00Z",
"turn": "bottom",
"confirmed": true,
"confirmation_lag_bars": -3,
"participation_ok": true,
"failed_move": false
}
],
"interpretation": {
"regime_assessment": "...",
"tactics": ["...", "..."]
}
}
宿´è¼¸åºçµæ§è¦ templates/output-json.mdã
</output_schema_summary>
<success_criteria> å·è¡æåææç¢åºï¼
- ééå°ç½éçæä½³é å æ»¯å¾ä¼°è¨ï¼barsï¼
- é å æ»¯å¾çç¸éä¿æ¸
- ç½éæé»è¢«éé確èªç確èªç
- æªç¢ºèªäºä»¶ç失æèµ°å¢æ¯ä¾
- æ¯åç½éæé»ç詳細å¤å®ï¼confirmed, participation, failedï¼
- è¡æ è§£è®èæ°è¡å»ºè°
- æéåºåè³æï¼å¯é¸ï¼ç¨æ¼è¦è¦ºåï¼
- è¦è¦ºåå表 PNGï¼å¯é¸ï¼ä½¿ç¨ plot_palladium_silver.pyï¼ </success_criteria>