Community研究與資料分析github.com

ClayKW/signals

在 M3/M5 時框進行 BUY/SELL LIMIT/STOP 剝頭皮信號生成,最大止損 $3,盈虧比 1:1.5/1:2。透過兩位 AI(技術分析師 vs 風險經理)辯論,由中立裁判裁決,數據取自本地 MT5。

signals 是什麼?

此技能用於在外匯市場中,於 M3 和 M5 時間框架內自動生成剝頭皮交易信號。它嚴格限定為限價或止損掛單,不允許市價單,除非兩位分析師一致同意當前價格正好處於特定水平。最大止損設置為 3 美元(以 0.01 手為基準),並根據每個交易品種的 tick_value 自動轉換為點數。止盈則嚴格採用風險報酬比 1:1.5 或 1:2。整個決策過程模擬了一個去中心化的辯論架構:一位技術分析師負責分析圖表結構和入場點,一位風險經理負責驗證止損/止盈的有效性並規避陷阱(如止損獵殺、點差過大),最後由一個中立的裁判(AI 裁判)來確保所有規則都被遵守,並在雙方意見一致時才生成信號。該技能的所有市場數據均來自本地 MT5 終端,完全不依賴網路爬蟲,確保反應速度。此外,它會記錄所有交易結果到 Google Drive,用於持續學習,用戶可以透過 `signal-result win/lose [原因]` 指令回報結果,讓 AI 從歷史模式中學習。

相容平台~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/ClayKW/skill/tree/HEAD/signal

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

技能:signal — 透過 2 位 AI 辯論產生 M3/M5 剝頭皮信號

1. 觸發與模式

觸發指令說明
signal-<pair> (例如 signal-xauusd、signal-eurusd)生成 M3/M5 掛單入場訊號
signal-result win / signal-result lose [原因]用戶回報上一筆訊號的結果 → 記錄到交易紀錄
  • <pair> = 本地 MT5 交易品種代號。透過 ~/.local/share/mt5-venv/bin/python scripts/mt5_query.py symbols <query> 解析。如果找不到,顯示最接近的候選品種,切勿自行編造。
  • 如果交易品種明確,請勿反問用戶。不要急著給答案——3 到 5 輪的辯論是正常的,品質重於速度。

2. 嚴格交易規則(由裁判驗證,非分析師)

  1. 訂單類型:僅限 BUY/SELL LIMIT 或 STOP(在技術位掛單)。市價單只有在兩位分析師一致同意當前價格正好處於該水準,且明確寫出時才允許。
  2. 每筆訊號最大止損 $3(0.01 手) —— 並非死板的 300 點。系統會根據 mt5_query.py scalp 輸出中 risk 區塊的 sl_max_points 自動轉換(XAUUSD ≈ 300 點 = $3;其他品種自動調整)。分析師提出的止損超過此限制 = 裁判駁回,退回要求修正。
  3. 停利 = 根據止損距離的 RR 1:1.5 或 1:2。選擇其中一個,並標明採用的 RR。
  4. 分析時間框架:M3 + M5(主要) + H1(快速判斷大方向)。
  5. 合理點差:若點差大於建議止損距離的約 20%,分析師必須特別標註(在點差較大的情況下,限價單入場更安全)。

3. 數據(純本地 MT5 — 無網路/無搜尋,確保快速)

單一指令:

~/.local/share/mt5-venv/bin/python ~/.config/opencode/skills/signal/scripts/mt5_query.py scalp <SYMBOL>

輸出 JSON:買賣價、點差、risk(美元/點數、最大止損點數)、日內變動、M3/M5/H1 的 ATR14、EMA20/50、趨勢、支撐阻力、區間、最後一根 K 線及其實體方向。將此原始輸出提供給兩位分析師。嚴禁編造 MT5 數據。

時間標註:使用 WIB + 在括號內標示 MT5 伺服器時間(UTC+3),例如 21:45 WIB (17:45 server)。WIB = 伺服器時間 + 4 小時。

4. 從交易紀錄學習(辯論前必須執行)

  1. 在第一輪辯論前,裁判取得交易紀錄:rclone cat gdrive:Linux-Server/signals/track-record.md(若 404/找不到 = 尚無紀錄,則繼續進行並回報此情況)。
  2. 摘要最近結果的模式(例如「最近 5 筆虧損都是下跌趨勢中的賣出限價單」),並將此模式提供給兩位分析師作為學習背景:勝利的模式可以重複,虧損的模式必須避免,或者分析師需解釋為何本次情況不同。
  3. 訊號儲存在 gdrive:Linux-Server/signals/<YYYYMMDD>-<pair>/signal.md,狀態為 PENDING(參見 §7)。

5. 辯論(2 位分析師 + 1 位裁判,3-5 輪對話)

角色與模型(使用 subagent 工具,agent 為 general,明確指定 model 參數):

