如何批量取消内部市场订单

昨晚,我下定决心,杀掉了我的赔钱机器人。详情可以参考: 经过深思熟虑,我决定杀掉我的内盘交易机器人了


(图源:pixabay)

垂死挣扎的机器人

但是今早起床看了一眼steemd.com,竟然发现明明已经被我杀掉的机器人还在垂死挣扎。这生命力可真够旺盛的。

仔细一想就明了啦,我的机器人是根据市场行情在内部市场挂买单或者卖单。而挂单的失效期,我设置为1个月。所以,虽然我杀掉了机器人,但是内部市场的挂单还在。也就是说,不出意外的话,我的机器人还会在内部市场苟延残喘一个月之久。

既然我决定杀掉它,就要绝情到底,怎么能容忍它继续活那么久呢?强迫症表示这种情况,绝不容许发生!

登陆内部市场一看,哎呦我的乖乖,至少数千个挂单,手工挨个点取消的话,估计要点一个月吧。😭这我无法忍受。

如何批量取消订单

那么有没有办法批量取消订单呢。

还好,steem-python 不负所望,提供了接口:

不过orderid是什么鬼啊?
看了一下下单的函数头

param int orderid: (optional) a 32bit orderid for tracking of the created order (random by default)

我觉得我比较方,首先我没在程序中指定orderid,也就是说,我全是随机生成的;其次,我并没有在机器人程序中保存orderid列表。

那莫非就取消不了吗?一定不是这样的!
我们之前的帖子中介绍过 steem rpc api 使用curl调用的例子,并且我们也介绍过database_api中的get_open_orders可以获得用户的订单信息

生成以下命令来获取一下内部市场我的挂单:
curl --data '{"jsonrpc": "2.0", "method": "call", "params": ["database_api", "get_open_orders", ["xxxxx"]], "id": 1}' https://steemd.steemit.com

我们返回长长的订单列表信息,随便拽出其中一个订单:

耶,找到你了,原来订单信息中保持着orderid呢。

但是使用curl返回的数据如何放到程序中处理,也是个麻烦事。还好,steem-python中提供了支持

那接下来的事情就简单了:

  • 调用get_open_orders()获取所有订单列表
  • 遍历订单列表
    • 获取对应订单的orderid
    • 调用cancel()取消订单

有了上述分析,程序实现起来就没啥问题了。
代码就不贴上来了——因为我还没写出来呢😭

按条件取消订单

另外,根据上述分析,我们也可以实现按条件取消订单

  • 根据订单类型(买单/卖单)取消
  • 根据订单时间(超过5天/小于3天等条件)取消
  • 根据订单成交情况(未成交/部分成交)取消
  • 根据订单价格(大于多少/小于多少)等取消

好了,不多写了,我继续去杀人杀机器人去了。


This page is synchronized from the post: 如何批量取消内部市场订单

经过深思熟虑,我决定杀掉我的内盘交易机器人了

看过我之前系列文章的朋友,都会知道我有一个超级赔钱的内盘交易机器人。这个机器人大概跑了4个月之久,曾经一度帮我赚过几百甚至上千SBD,当时我计算年化收益率可达50%以上,比什么炒股炒黄金啥的爽多了。


(图源:pixabay)

因为这个机器人很烧钱,为了保证流动性,我给它投入了5000个STEEM以及5000个SBD,为了便于统计盈亏,我还专门设计了一个公式:
合计盈亏:`(steem_current - steem_initial) price + sbd_current - sbd_initial`*

可惜市场波云诡异,终究不是我这种智商的人玩得来的。这段时间SBD暴涨,而STEEM涨幅没有跟上,如果从STEEM-SBD交易对来看,完全是单边暴跌的趋势,并且跌幅大持续时间长,这就是导致我做的策略彻底失效,我辛辛苦苦打造的赚钱机器人,变成了散财童子,我的血汗钱也都被它送进了别人的腰包。

交易机器人运营状况


(图源:pixabay)

好吧,让我们来算算它帮我亏了多少钱:

当前资产持有情况

Asset Value
STEEM 8080.269
SBD 242.604
STEEM(Market) 5008.409
SBD(Market) 4.74
Total STEEM 13088.678
Total SBD 247.344

当前市场价格


我们取$0.144507

合计盈亏

代入之前提及的公式:
合计盈亏 = `(13088.678 - 5000)0.144507 + 247.344 - 5000 = -3583.785408254 `*
也就是说亏了3583.785个SBD

而3583.785个SBD值多少银子呢?
按照当前市场行情,大概可以卖30多万人民币

也就是说,我养的这个十分可爱的机器人,在4个月内,帮我赔掉了30多万的人民币。
还用计算什么年化收益率之类的吗?😭
一年100万,我也亏不起啊。

总结


(图源:pixabay)

什么技术啊,策略啊,都是白扯的。
(当然实际原因是我的技术不过硬、策略太低级)
运气才是最最重要的因素啊!

至于这个傻傻的赔钱机器人,既然你不能帮我赚钱,要你何用!
kill -9 xxxx
毫不留情地杀掉丫这个傻货!
(好吧,其实它的主人才是个傻货,不过我也不能因为这事自杀,只好杀它了)

