使用CoinGlass API及Google Cloud Platform(GCP)結合 LINE Notify執行資金費率套利回報Part.2
上一篇我們處理了CoinGlass的資料,只保留了Binance、OKX、Bybit、Bitget、BingX,5間交易所的資訊,並且將幣種只有一間交易所有上架的刪除。
這時我們要做的是找到各個交易對中最大以及最小的資金費率,相加減後做排序,即是找到的最大套利機會幣種,我們可以用以下程式:
with open('coinglass_fundingrate_output_step1.json') as json_file: data = json.load(json_file) pair = [] data_list = [] for i in range(len(data['data'])): temp_data = [] rate = [] exchangeName = [] for j in data['data'][i]['pair']: rate.append(j['rate']) exchangeName.append(j['exchangeName']) max_fundingrate = np.argmax(rate) min_fundingrate = np.argmin(rate) abs = np.abs(np.max(rate) - np.min(rate)) if abs > 0.1: temp_data.append(data['data'][i]['symbol']) temp_data.append(round(rate[max_fundingrate], 4)) temp_data.append(exchangeName[max_fundingrate]) temp_data.append(round(rate[min_fundingrate], 4)) temp_data.append(exchangeName[min_fundingrate]) temp_data.append(abs) pair.append(data_dict) data_list.append(temp_data) sorted_list = sorted(data_list, key=lambda x: x[5])[::-1] line_str = "" for i in sorted_list: line_str += "幣種: " + str(i[0]) + "\n" + str(i[2]) + ":" + str(i[1]) + " " + str(i[4]) + ":" + str(i[3]) + "\n"如此一來就完成了程式的撰寫了,接下來是Google Cloud Platform(GCP)的串接了,我們一開始使用的Herkou服務需要收費了,因此把服務遷移到Google Cloud Platform是個好選擇。
進到GCP頁面之後,先進入左側功能欄Cloud Function頁面:
接著建立函式,記得觸發條件選擇允許未經驗證的叫用,地區可以選擇台灣,執行階段的部分可以選擇最低就好。
接下來部屬程式碼的部分就選擇python,左側的requirrments.txt就是你的套件清單,main.py就是你的程式碼位置,上方有個進入點的選項,進入點就是你的副程式,記得輸入的引數要加上request這個變數,接著部屬你的Function
部屬完你的Function就會產生一個網址類似於https://us-central1-booming-flash-398012.cloudfunctions.net/function-1,只要點擊這個網址就可以成行你的程式了!
接著進到Cloud Scheduler,來定時的執行你的程式,首先建立工作。
接著定義排程的名稱跟說明自訂,地區選擇台灣,時區選擇GMT+8,頻率的部分輸入 30 7,15,23 * * *,這是Unix-Cron的格式,代表的是每天7:30、15:30、23:30執行程式,有嘗試過Linux內建的Crontab但沒什麼用。最後是結果的展示:
留言
張貼留言