跳到主要內容

Gekko 批次回測工具 (Backtest Tool),一次跑多個貨幣組合,達到多線程 (Multithreading) 處理



這個是由 @xFFFFF 提供的 Gekko 批次回測工具,它能在同一時間回測多個策略或不同的貨幣組合,並將結果直接顯示在 CMD 上並輸出成 .csv 檔。除了方便一次回測大量數據外,它的重點是能達到多線程 (Multithreading) 執行,Gekko 本身並沒有這項功能,所以就算你有 6C12T 它也是只會使用 1C1T,比較直覺的解決辦法就是多開幾個網頁 UI 或 CLI 就好了,但那會需要個別設定很浪費時間,而這個 Backtest Tool 剛好幫你解決了這個麻煩。

GekkoBacktestTool
GitHub : https://github.com/xFFFFF/GekkoBacktestTool


首先先到 GitHub 把它下載回來,或使用 git clone https://github.com/xFFFFF/GekkoBacktestTool.git 指令。並將裡面的 backtest.pl 與 database.csv 複製到 Gekko 資料夾內。


my @strategies = qw( neuralnet RSI_BULL_BEAR_ADX );
my @pairs = qw(
binance:USDT:ETH
binance:BTC:NEO
);
再來打開 backtest.pl 並修改 @strategies (選擇的策略) 和 @pairs (交易的組合),要填入幾個基本上是沒有上限的,可以一次回測多個節省時間,填寫兩個策略或交易組合間記得要空白。也可以順便修改下方的策略參數、Candlesize、Historysize...等, 這些會決定你策略執行的結果。


sudo cpan install Parallel::ForkManager Time::ParseDate Time::Elapsed
然後先使用指令安裝 Parallel。


perl backtest.pl
先 cd 到 Gekko 資料夾後就能開始回測了,結果會直接顯示在終端機上。和使用 CLI 一樣,所有策略的參數都必須在剛剛的 backtest.pl 內設置,這邊只會呈現結果。


database.csv 內也可以比較清楚的看到回測結果,每次回測並不會清空這個 csv,可以當作回測紀錄來使用。






留言



這個網誌中的熱門文章

Linux (Ubuntu) 查詢硬碟容量、剩餘大小指令

在 Ubuntu Desktop 版本或有安裝 GUI 像 Xfce 的 Server 版本當然可以直接從圖形介面查看硬碟容量和已經使用的大小, 但如果是在純 CLI 版本或使用 SSH 連線時呢?那就需要用到指令了。 顯示硬碟容量、已使用、可用大小。 df -h 查詢資料夾所占硬碟的大小。 du -h 查詢檔案大小 ls -l

吃光硬碟讀寫的大怪獸 - Superfetch 是什麼?可以關嗎?

Superfetch 是 Windows 內建的硬碟快取功能,它會預先將檔案讀取起來到 Ram 裡方便稍後做使用,所以常常在工作管理員內都可以看到 Superfetch 往往占掉了不少的硬碟使用量,那這樣的情形是好的嗎?其實理論上並不會有太大影響,畢竟 Superfetch 只是將等會要讀取的內容先預置在 Ram 中,如果不趁硬碟負載小的時候優先讀取,之後反而可能忙不過來呢。當然如果你是使用 SSD 的話可能會為使用壽命擔心, 高頻率的讀取可能加速固態硬碟老化,那在讀取速度原本就很快的 SSD 當然就相對的沒有必要開啟 Superfetch 了。 Superfetch 在電腦待機時吃掉大部分硬碟使用量是很常有的事。 要關閉也很簡單, Win+R > services.msc 打開「服務」,找到 Superfetch。 右鍵 > 內容,將它更改為「 已停用 」後確定即可。

SSHPass - 讓 SSH 連線自動登入、不需要輸入密碼,以及 Windows 快速登入檔製作

登入遠端的 SSH 時每次都要打密碼真的是非常浪費時間,尤其是想把 SSH 連線做成一鍵捷徑時一定會遇到密碼的問題,即便成功連線了還是得手打密碼啊,身為一個懶鬼當然是連密碼都想省掉,那 SSHPass 就可以幫你做到直接將密碼加在指令列內,以後只要靠一個 .bat 就可以快速連線了。 sudo apt-get install sshpass 首先先在用戶端 (Client) 安裝 SSHPass, 如果是在 Windows 可以使用 Bash  來進行安裝。 sshpass -p 密碼 ssh 帳號 @ 地址 這行指令就能讓你直接登入了,當然這還需要打一行指令還不夠方便。 為了達到真的一鍵登入,我們先建立一個 .bash 指令檔。 bash login.bash 再寫一個 .bat 檔放在同路徑下。那直接執行 BAT 時就會先開啟 Bash > SSHPass > SSH 成功連線!是不是又更方便了不少呢。