交易所api导入Google Sheets

这篇文字介绍了如何把ftx 的仓位信息等通过api抓入google sheets中。binance 数据到google sheets的情况,可参考此链接。感觉我得抓紧写些东西,不然今天已过东西就全忘干净了,年纪确实大了。我的做法是把数据投射到网址,google sheets通过importjson function导入。可能有人说,为啥不直接导,因为我不会编程,看不懂function的语言,我猜是JavaScript。

假设你已经设置好了python环境,比如jupyter或是code-server,或是venv。以venv为例子。

# ccxt 抓取 ftx api数据
mkdir ccxt
apt-get install python3-venv python3-pip
python3 -m venv venv
source ./venv/bin/activate
pip3 install ccxt functions-framework

# ccxt folder 设立几个文件
# config.py
API_KEY_ftx = '...'
SECRET_KEY_ftx = '...'

# main.py
import ccxt
import config
import json
import pandas as pd

ftx = ccxt.ftx({
    'apiKey': config.API_KEY_ftx,
    'secret': config.SECRET_KEY_ftx,
    'enableRateLimit': True,
})

def get_quote(request): #这个是google function的功能把拿到的数据打到服务器上

   quote = ftx.fetch_positions()
   return json.dumps(quote)
   
# 运行如下命令后,就在localhost:8080看到抓取的仓位信息
functions-framework --target get_quote --debug

# 我个人nginx映射到网址上,是的,我个人是不担心安全问题,主要就看方便;假设映射网址是 https://ftx.test,那么在google sheets中用如下命令就抓取了
=importjson("https://ftx.test")

尝试出这个解决方案也绕了很多坑,都是试错试出来的。比如我在ftx其实是3个subaccount,要看单独信息的话,其实就整出了3个list,但是function framework 函数不能直接对list处理,于是我考虑把list合并后,用了 json.dumps() 函数,确实不知道,但是google是好帮手。

补充说明一下,通过上例的网址,比如 访问localhost:8080 ,是可以和函数进行互动的。比如我的python函数是get quote, 访问这个网址的话,就会抓取数据。展开想象力的话,参考 ftx api doc,能做的事情就很多了。如果有安全上的考虑,可以通过nginx 加一个simpmle auth,则访问就变成了https://username:password@ftx.test 了。

如果api能够跑通,实际上远程交易也就成为可能,我没有交易策略,对这个没有需求;但是我在ftx上纯对冲,所以有对冲需求,而且对冲数量是不停变化的,defi懂得都明白,哈哈。未来可能会尝试玩玩对冲。

一开始把这个服务隔国内家里的服务器,设了一个jupyter docker,隔三岔五抓不到数据,我以为是网络问题;后来确认确实是网络问题,哈哈,移到海外vps解决。

说说为啥要抓数据到google sheets. 维持了4,5个矿,需要通过数据比较收益,时间轴上对比,以及对冲的效率,还要比较哪一家交易所更优。这个月收入断崖式下降,我完全不知道原因,但是估计可能处在对冲不完美,以及funding rate上。如果未来需要优化,可能还要考虑手续费打折。

在这里,我其实用到了很多这一年多摸索出来的经验,比如设置网址,用dnscontrol docker;nginx 443 ssl listen用了ssl_preread module, 这样根据不同网址,能使用相同的443端口还不影响我的xray;非常初级的python知识,知道出了错误,如何搜索解决方案等等。大部分知识,我可能不知道,但是试出来一次之后,我就在自己搭载的wiki上进行纪录(相信我,自搭的wiki是个极其牛逼的笔记软件,用过之后,就不会再有使用其他的选择),确保下次类似事件即刻搜索后能够解决;最后还要补充一下,万物皆可docker;能用docker就不用其他服务,把docker persistent volume用git备份到自己的gitlab上,随时随地都能恢复数据。一个全新的vps,基本30分内通过ansible设置好可用的界面,恢复出需要的docker服务。

google sheets 的sample page