跳轉到

反詐投資王(anti-gambling-trader-tw)研究筆記

資料來源

項目 連結
GitHub repo(★367 / 33 forks / MIT) https://github.com/mars-tw/anti-gambling-trader-tw
官方站 https://mars-tw.github.io/anti-gambling-trader-tw/
反詐求助(工具本身推薦的官方管道) 165 全民防騙網 · 金管會證期局 · 投保中心

Metadata(2026-09-15 抓取):367 stars / 33 forks / 0 open issues · MIT · 建立於 2026-06-26、最後 push 2026-07-22 · Python · topics 含 anti-gambling、scam-detection、survivorship-bias、taiwan-stock、claude-code。repo 內有 .claude/、.agents/、llms.txt——是用 AI coding agent 開發的專案。

一句話定位

它不是幫你賺錢的工具,是在你賠更多錢或被詐騙收割之前,用數學跟你說真話的工具。

README 自己的形容是「一個誠實到不討喜的工具」:把交易紀錄(台股/台股 ETF/台指期與選擇權/美股/加密貨幣/外匯)丟進去,它用統計方法判斷你的獲利比較像可重複的優勢還是運氣+倖存者偏差。不適合長期投資的,它會直接勸退你。

反詐使命:這部分才是它跟其他績效分析工具的差別

作者把台灣的情境寫得很白:假飆股群、假二群、假 VIP 群、假名師、假績效截圖、保證獲利話術、詐騙幣與假投資平台——絕大多數靠同一招:用倖存者偏差與精選截圖,讓你誤以為有穩賺的捷徑。

所以工具直接內建對付這招的指令:

# 貼上群組對話,掃描詐騙話術(不給假百分比,只給風險等級)
anti-gambling-trader scan-text "老師帶單保證獲利,快加VIP客服"

# 「勝率 90%、月報酬 20%」純靠運氣出現的機率是多少?
anti-gambling-trader guru-check --win-rate 0.9 --trades 10 --monthly-return 0.2

# 用數學算出「連贏 10 次的神人」有多容易靠運氣出現
anti-gambling-trader survivorship

# 鑑識宣稱的報酬序列是否有可疑徵兆(過度平滑、高得可疑的夏普)
anti-gambling-trader forensics --file 老師的月報酬.txt

survivorship 這一條特別漂亮:一群人隨機交易,總會有人連贏十次;把這個機率算給你看,「神人」的說服力就沒了。 這是把倖存者偏差從一個抽象概念變成一個你能自己驗算的數字。

還有 LINE 對話掃描(理解 LINE 匯出標頭與跨訊息話術,顯示發言者、時間、原句與理由)與交易截圖 OCR 覆核——都是針對台灣詐騙實際發生的載體設計的。

五種裁決等級:四級都是勸退

等級 意義 勸退
🟥 gambling 樣本期望值為負——方法不變,長期統計預期就是虧損 ✅ 強烈勸退
🟧 insufficient 樣本太少,無法區分本事與運氣 ✅ 勸阻重押
🟨 luck_suspected 帳面賺錢,但統計上像運氣 ✅ 高度存疑
🟨 fragile_edge 有統計訊號但結構脆弱、風險高 ✅ 謹慎
🟩 statistical_edge 正期望值通過顯著性檢定 ❌ 不勸退(仍非保證)

五級有四級是勸退,而且最好的那一級還特別註明「仍非保證」。這個設計本身就是產品態度。

它怎麼分辨優勢與賭博

  1. 期望值:真實期望值為負,長期就是輸(數學定義);樣本期望值為負則「先當賭博處理」(保守原則)。
  2. 顯著性檢定:t 檢定 + 置中 Bootstrap(shift method)重抽,兩個都要 p < 0.05 才算「不是運氣」。README 還特別解釋 p 值的正確意義——「若沒有優勢且模型假設成立,純靠抽樣波動出現至少同樣極端結果的機率」,不是「有優勢的機率」。
  3. 樣本外驗證:依真實平倉時間做單一切點,前後段各至少 10 筆且不拆同時點;兩段都要有顯著正期望、後段衰減小於 50%,而且規則必須在看後段之前凍結。
  4. 賭博特徵掃描:負期望、單筆暴賺撐場、賺小賠大、極端回撤、長連虧、純當沖。

最值得抄的設計:資料不完整就 fail closed

這是整個專案工程上最成熟的部分。它不猜、不湊,直接拒算:

  • 缺少、無效或全部相同的平倉時間 → 不用列順序冒充時序,也不宣稱完成樣本外驗證
  • 不同或不明損益幣別 → 不直接相加;混用有時區與無時區時間 → 不安全排序
  • 契約乘數、名目本金或 direct P&L 的進場基準不可靠 → 停用報酬率與回撤百分比
  • 盈虧、已實現損益、realized_pnl 這種 gross/net 語意不明的欄名 → 要求你改成明示「淨」的欄名或親自確認,不冒充淨損益

