使用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但沒什麼用。

最後設定執行作業部分目標類型選擇HTTP,網址則是你的Cloud Function對應的網址,例如:https://us-central1-booming-flash-398012.cloudfunctions.net/function-1,HTTP方法選擇POST,這樣就完成了!

最後是結果的展示:

留言

這個網誌中的熱門文章

以dlib實現人臉辨識打卡系統

以python讀取yolo的輸出-darknet.py

使用Python達成影像形態學處理(不使用Opencv函式庫)