Vedanta 是一個簡潔實用的加密貨幣交易策略回測與自動化交易服務。
本專案 Vedanta 是一個專為加密貨幣交易設計的綜合性平台,提供從策略開發、回測、視覺化到線上自動交易的完整解決方案。它整合了幣安 API,並內建多種技術指標策略,讓使用者能夠高效地測試和部署交易策略。
- 策略回測:強大的回測引擎,支援多種技術指標策略,計算總回報、最大回撤、勝率等關鍵績效指標。
- 線上自動交易:將回測驗證過的策略無縫部署到線上環境,實現自動化交易。
- 豐富的技術指標庫:內建 ADX, Bollinger Bands, CCI, EMA, KD, MACD, Momentum, RSI, SMA, Smart Money, Williams 等多種技術指標策略。
- 結果視覺化:直觀的圖表展示回測結果,包括權益曲線、帶有持倉的價格圖和交易回報分佈。
- 幣安 API 整合:直接從幣安獲取實時 K 線數據,支援多種交易對和時間週期。
只需參考以下圖片並參考Technicalindicatorstrategy資料夾底下檔案的作法 就會發現有一定格式 策略可以想像成這樣的流程
(幣種 交易週期 當前時間) -> 獲取多方數據 -> 聚合數據 -> 複雜買賣訊號計算 -> 輸出買賣訊號只需用這個思路參考下面圖片和tvl_sma.py就知道怎麼設計自己的策略了
backtest_usage.ipynb: 示範如何使用回測功能並可視化結果的 Jupyter Notebook,詳細展示了如何載入數據、應用策略、執行回測並繪製結果。online_usage.ipynb: 示範如何使用線上自動交易功能的 Jupyter Notebook,引導使用者配置和啟動自動交易。run.py: 專案的主要執行入口點,負責整合選定的交易策略(例如testsma)與線上自動交易模組 (auto_trade_future),實現策略的自動化執行。Backtest/: 包含核心的回測邏輯。backtest.py: 實現了強大的回測引擎,能夠根據歷史數據模擬交易,並計算總回報、最大回撤、勝率等關鍵績效指標。
online/: 包含線上自動交易的相關模組。auto_trade.py: 實現了現貨自動交易的核心邏輯,包括訂單管理、風險控制等。auto_trade_future.py: 專為期貨交易設計的自動交易邏輯,處理期貨特有的槓桿、保證金和強制平倉等機制。
Plot/: 包含繪圖功能。plot.py: 提供豐富的視覺化工具,將回測結果以圖形方式呈現,包括權益曲線、帶有持倉的價格圖和交易回報分佈,幫助使用者直觀分析策略表現。
Technicalindicatorstrategy/: 基於技術指標的交易策略集合。每個文件實現一個特定的策略,並提供一個生成交易信號的函數,這些策略可以直接用於回測和自動交易。adx.py: 平均趨向指標 (ADX) 策略,用於判斷趨勢強度。boll.py: 布林通道 (Bollinger Bands) 策略,用於衡量市場波動性。cci.py: 商品通道指標 (CCI) 策略,用於判斷超買超賣。ema.py: 指數移動平均線 (EMA) 交叉策略,常用於判斷趨勢轉向。kd.py: 隨機指標 (KD) 策略,用於判斷超買超賣和趨勢反轉。macd.py: 移動平均收斂發散 (MACD) 策略,用於判斷趨勢和動能。momentum.py: 動量策略,衡量價格變動的速度。rsi.py: 相對強弱指數 (RSI) 策略,用於判斷超買超賣。sma.py: 簡單移動平均線 (SMA) 交叉策略,用於判斷趨勢方向。smartmoney.py: 使用維加斯通道和船體移動平均線的聰明錢策略,旨在捕捉市場中的大資金流向。testsma.py: 簡單移動平均線 (SMA) 交叉策略的測試實例,展示了如何從幣安獲取 K 線數據並生成交易信號。williams.py: 威廉指標 (%R) 策略,用於判斷超買超賣。
為了讓您快速了解專案的核心功能,我們提供了一系列範例檔案:
- 回測範例:
backtest_usage.ipynb - 策略最佳化範例:
TurtleMACDTimeZoneFilter_optimization_usage.ipynb - 多參數最佳化分析範例:
Multi_parameter_optimization_analysis_usage.ipynb - Telegram Bot 範例:
telegram_message_bot_turtle.py - 合約測試網交易範例:
turtle_run.py
您可以從這些檔案開始,了解如何使用本專案的各項功能。
-
安裝python 請確保您的系統上已安裝 Python 3.10 以上版本。您可以從 Python 官方網站 下載並安裝。
-
安裝依賴套件:
pip install -r requirements.txt
```bash
uv sync
```
- 運行 Jupyter Notebooks:
- 打開
backtest_usage.ipynb或online_usage.ipynb以了解如何導入和使用不同的策略、生成信號、運行回測以及繪製結果圖表。
- 打開
- 配置線上交易 (可選):
複製
.env-example為.env,並填入您的 API 密鑰。- 如果需要進行線上自動交易,請根據
online/目錄下的模組和run.py的範例,配置相關的 API 密鑰和交易參數。
- 如果需要進行線上自動交易,請根據
這是一個專為 Gate.io 現貨市場設計的自動化交易量生成機器人。它的主要目標是在指定的交易對上達成目標交易量,而不是為了獲利。
機器人會使用指定的「本金」不斷地執行買入-賣出循環,直到累積的總交易量達到「目標交易量」。
- 買入: 程式會以當前的市場最高買價 (
highest_bid) 掛出買單。 - 等待成交: 程式會持續輪詢(Polling)訂單狀態,直到確認買單完全成交。
- 賣出策略:
- 首次嘗試: 買單成交後,程式會立刻以「買入成交價 + 1 tick」的價格掛出賣單,嘗試獲取微小利潤。
- 若首次失敗: 如果該賣單在指定的「超時時間」內沒有成交,程式會自動取消該訂單。
- 自動追價: 之後,程式會進入一個堅持模式,不斷地獲取市場最新的最高買價來重新掛出賣單,直到成功賣出為止。這個機制確保了資金不會因為市場價格下跌而被卡住,使得整個交易循環可以繼續下去。
重要提示: 此機器人的設計目標是刷高交易量。由於交易手續費和市場滑價(Slippage)的存在,運行此機器人通常會導致本金的微小虧損。
你可以在 gateio_tick_scalper/gateio_tick_scalper.py 檔案的開頭找到並修改以下參數:
CURRENCY_PAIR(str): 你想要操作的交易對,例如"BTC_USDT"。PRINCIPAL_USDT(Decimal): 每一次買賣循環中投入的本金數量(以 USDT 計價),例如Decimal("100")表示使用 100 USDT。TARGET_VOLUME_USDT(Decimal): 你希望達成的總交易量目標(買入和賣出會被累計),例如Decimal("10000")。ORDER_TIMEOUT_SECONDS(int): 單筆訂單(買單或賣單)的等待成交超時時間(秒)。如果超過這個時間訂單還未成交,將會被取消。
- 複製環境檔案: 在專案根目錄下,將
.env-example檔案複製並重新命名為.env。 - 填寫 API 金鑰: 打開
.env檔案,並填入你的 Gate.io API 金鑰:GATE_API_KEY=你的API_KEY GATE_API_SECRET=你的API_SECRET
請在專案的根目錄下,使用以下指令來啟動機器人:
python gateio_tick_scalper/gateio_tick_scalper.py- pandas
- numpy
- matplotlib
- requests
- ccxt
- python-dotenv
本專案根據 GNU General Public License v3.0 (GPL-3.0) 發布。
這意味著:
- 您可以自由地使用、修改和分發本軟體。
- 如果您分發本軟體的任何部分(無論是否修改),您必須以 GPL-3.0 許可證發布您的作品。
- 您必須提供本許可證的副本以及任何修改的原始碼。
有關完整的許可證條款,請參閱 GNU General Public License v3.0。