「寧可拒算也不給一個看起來合理的錯數字」——這跟本站 Vibe-Trading 那個 cycle 的 bug 主題(「把缺失值悄悄換成合理預設」)是同一個原則的正面版本。金融工具一個沉默的錯誤數字,比報錯危險得多。

另一個誠實的細節:逐策略體檢刻意不對個別策略做優勢認證——因為多重比較未校正會把運氣誤認成優勢。它只呈現描述統計幫你找出哪一招在送錢,不發優勢證書。

自動化交易腳架

除了分析,它還能 scaffold 產生一整套自包含的自動化交易專案(策略、風控、券商介面、資料源、圖表):

python -m core.cli scaffold --name my_bot --broker binance --chart lightweight \
    --market crypto --symbols "BTCUSDT,ETHUSDT" --from-analysis my_trades.csv
cd my_bot && pip install -r requirements.txt && python main.py   # 預設紙上模擬

預設 PaperBroker,另有 13 種真實券商/交易所範本。 生成的歷史 runner 不會送出真單;要真實自動交易,使用者必須自行填金鑰、自行完成 live runner、並沿用四層安全檢查後明確解鎖。--from-analysis 會把裁決結果嵌進生成的專案裡——你的策略被判定是賭博,這件事會跟著程式碼走。

目前限制

  • 367★、最後 push 2026-07-22,之後兩個月沒動。以一個 2026-06 才建立的專案來說還算新,但要注意維護節奏。
  • 統計輔助不是司法鑑定。README 自己寫明官方管道(165、金管會、投保中心)永遠優先。
  • OCR 截圖辨識只擷取候選欄位,可能看錯正負號、小數點與買賣方向,必須逐欄對照原圖;低信心不自動填。
  • 樣本外驗證需要可信的平倉時間,很多券商匯出的紀錄不一定有。
  • 核心零依賴,但 Excel 讀取需 openpyxl、OCR 需 Tesseract+繁中字庫、實跑回測需 backtrader 或 vectorbt。

研究價值與啟示

關鍵洞察

  1. 「用數學檢驗承諾」是對付投資詐騙最有效的工具,而且門檻比想像低。 guru-check 和 survivorship 這兩條指令的數學其實不難——難的是想到要把它做成一行指令給一般人用。詐騙最怕的就是你冷靜地把它的承諾丟進數學裡檢驗,而這個專案把「冷靜」變成了一個 CLI。

  2. 五級裁決有四級勸退,是一個罕見的產品誠實度樣本。 絕大多數交易工具的商業模式建立在「讓你覺得自己可以」之上。這個工具反過來,預設假設你沒有優勢,要你拿統計證據來推翻。這個預設方向的選擇,比任何免責聲明都有意義。

  3. fail closed 是金融工具的正確預設。缺時間不猜順序、幣別不明不相加、gross/net 不明就拒絕載入——這些規則每一條都會讓工具「更不好用」,但每一條都在防一個沉默的錯誤結論。對照本站 AutoHedge(37 MB 沒人讀過、時間戳壞掉的假交易紀錄),差別一目了然。

  4. 「刻意不做」的克制比多做一個功能更難。它有逐策略統計,但不對個別策略發優勢認證,理由寫得很清楚:多重比較未校正會把運氣誤認成優勢。知道自己的方法在哪裡會失效,並且就停在那裡,這是統計素養而非工程能力。

  5. 這是少見的「為台灣情境做的」開源工具。台指期契約乘數、LINE 對話匯出格式、165 專線、假二群話術——這些細節沒有在地經驗做不出來。在地化不是翻譯 UI,是把在地的問題形狀寫進產品邏輯裡。

與其他專案的關聯

對照 關係
CZSC 順序關係:CZSC 給你更精細的進出場判斷,這個工具問你那些判斷到底有沒有統計優勢。先驗證再精進,順序反了就是在優化一個負期望值
Vibe-Trading 共同原則:那邊的 Shadow Account 診斷你的交易行為、grounding gate 擋掉沒來源的數字;這邊的 fail closed 拒算不可靠輸入。都在防「一個看起來合理的錯數字」
AutoHedge 完全相反的態度:一邊預設你沒有優勢要你舉證,一邊賣「autonomous hedge fund」的夢
AI Hedge Fund / TradingAgents 那些做決策,這個做事後審計。任何 agent 交易系統都應該接一層這種統計驗證