杀掉它我也不忍心啊,发财梦就这么破灭了。
或者等我技术更上一层楼的时候,我会考虑把它复活吧。

之前文章


This page is synchronized from the post: 经过深思熟虑,我决定杀掉我的内盘交易机器人了

Openledger 害死人,维护了几十个小时了 / Openledger STEEM gateway maintenance

先不哭诉之前用SBD换STEEM的行为有多傻,既然换了,就换了吧,后悔是没有用的。
😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭
💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔💔

昨天早上,看看手头的STEEM,突发奇想,不能让资产闲置啊,要让它去给我赚钱啊,比如说换成BTS,然后等涨。

于是乎,就去bitshares内盘,找到Openledger的充值信息,将STEEM转了过去,坐等到账,好帮我赚钱。

结果等啊等啊等啊等啊,我等到花儿也谢了,也没收到OPEN.STEEM。我想应该是交易太多,卡住了,于是就去忙其它事情,结果过了一两个小时一看,竟然还没到账,不会是被Openledger吞掉了吧。

于是,赶紧发个ticket,问了一下为何我充值的OPEN.STEEM还没到账呢?

过了大概十几或者几十分钟,我收到了他们的答复:

大意是将我的请求转到技术团队,等他们网关正常工作后,再帮我处理。

我晕,我充值的时候,也没提示我网关异常啊。即便我再进入充值页面,也还显示正常呢。


点开他们给我的链接,说网关正在维护,充值和体现暂时不可用。

好吧,虽然对他们没有在充值页面提示维护表示不满,但是既然人家维护咱就耐心等待呗。
等啊等啊,一整天过去了,于是我去问了一下,啥时候能好啊,维护总得有个期限吧?


这答复棒棒的,这客服一定在外交部深造过。

既然人家让我自己关注博客,我就关注吧

结果24小时后更新了一下,说还在维护,干啥要维护24小时啊????

不过人家还辛苦维护呢,我就耐心忍耐吧。

又过了不知道多久之后,博客上总算宣布,包括STEEM在内的几个网关好用啦。

这真是喜大普奔的消息啊。

可是,我的OPEN.STEEM呢?
我刷来刷去,刷新了几个小时,也没看到我的OPEN.STEEM到账😭😭😭

于是又发了几次ticket咨询,结果,没人理我了😭
从他们宣布网关恢复开始,几个小时过去了,我的钱呢??


Openledger 一直维护,充值始终不到账,这是个坏消息。

不过另外一个消息是bts回调了一些,我在1.4、1.21、1.14几个价位分别买入了一些😭。现在是1.07了💔💔如果我的OPEN.STEEM昨天早早到账,估计都会买在1.4价位吧😨

发扬阿Q精神想一想,就愉快多了。不过如果OPEN.STEEM一直不到账,就愉快不起来了💔

但愿它早点康复,把OPEN.STEEM打给我吧😨


This page is synchronized from the post: Openledger 害死人,维护了几十个小时了 / Openledger STEEM gateway maintenance

python-bitshares 边学边记 (一)

在之前的系列文章中,我给大家分享了uptick。uptick是由 @xeroc 大神开发和维护,用于和比特股网络打交道的命令行工具,使用Python语言开发,底层使用了python-bitshares 这个Python库。uptick的强大功能我们都见识过了,那么我接下来会整理一些python-bitshares的学习记录,便于自己以后查阅,也希望能给有想了解python-bitshares的朋友一些参考。


(图源 :pixabay)

如何安装

python-bitshares 这个库也是 @xeroc 大神 开发和维护的,致敬。

Github地址为:https://github.com/xeroc/python-bitshares

安装非常简单,执行下列指令即可:
sudo apt-get install libffi-dev libssl-dev python-dev
pip3 install bitshares

当然了,也可以手动安装
git clone https://github.com/xeroc/python-bitshares/
cd python-bitshares
python3 setup.py install --user

如需升级,执行下列指令即可:
pip install --user --upgrade

需要说明一点是,因为uptick依赖于python-bitshares,所以安装uptick会自动安装python-bitshares

查看bitshares区块链信息

安装完成之后,我们写一个简单的例子来查看bitshares区块链的信息

from bitshares import BitShares
from pprint import pprint
bitshares = BitShares()
pprint(bitshares.info())

其中BitShares是python-bitshares库中最常用的类之一。

  • bitshares = BitShares()创建了一个实例
  • bitshares.info()get_dynamic_global_properties()API的封装。

将上述代码保存为info.py并执行,执行结果如下:

这也说明我们的安装没有问题。

bitshares.info() 的API调用实例

我们说bitshares.info()是对get_dynamic_global_properties()API的封装。

在之前的文章学习一下BTS的远程过程调用 / Learn the remote procedure call of BTS我们学习过如何用工具curl来进行API调用。

所以在这里我们测试一下直接用curl调用会是什么效果呢?

