引言:
邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。
【必读文章】:《10年400倍策略分享-附视频逐行讲解代码》
【历史文章汇总】:https://bbs.pinggu.org/thread-3950124-1-1.html
微信个人号:xingbuxing0807,有问题欢迎交流
接上文
10月15日,周一,下午
等到程序帮我止损并且再开多之后,绷紧的神经才稍稍放松下来。坐在车上望着窗外的上海中心,算算到底亏了多少。
因为程序故障慢了的这15分钟,导致之前的空仓多亏了钱,新开的多仓又少赚了钱。
恩,一来一去,大约5万美金没了,妈蛋。
但是呢,随着行情的进一步发展,我深深的感到,我是多么多么多么多么多么的幸运。
因为之后的行情走势是下图这样的:
继续暴涨!
受到usdt不能承兑的影响,bitfinex交易所上面的btc/usdt交易对开始猛涨。最高一直涨到了7800美金。
如果我不是在13:20左右,随手看了下服务器,然后让停止的程序重启,那么我早晨在6348开的空仓就会一直持有。
当涨到最高点7800的时候,总共亏损:
( 7800 - 6348 ) / 6348 * 3 = 69%
按照bitfinex交易所亏损50%就强平的交易规则,早就已经爆仓了!
10月16日,周二,上午
到了第二天,还是很后怕。
想想当时真的是命大啊,怎么就突然看了眼服务器呢。要是当时不看,最终爆仓,那就是半年白干,说出去也被人笑死。
计划着周末去龙华寺烧香。
10月16日,周二,下午
下午,写代码的小哥很小心的跟我说,问题查出来了。
我仔细看了一遍之后,真的是哭笑不得。
因为这个问题,我之前在课程里面就给大家讲过,当时还重点提了一下。
下面是当时课程中的代码截图:
这两行代码很简单,大家都看的懂。作用是从okex交易所获取到最新的行情数据。
虽然这代码和案发现场的bitfinex交易所实盘代码不一样,但讲的问题是一样的。
图中第10行代码中的那串地址。是okex交易所的行情接口地址,大家可以在浏览器中输入这个地址,就能看到莱特币LTC最新的价格。
https://www.okex.com/api/v1/ticker.do?symbol=ltc_usdt
第13行代码的作用是获取行情接口返回的数据。其中有一个关键的参数叫做timeout。
当时在上课的时候我特意提到了这个timeout参数一定要加。
如果不加这个参数,程序默认会一直等下去。若消息一直不返回,就会一直等到地老天荒。此时整个程序也就和停止了没有差别。
而最终的问题就是,写代码小哥获取bitfinex持仓数据的那行代码,居然没有加上timeout参数。
恰好这次又碰上bitfinex服务器不稳定,一直没有返回数据,而我的程序就在那里一直等着。
哎,我学生都知道的东西,我自己招的写代码小哥居然不知道。
事后措施
出了问题就要解决,以后不能再犯。
原先程序每15分钟就会通过钉钉发送一次持仓简报到我手机,如果不发就说明程序停止了。后来因为长时间稳定,我嫌烦,就停了。
现在我已经乖乖的打开了,再烦我也不会关闭。
bitfinex交易所我开始交易的比较早,和交易所对接的代码都是自己写的,并没有使用课程里面推荐的ccxt。那些觉得ccxt不好,想着自己对接交易所的同学,还是省省吧。
你的代码是不可能比这些开源框架还稳健的。ccxt里面默认就写好了,所有情况下timeout为10秒。
最后,写这行代码的小哥,首先年底奖金就不要想了,其次可以考虑换个工作了。
对本文研究有自己的想法的朋友,可以在评论区留言。评论赚取论坛币,美滋滋~