zlq4863947 / triangular-arbitrage

数字货币-三角套利机器人
GNU General Public License v3.0
625 stars 230 forks source link

请问没有交易数量这个参数吗? #20

Open godnnn opened 6 years ago

godnnn commented 6 years ago

比如找到的三角套利机会理论上最多可以做100手,我账户余额最多能支持200手,但我最多只想做80手。这个不能设置吗?

还有就是,现在这个程序最后会执行多少手?

谢谢啦!!

zlq4863947 commented 6 years ago

程序算出交易数量是个比较麻烦的过程,现在使用一个方法,试图去找到最佳的交易数量。 目前程序大致处理逻辑: 1、换算出三角套利三个点中最后2个的挂单金额,取最小金额

例如 以btc市场为例,三角套利3个点以a、b、c称呼。 a点挂单金额0.005btc、b点0.002btc、c点0.01btc 取最小金额,也就是 0.002btc

2、1中取得值与账户相应余额做比较,如果 余额 >= 1中取得值、则使用1中取得值作为交易数量。 否则不执行操作

总结

不需要有交易数量这个参数。 原因:交易数量是通过三角套利的每个点挂单值算出来的。是灵活的。 就算设了死的交易数量,数量太大或者太小(小于交易所规定最小交易单位)都卖不出去。反而进行不了套利

godnnn commented 6 years ago

感谢如此细致的解释,深表谢意!

不过有一点还是不明白,你说”换算出三角套利三个点中最后2个的挂单金额“。

这里怎么会是用挂单呢? 我理解中的三角套利是用现价立即成交,如果用挂单的话如果存在滑点或单边行情导致一直没有成交,那就是被套了,要么割肉要么等解套。

你的挂单是我说的这种情况,还是别的思路呢 ?

再次感谢!

zlq4863947 commented 6 years ago

现在没用市价,用的是限价。 挂单的意思是当前最佳买卖单(需要卖时,看的是买一单,需要买时同理)。

限价是为了控制风险。市价容易亏损。而且只要不是网络太差,通常不会发生滑点。 具体可以参考这个:程序化交易中滑点产生的原因