GMGN 聰慧錢包地址深度分析工具設計文檔
來源: @zhaoliu911899 | 原文連結
日期:
標籤:
聰慧錢包分析地址篩選規則交易打分系統
看到你要整理一篇 GMGN 聰明錢包分析工具的技術文件。讓我先理解一下內容結構。
★ Insight ───────────────────────────────────── 這篇文章是一個完整的量化交易系統設計文件,包含:
- 錢包地址篩選規則(避開機器人和異常交易)
- 割跟單檢測(60 秒內買賣套利的風險行為)
- 評分系統(7.5 分制,從勝率、盈利、穩定性多維度評估)
這類系統性文件最重要的是保留完整邏輯鏈條和數值參數。 ─────────────────────────────────────────────────
現在開始整理:
來源: @zhaoliu911899 (趙企鵝🐧🐧🐧)
日期: 2024-11-06
標籤:gmgn量化交易聰明錢包跟單策略solana
專案概述
本專案旨在對 GMGN 平台上的聰明錢進行深度分析,識別高效投資策略和潛在的市場機會。
系統架構
- 資料獲取層:
dao_gmgn.py - 儲存層:
service_gmgn_storage.py - 服務層:
service_gmgn.py - 快取層:
token_market_cap_cache.py、token_trades_cache.py
地址篩選規則
排除規則
1. 資金規模篩選
1.1 SOL 餘額過濾
- 規則:SOL 餘額 < 1
- 目的:排除資金極其微小的地址
- 意義:過濾無實際交易能力的錢包
1.2 利潤規模篩選
- 總利潤規則:
total_profit_u < 0 - 7 天利潤規則:
profit_7d < 15,000 USD - 30 天利潤規則:
profit_30d < 25,000 USD - 目的:聚焦有實際盈利能力的地址
- 意義:排除長期虧損或微小收益的地址
2. 交易行為分析
2.1 交易頻率過濾
- 規則:30 天內交易次數 > 3,000 次
- 計算方式:
buy_count_30d + sell_count_30d > 3,000 - 目的:排除異常高頻交易地址
- 意義:識別可能存在機器人交易或刷量行為
2.2 投資回報率分析
- 30 天 ROI 規則:
profit_30d / cost_30d < 0.1 - 買入/賣出利潤率均值規則:兩者均 < 0.1
- 目的:評估投資效率
- 意義:篩選出投資策略低效的地址
3. 代幣交易多樣性
3.1 代幣數量過濾
- 規則:30 天交易幣種 < 10 個
- 目的:確保地址有足夠的交易多樣性
- 意義:排除單一幣種或交易範圍狹窄的地址
3.2 代幣利潤異常檢測
- 最大單幣種利潤規則:最大代幣利潤 < 10,000 USD
- 異常利潤分布規則:最大利潤 > 第 2-10 名利潤總和
- 目的:識別利潤分布不均衡的地址
- 意義:發現可能存在操縱市場的異常交易模式
4. 成本與交易成本
4.1 零成本交易過濾
- 7 天成本為 0 規則
- 30 天成本為 0 規則
- 目的:排除沒有實際交易成本的地址
- 意義:過濾可能是測試或模擬交易的錢包
5. 狀態管理
5.1 刪除狀態處理
- 已標記刪除的地址直接跳過
- 滿足任一放棄規則,將狀態設定為 Delete
- 目的:高效管理地址生命週期
排除規則的設計哲學
- 多維度評估
- 平衡精確性和包容性
- 動態調整閾值
- 持續優化演算法
規則應用流程
- 順序檢查每個規則
- 一旦滿足任一規則,立即標記為放棄
- 記錄詳細的放棄原因
- 定期審核和調整規則
割跟單識別規則
1. 預篩選條件
- 僅分析非刪除狀態的地址
- 必須具備
address_activities交易活動記錄 - 過濾掉市值 >= 100,000 USD 的代幣
2. 時間窗口規則(快速交易檢測)
2.1 時間間隔限制
- 檢測時間窗口:60 秒內
- 目標:識別短時間內的異常交易行為
2.2 交易序列要求
- 必須是連續的買入-賣出交易
- 買入交易必須在賣出交易之前
- 交易時間間隔 <= 60 秒
3. 交易資料一致性分析
3.1 數量一致性
- 比較買入和賣出交易的基礎數量
- 允許的誤差範圍:±5%
- 計算公式:
|賣出數量 - 買入數量| / 買入數量 <= 0.05
3.2 資料驗證標準
- 買入金額必須為正
- 賣出金額必須為正
- 排除異常或無效交易記錄
4. 割跟單特徵識別
4.1 高風險特徵
- 60 秒內完成買入和賣出
- 交易數量高度一致
- 交易代幣市值較低(< 100,000 USD)
4.2 風險標記
- 識別到割跟單特徵的地址
- 自動標記為 Delete 狀態
- 在備註中新增「割跟單」標籤
5. 日誌與監控
- 記錄每次檢測的詳細資訊
- 輸出可疑地址、代幣地址和市值
- 使用 logger 記錄關鍵步驟和異常
6. 快取策略
- 使用
TokenTradesCache快取交易記錄 - 使用
TokenMarketCapCache快取市值資訊 - 減少重複網路請求,提高檢測效率
7. 異常處理
- 捕獲並記錄檢測過程中的異常
- 確保單個地址檢測失敗不影響整體流程
8. 檢測輸出
- 返回
potential_harvest_addresses列表 - 包含可疑地址、代幣地址和市值資訊
割跟單識別的意義
- 保護投資者利益
- 識別市場中的異常交易行為
- 提供區塊鏈交易透明度
- 幫助投資者規避高風險交易
打分規則(總分 7.5 分)
評分維度詳解
1. 30 天勝率(1 分)
- 直接使用
win_rate_30d作為得分 - 勝率越高,得分越高
- 反映交易成功率
2. 7 天盈利(1 分)
- 0-5 萬美元線性得分
- 計算公式:
min(1.0, max(0.0, profit_7d / 50000)) - 鼓勵短期穩定盈利
3. 30 天盈利(1 分)
- 0-10 萬美元線性得分
- 計算公式:
min(1.0, max(0.0, profit_30d / 100000)) - 評估中期投資表現
4. 利潤穩定性(0.5 分)
- 比較 7 天和 30 天盈利比例
- 比例 >= 2:滿分 0.5 分
- 1.5 <= 比例 < 2:0.25 分
- 比例 < 1:扣 1 分
- 反映盈利的持續性和一致性
5. 買入利潤均值(0.3 分)
- 評估每次買入的平均盈利情況
- 根據平均買入成本和利潤計算
6. 買入利潤率均值(0.7 分)
- 評估買入交易的盈利率
- 關注相對收益
7. 賣出利潤均值(0.3 分)
- 評估每次賣出的平均盈利情況
- 根據平均賣出成本和利潤計算
8. 賣出利潤率均值(0.7 分)
- 評估賣出交易的盈利率
- 關注相對收益
9. 買賣風格(1 分)
- 比較買入和賣出利潤
- 如果賣出利潤/買入利潤 > 1.5,給予額外加分
- 獎勵高效的交易策略
10. 總盈利(1 分)
- 1-5 萬美元線性得分
- 計算公式:
min(1.0, max(0.0, (total_profit_u - 10000) / (50000 - 10000))) - 評估整體盈利能力
11-16. 盈虧 TOP 佔比(各 0.166 分,共 1 分)
TOP 盈利佔比
- TOP1 盈利佔比(0-50%)
- TOP5 盈利佔比(0-75%)
- TOP10 盈利佔比(0-100%)
TOP 虧損佔比
- 虧損 TOP1 佔比(0-50%)
- 虧損 TOP5 佔比(0-75%)
- 虧損 TOP10 佔比(0-100%)
評分標準
| 分數範圍 | 等級 |
|---|---|
| > 5 分 | 優秀 |
| 3-5 分 | 良好 |
| 1-3 分 | 一般 |
| < 1 分 | 較差 |
評分目的
- 全面評估地址的投資能力
- 識別高效交易策略
- 量化投資風險和收益
快取策略
市值快取(TokenMarketCapCache)
- 快取有效期:24 小時
- 減少重複網路請求
- CSV 持久化儲存
交易記錄快取(TokenTradesCache)
- 快取有效期:24 小時
- 支援按代幣地址和錢包地址快取
- CSV 持久化儲存
錯誤處理與重試機制
- 網路請求重試
- 最大重試次數:3 次
- 指數退避策略
- 詳細日誌記錄
效能優化
- 快取機制
- 批次處理地址
- 異常處理與快速失敗
安全考慮
- 不儲存敏感個人資訊
- 使用安全的網路請求方式
- 日誌脫敏
未來改進方向
- 機器學習風險預測模型
- 即時監控系統
- 更複雜的快取淘汰策略
- 多維度風險評分演算法
技術棧
- Python
- Peewee ORM
- MySQL
- loguru
- requests/curl
注意事項
- 程式碼模組化
- 簡潔明瞭的註釋
- 型別提示
- 列舉型別增強可讀性
專案操作 SOP
環境準備
- Python 版本:3.8+
- 安裝依賴庫:
pip install peewee loguru requests pandas
專案檔案結構
dao_gmgn.py:資料獲取層service_gmgn.py:核心服務層service_gmgn_storage.py:儲存服務service_gmgn_ut_*:單元測試和功能驗證指令碼
單元測試指令碼執行順序
| 順序 | 指令碼 | 目的 | 輸出 |
|---|---|---|---|
| 1 | service_gmgn_ut_1_獲取利潤top100地址.py | 獲取盈利最高的 100 個地址 | Top 100 地址列表 |
| 2 | service_gmgn_ut_2_地址統計資訊.py | 統計地址的基本資訊 | 地址統計報告 |
| 3 | service_gmgn_ut_3_初步篩選地址.py | 根據初步規則過濾地址 | 篩選後的地址列表 |
| 4 | service_gmgn_ut_4_所有幣的盈虧.py | 分析所有代幣的盈虧情況 | 代幣盈虧詳細資訊 |
| 5 | service_gmgn_ut_5_檢查是不是json.py | 驗證 JSON 資料的有效性 | JSON 資料檢查報告 |
| 6 | service_gmgn_ut_6_二次篩選地址.py | 進行更嚴格的地址篩選 | 二次篩選後的地址列表 |
| 7 | service_gmgn_ut_7_打分.py | 對地址進行綜合評分 | 地址評分結果 |
| 8 | service_gmgn_ut_8_獲取地址操作記錄.py | 獲取地址的詳細操作歷史 | 地址操作記錄 |
| 9 | service_gmgn_ut_9_檢測割跟單地址.py | 識別可能的割跟單地址 | 可疑割跟單地址列表 |
注意事項
- 確保網路連線正常
- 檢查 API 金鑰和權限
- 關注日誌輸出
- 定期備份資料
故障排除
- 網路錯誤:檢查網路連線
- API 限流:增加重試機制
- 資料解析錯誤:檢查資料格式
效能最佳化建議
- 使用快取機制
- 並行處理資料
- 最佳化資料庫查詢
- 定期清理快取
相關資源
完整程式碼與文件參考:GitHub - zhaoqie/gmgn_smart
原始文章出處(@Assassin_Malvo 的跟單系列教學)包含更多實戰案例與評價方法,建議搭配閱讀。