現在虛擬貨幣投資愈來愈熱門
確實有許多研究的空間
例如鏈上數據
k線數據

新聞消息

都有可能拿來當作交易的判斷
我們常常會做很多分析之後來做交易
我們做交易的流程可能是這樣的
1.(幣種 交易週期 當前時間)
2.獲取多方數據
3.聚合數據
4.複雜買賣訊號計算
5.輸出買賣訊號

這個工具開發靈感就是 只要用戶能把策略定義成上面那個流程
不管怎樣天馬行空的策略 只要符合上面格式 其他事情就可以交給Vedanta
一鍵回測 一鍵部屬(上雲端)自動交易!!!
Vedanta 一個簡潔實用的加密貨幣交易策略回測與自動化交易服務

本專案 Vedanta 是一個專為加密貨幣交易設計的綜合性平台,提供從策略開發、回測、視覺化到線上自動交易的完整解決方案。它整合了幣安 API,並內建多種技術指標策略,讓使用者能夠高效地測試和部署交易策略。
主要功能:
- 策略回測:強大的回測引擎,支援多種技術指標策略,計算總回報、最大回撤、勝率等關鍵績效指標。
- 線上自動交易:將回測驗證過的策略無縫部署到線上環境,實現自動化交易。
- 豐富的技術指標庫:內建 ADX, Bollinger Bands, CCI, EMA, KD, MACD, Momentum, RSI, SMA, Smart Money, Williams 等多種技術指標策略。
- 結果視覺化:直觀的圖表展示回測結果,包括權益曲線、帶有持倉的價格圖和交易回報分佈。
- 幣安 API 整合:直接從幣安獲取實時 K 線數據,支援多種交易對和時間週期。
回測結果範例:

線上部署範例:

動手做自己的策略
如果我想做一個結合鏈上數據tvl的策略該怎麼做呢?
1.在Technicalindicatorstrategy資料夾新增一個tvl_sma.py

2.撰寫數據獲取邏輯

首先一定要有k線數據對吧

再來這兩個函數都是用來取得tvl的
只是一種是根據鏈取得tvl一種是根據協議取得

再來要定義買賣邏輯 這裡的邏輯是
當價格創新高 但是tvl沒創新高 賣出
當價格創新低 但是tvl沒創新低 買進

最後get_signals函數就這樣寫啦
1.取得價格資料
2.取得tvl資料 (未來要再取得新聞資料也是可以 不過就加一個函數)
3.合併資料 時間對齊
4.計算買賣訊號後返回
這就是開發一個策略的流程
開發好了接下來呢?
接下來就可以打開backtest_usage.ipynb
裡面的範例

首先用getattr(Technicalindicatorstrategy,strategies)取得剛剛建立好的tvl_sma策略
接下來使用該策略對乙太幣 以每日當交易週期 計算最近365根k棒數據取得df_signals
將df_signals丟進回測函數做回測 還可以條手續費 槓桿 是否做空
最後把result丟入繪圖函數畫結果

最後如果回測覺得滿意該怎麼做呢?
打開online_usage.ipynb
如果要做現貨

如果要用合約

這裡為了測試 我用一個testsma策略 他是一個1分k 雙均線策略 會頻繁交易
可以拿來debug用 看看是否成功串接api做買賣
如果測試ok就可以寫一個run.py

你可能還要客製一下參數
其實比較優美的作法應該不用這個Wrapper 而是直接把你的策略邏輯包好在
但是我這是測試用 所以我導入testsma策略 然後把它原本的get_signals函數
做一個包裝客製化我自己定義的n1,n2雙均線週期
最後將這個包裝好的策略丟給auto_trade_futures函數做自動交易
auto_trade_futures函數

他接受幣種 週期 每筆交易花費的usdt 槓桿倍數 策略 重試次數 執行模式單次或循環
首先建立客戶端連線 然後計算最小下單量還有一些格式轉換的東西
之後定義一個process_once函數
這個 process_once()
函數是在「自動化量化交易系統中執行一次交易決策邏輯」的核心邏輯,整體流程如下:
根據目前行情與策略訊號,判斷是否要開倉或平倉,並透過 API 自動下單執行
所以其實只要把run.py寫完

並定時執行這個程式就可以了
至於怎麼定時執行就要靠Render啦
在render選擇該專案

選擇地區記得改成新加玻不然會被擋


然後記得設置 執行頻率 和 啟動命令

把.env檔案加進去
按下部屬按鈕


最後成功就會在render後台看到他很努力在自動交易啦
專案連結