角色模型任務
分析師 1 — 技術入場opencode/step-5-preview-freeM3/M5 結構、訂單類型(限價/停損)、入場點、止損、停利、進場時機
分析師 2 — 風險經理opencode/nemotron-3.5-lightning-free驗證停損/停利、風險報酬比、避免陷阱(止損獵殺、點差、交易時段)、倉位管理
裁判 = 主要代理,使用當前會話的模型(動態)—中立:編排流程、發送數據、驗證嚴格規則(§2)、計票、整理輸出。禁止分析或對市場方向發表意見。裁判 = 正在執行此會話的 AI 模型——可以是任何提供者;不要假設總是 custom/auto。在撰寫輸出時,檢查自己的模型並寫出實際名稱。

流程:

  1. 第一輪(獨立): 將 MT5 數據 + 交易紀錄摘要發送給兩位分析師。每位提出:方向、訂單類型、入場點、止損(點數與美元)、停利(風險報酬比)、信心百分比、理由。
  2. 辯論輪次(1-3 輪): 互相傳遞文字討論。可要求新的 MT5 數據(再次呼叫 scalp——價格會變化)。聚焦於實際分歧:價格水準、訂單類型、止損有效性。
  3. 最終立場: 各自陳述最終立場。
  4. 投票: 兩位分析師意見一致 → 訊號有效。意見分歧 = 不交易(正式輸出:沒有訊號 + 簡短原因)。這是有效且正常的結果,不要強求。

備援模型(遇到速率限制時的順序,第一層):opencode/longcat-2.5-preview-free → opencode/space-bunny-free → opencode/cat-jam-free;第二層最多 1 位分析師使用:9roy/9router_combo;第三層:custom/auto(「苦力」)—— 僅在裁判不是 custom/auto 時使用(同一個模型不能同時扮演兩個角色)。只要還有其他選項,就不要讓兩位分析師都來自同一個提供者。錯誤重試最多 2 次;兩位分析師都完全失敗 = 回報並停止。

6. 預算

簡單計算:1 次分析師呼叫 = 3,重試/備援 = 1,裁判工具呼叫 = 1。目標總數 12-27(2-3 次分析師呼叫 × 約 3 輪 + 工具呼叫)。在輸出中寫上:Budget: X/27 (方法: 加權-信號)。不要超過 27——3 到 5 輪辯論就足夠了,超過就停止並整理輸出。

7. 輸出與儲存(rclone,本地不留檔)

a) 訊號(若有效)

回覆用戶的格式(先摘要辯論,結果放在最下方):

  • 摘要辯論:初步提議、關鍵辯論點(附上簡短引述)、投票結果 + 每個角色使用的 AI 模型。
  • 然後在最下方放置訊號區塊:
🔔 SIGNAL <PAIR> — <BUY/SELL> <LIMIT/STOP>
Entry: <價格>  |  SL: <價格> (<X> 點 = $<Y>,最高 $3)
TP: <價格> (RR 1:<r>)  |  Confidence: <Z>%
Reason: <1-2 句人類語言 — 為何選擇此水準與方向,來自辯論>
Valid: <時效/到期備註,例如若價格已越過水準則視為無效>
  • 透過 rclone rcat gdrive:Linux-Server/signals/<YYYYMMDD>-<PAIR>/signal.md 儲存,內容包含:日期、品種、完整訊號、兩位分析師的論點、投票結果、模型、預算、狀態:PENDING。

b) 不交易(投票分歧 / 數據無效)

輸出:「🚫 NO TRADE — <來自辯論的簡短原因>」,儲存到相同資料夾,狀態為 NO-TRADE。

c) signal-result win|lose [原因] 指令

  1. 尋找最後一個狀態為 PENDING 的訊號:rclone lsf gdrive:Linux-Server/signals/ --dirs-only | sort | tail → 透過 rclone cat 讀取其 signal.md。如果沒有 PENDING 的訊號,詢問用戶指的是哪個訊號(在此模式下允許反問)。
  2. 更新 Drive 上的 signal.md:將狀態改為 WIN/LOSE,新增一行結果 + 用戶原因 + 結算日期。
  3. 附加一行到交易紀錄 gdrive:Linux-Server/signals/track-record.md(若不存在則建立):YYYYMMDD | pair | 方向+類型 | 入場 | 結果 WIN/LOSE | 用戶原因。
  4. 簡短回覆用戶:結果已記錄 + 目前的交易紀錄統計(例如「XAUUSD: 4W-2L, 勝率 67%」——從交易紀錄計算)。

d) 訊號過期

如果用戶回報訊號從未觸及入場點(價格越過/反轉),則記錄為 LOSE,原因為用戶給的理由(例如「錯過時機」)——這仍然是有效的學習資料。

8. 禁止事項

  • 禁止使用網路搜尋/網路擷取——數據必須來自本地 MT5。
  • 禁止編造價格/ATR/支撐阻力水準。
  • 若點差極大或市場關閉(tick_time 過時),禁止給出訊號——輸出 NO TRADE。
  • 禁止止損超過 $3,禁止停利不在 RR 1:1.5/1:2 範圍內,禁止未經兩位分析師同意就使用市價單。
  • 裁判禁止參與市場方向判斷。
  • 裁判禁止進行分析/發表意見——即使裁判模型很聰明,其角色純粹是主持人。分析工作仍由分析師負責。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能