根据以前学习的内容,我们生成了curl的命令以及参数
curl --data '{"jsonrpc": "2.0", "method": "get_dynamic_global_properties", "params": [], "id": 1}' https://openledger.hk/ws

为了便于阅读,我对调用结果进行了格式化处理

通过与bitshares.info()的对比可知,bitshares.info()返回的是get_dynamic_global_propertiesresult部分。

事实上,python-bitshares就是对bitshares RPC的封装,只是相比于我们简单粗暴的使用curl,它将websocket封装为GrapheneWebsocketRPC,然后再被BitSharesNodeRPC所继承。但是本质上和我们用curl是没有区别的。

总结

在这篇笔记中,我们介绍了

  • python-bitshares的安装
  • python-bitshares的简单例子
  • python-bitshares与bitshares RPC的关系简介

有了这些基础,我们就可以开启我们的python-bitshares愉快旅程了。

相关文章


This page is synchronized from the post: python-bitshares 边学边记 (一)

好“大方”的Linode

之前写过一篇文章,给大家介绍如何使用Linode的VPS搭建爱国上网工具。

其实除了爱国上网工具,我还有一些其它业务部署在Linode的VPS上,为此我买了好几个VPS,反正便宜不是嘛。


(图源 :pixabay)


DOWN机之又见DOWN机

好几个VPS都运行的好好的,除了在东京的一个经常出故障,这不,今天又DOWN机了,进面板一看:

又见大大的黄色提示框。

点进去一看,似曾相识的原因。

有事宿主主机的硬件故障。
可能有些朋友不清楚VPS是咋回事,其实就相当于一台物理服务器上用软件开好多虚拟机。就像我们常用的VMWARE一样。所以一旦宿主机硬件出故障,那么虚拟机当然要DOWN掉了。

历史DOWN机记录

让我们看看这台破机器出过多少次故障。

你没看错,整整五次。确切地说,不止五次,有时候是连击,告诉我修复好了,然后马上又坏掉,然后就更新在一个ticket下边了。

比如今天这次,修复好了,然后过一会又告诉我要迁移到新的物理服务器上去。这样也好,不然避免不了总出故障的宿命了。

迁移倒是挺快速的,早这样,何必呢?

Linode的补偿

但是不到一年,连续DOWN机七八次,真的有点消磨我的耐心了。
于是我质问他们,有没有点诚意?给点补偿吧,最后我看到这样一个答复。

真的是“好大方”,一下子给我账户充值了五美元的巨款!
想想SOFTLAYER,我要提一个SLA的请求,每次都会给我几百美元,这五美元的巨款,真的让我懒得回复他们了。

不过,想想也是,SOFTLAYER的每台服务器每月都几百美元,而Linode的VPS,最便宜的每台每月才5美元,我要指望他们一样,那一定是我脑壳坏掉了。

有时候,真的无需太计较,DOWN机呀什么的,DOWN啊DOWN啊就习惯了。


This page is synchronized from the post: 好“大方”的Linode

BTS投资者福音,公众号支持查询bitshares的账户资产啦

据传,古时候地主守财奴,经常在家数钱,这样心里会很充实。

作为一个新时代的守财奴投资者,知道自己账户下有多少钱,同样心里会比较踏实,所以我一直觉得做公众号的查询功能,最最重要一点是加入资产查询。这样才能迎合广大守财奴投资者的心里。确切地说,满足自己的变态心里。


(图源 :pixabay)

steem 资产查询

我们公众号,很早就支持steem的资产查询了,比如简单的指令(包含一些基本的信息):

或者更复杂点的(包含各类资产信息):

bitshares 资产查询

自从开始玩bitshares,我就一直想做个bitshares资产查询功能。

但是不同于steem,bitshares有各类资产,比如:

  • 核心的BTS (Core token)
  • 各类智能货币: CNY、USD、BTC、JPY等 (SmartCoin)
  • 各类用户发行资产: OPEN.EOS、OPEN.BTC、GDEX.BTC、YOYOW等 (UIA)

其中活跃资产有628项,还有一堆不活跃的……

另外资产还区分为:

  • 账户下的资产
  • 抵押的资产
  • 市场内挂单的资产

如何把各类资产集成到一个查询功能中,是一个老大难的问题。为什么这么说呢?因为公众号处理有时间限制,如果要查询很多资产,多次连接RPC节点,超时是铁铁的了。

想来想去,我们何必把事情搞得那么复杂呢,只查询我关注的资产好了。😀

目前支持的资产类型: BTS、CNY、USD、OPEN.EOS、OPEN.STEEM

你问我为啥不加其它的,答案很简单,我暂时没有啊:)

查询示例

为了区别于steem的用户,我们使用!开头

输入!以及你在bitshares的用户名,比如oflyhigh,就可以查询了

数量为0的资产,自动隐藏。

随便查俩账户(P网钱包?):

不足之处

目前还不支持抵押的资产查询,以及市场中资产查询,回头等我学会了,再加上吧。

公众号添加方法

还没加公众号的,快点上车啊


This page is synchronized from the post: BTS投资者福音,公众号支持查询bitshares的账户资产啦

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×