跳到主要內容

在一年免費的 Google Cloud (GCP) 上面安裝 Gekko 交易機器人,免開機就能隨時讓程式操盤



雖然之前用過 AWS EC2 來裝 Gekko,但想說還是來用一個 Google Cloud (GCP) 的來當備用,順便比較看看哪個比較好,一樣都是一年免費,Google 是採用額度制的,提供你 $300 的使用額度,所以可以選擇用更好的設備 (但可能用不到一年 $300 就花完了) 來建置 Gekko,兩者的優劣可以自己比較看看,如果還沒裝到 AWS 的不妨試試看 Google Cloud,介面算做得比較好。

Google Cloud (GCP)
官方網站 : https://cloud.google.com


選用 Google Cloud 安裝 Gekko 的原因當然是為了使用運算 (Compute Engine) 功能,但它還有非常多其他的功能,反正 Gekko 也只會占用少部分效能,不妨多去玩玩 GCP。


註冊完後就可以從主控台左邊找到 Compute Engine > VM 執行個體。


建立 VM 執行個體可以自訂自己的機器,包括 CPU、RAM、磁碟...等,還有主機所在區域可以選,基本上 Gekko 對於這些都沒有太多要求,可以用預設的甚至更低都可以,如果你有要把 Gekko 開在網頁介面記得打開 HTTP、HTTPS (SSL) 流量。


然後到這裡下載並安裝 Google Cloud SDK,這是 GCP 的指令介面,會方便我們使用虛擬主機,而且它也內含了 PUTTY。


安裝完就會自動開啟,或從開始找到 Google Cloud SDK。第一次運行會需要和 Google 同步,因此會連上 Google 取得帳號授權,然後選擇自己的 GCP 專案 (不是指 VM 個體,如果都沒新增的話應該就只有原始的那一個),最後選擇伺服器區域,這邊就照剛剛 VM 個體的區域照選就好了。


gcloud compute ssh 你的 VM 個體名稱
接著輸入上述指令且確認後續動作後就會開啟 PUTTY 的連線,之前有玩過 AWS 的人應該接下來就很熟悉了。


const CONFIG = {
  headless: true,
  api: {
    host: '0.0.0.0',
    port: 3000,
  },
  ui: {
    ssl: false,
    host: 'VM 個體的外部 IP',
    port: 3000,
    path: '/'
  },
  adapter: 'sqlite'
}

if(typeof window === 'undefined')
  module.exports = CONFIG;
else
  window.CONFIG = CONFIG;
下一步就是到 Gekko 的 GitHub 下載 Gekko 回來,並且把 gekko\web\vue\UIconfig.js 更改成如上方所示,並換成自己 VM 個體的外部 IP。 


pscp -i C:\Users\你的帳戶\.ssh\google_compute_engine.ppk -r C:\gekko GCP帳戶@VM個體外部IP:/home/GCP帳戶/
接著按 Win+R > CMD 鍵入上述指令,把改好完的 Gekko 上傳到 GCP,上面的路徑要自己更改,預設的 .ppk 檔應該是在 User\帳戶名稱\.ssh 裡,可以自己先去確認一下。


cd gekko
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 8.9.4
sudo apt-get install -y build-essential
npm install tulind
npm install talib
npm install --only=production
接著就能回到 PUTTY 逐一使用上述指令來安裝 Gekko 了,基本上需要的程式庫都包含在這些指令內。


Tulip、TA-Lib 也都應該可以正確安裝沒有問題。


node gekko --ui
最後就能在 GCP 開啟 Gekko 啦,如果想要 Gekko 在關閉 PUTTY 後仍然可以繼續運行,記得先使用方便的掛站指令 screen







留言

張貼留言



這個網誌中的熱門文章

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。 右鍵 > 內容,將它更改為「 已停用 」後確定即可。

TLS / SSL 金鑰轉檔,「.crt / .key」如何轉成「.pem」?( OpenSSL 教學)

不管是哪個 Certificate Authority (CA) 發的憑證多半金鑰檔都是給「.crt / .key」格式的檔案,像是「ca_bundle.crt」、「 certificate.crt」和「.private.key」這種檔案, 但是在實際使用 (Nginx、Apache...等伺服器) 卻會需要的是「.pem」檔 ,那要怎麼轉換呢?其實可以直接使用 OpenSSL 這個軟體和幾行指令來達成。 OpenSSL 官方網站 :  https://www.openssl.org 下載頁面 :  https://www.openssl.org/source sudo apt-get install openssl 以 Linux (Ubuntu / Debian ...等) 為例,可以直接使用 apt-get 指令下載安裝 OpenSSL,如果是其他系統可以參考官方網站的說明。 openssl rsa -in private.key -text > private.pem openssl x509 -inform PEM -in certificate.crt > certificate.pem openssl x509 -inform PEM -in ca_bundle.crt > ca_bundle.pem 以前述所提到的「ca_bundle.crt」、「 certificate.crt」和「.private.key」三個檔案為例,就可以用上方的指令完成轉檔,其實同副檔名的轉檔指令都相同,所以兩個「.crt」的指令其實是重複的,也要記得套換成自己的檔案名稱。 如果需要申請免費的 SSL 憑證也可以參考之前介紹過的 SSL For Free ,它是使用「Let's Encrypt」核發的憑證,以及如果覺得申請憑證和定期更新太麻煩,也可以考慮自動化的 Caddy Server 能自動幫網站升級 HTTPS。