挖矿交易
为什么会有这样的需要?
我之前做过几年的ios开发,后来看了吴军的《智能时代》,后转岗转为BI,做了几个企业数据中心的搭建工作。
在无锡回苏州的顺风车上。
看着年龄,开着的小哥应该是和我年龄相仿。旅行的过程中讲述了这样的一个故事。
- 将老师的女儿拐出来,那年才十几岁。
- 什么都不会打过很多工。
- 买光盘成本一两块钱,最多一晚卖一两千。
- 2013元旦,滴滴亮相无锡,成为第一波滴滴司机。
- 在滴滴疯狂补贴用户的时候,套利几百万
- 易道用车,冲一块送一块,冲50万送50万,最终易道就是被这样刷单给刷垮。
- 只做机场生意,宁愿一天不接单,也要只做机场生意。因为时间久了,在这条路线上,自己账号的权重就会高了,能够被派到好单的概率就大了。
程序交易
为什么说量化这个东西非常有用?
[image:03E22C00-895D-4F3F-89FE-DCE560674B0E-318-00002495E846DBC3/801522DB-E033-4FEF-8CE9-F21566619921.png]
交易了一天
- 需要的账号没有提前做好实名认证
- 一开始1.5ETH刷速度太慢,耽误了时间
- 左手倒右手交易,挂比最低价低一个单位的价挂卖单,然后以最低价,挂买单,这样能够买到自己手里的单。
- 刷单的时候只需要关注,自己挂的单是否是最低价,就可以。
- 账号之间的转账,在深度够的情况下,可以全部转换成ETH转账。
- 风险在:以高价买入大量代币之后,在交易比赛快要结束的时候出现大跌,这样急于将手中的代币出手,会蒙受损失。
- 站着交易,状态好,精力集中,颈肩不疼
- 星巴克的冰萃咖啡太苦,喝了一上午才喝完(超大杯)。下次还是喝茶吧。
- 高频交易网速很关键。买单卖单都在一瞬间的事情,任何延迟都要花费多余的精力去平衡账号资金和代币的比例。
- 刷单不是人干的事情,继续写量化软件吧。
投资的知识都是来自于实践
如何循环的执行
while(True):
doTicker() #do strategy
# Sleep(PERIOD * 1000) #wait
time.sleep(5)
上面的这串代码就会每隔5秒钟执行一次交易。
为什么要设置限制
BigONE Developer API · Documents for BigONE Developer API
目前针对每个独立IP访问限额为: 每5秒钟/500次请求。
针对每个用户账号访问限额为:每小时/2000次请求。
针对量化交易等场景可以联系客服进行配额的调整。
每小时2000次请求限制,不是每小时限制2000次交易(下一个买单,卖单,为两次请求)。
每隔小时3600秒
3600/2000=1.8
1.8秒执行一次
要定时平衡
什么是平衡?
为了方便表述我们就说1个BTC的价格是100USDT,你手里用来程序交易的账号中拥有的资产是1个BTC,100个USDT。
以BTC/USDT交易对为例,平衡的意思就是BTC:USDT=1:1,或是BTC/(BTC+USDT)=50%。
BTC没有过多,USDT也没有过多就是平衡。
为什么出现不平衡的情况?
你下了一个买单,一个卖单,如果两笔都成交,那么两笔交易完之后BTC与USDT的比例还是维持在50%左右。
上面说的是理想的情况,你实际操作的过程中往往会出现的情况是,买单成交了,卖单没成交。
分批买,分批卖
if _p < 0.48:
print 'begin balance', _p
# 2% derating ratio per step
_cny -= (float(_cny) * 0.02)
if len(_order_book['Bids']) > 0:
price = float(['Bids'][0]['price'])
price_s_a = price * 1.000
price_s_b = price * 1.001
price_s_c = price * 1.002
amount_s_a = (float(_cny) * 0.02 / 3) / price_s_a
amount_s_b = (float(_cny) * 0.02 / 3) / price_s_b
amount_s_c = (float(_cny) * 0.02 / 3) / price_s_c
transaction = _client.create_order('BTC-USDT', Client.SIDE_BID, str(price_s_a), str(amount_s_a))
transaction = _client.create_order('BTC-USDT', Client.SIDE_BID, str(price_s_b), str(amount_s_b))
transaction = _client.create_order('BTC-USDT', Client.SIDE_BID, str(price_s_c), str(amount_s_c))
elif _p > 0.52:
print 'begin balance', _p
# 2% derating ratio per step
_btc -= (float(_btc) * 0.02)
if len(_order_book['Asks']) > 0:
price = float(['Bids'][0]['price'])
price_s_a = price * 1.000
price_s_b = price * 0.999
price_s_c = price * 0.998
transaction = _client.create_order('BTC-USDT', Client.SIDE_ASK, str(price_s_a), '600')
transaction = _client.create_order('BTC-USDT', Client.SIDE_ASK, str(price_s_b), '600')
transaction = _client.create_order('BTC-USDT', Client.SIDE_ASK, str(price_s_c), '600')
time.sleep(5)
# # get a list of your orders for a symbol
orders_json = _client.get_orders('BTC-USDT')
orders = orders_json['edges']
if orders is not None:
for order in orders:
if order['node']['id'] != _trade_order_id:
_client.cancel_order(order['node']['id'])
大幕开始
开始买卖
什么时候买?
什么时候卖?
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
量和交易前世今生
整个课程都是以,BTC/USDT交易对为例
fcoin
代码的细节,
获取账户的余额信息
执行平衡
为什么要执行平衡,为了自己交易效率的最大话
网友评论