所以,我一直在阅读有关自动(加密)交易的内容,我想让我们试一试。我已经能够为Poloniex交易所做一个简单的交易者。
我的想法是连续进行多笔交易,这样当第一笔交易完成后,它会给出开始第二笔交易的信号,等等。
买卖交易通过HTTPS POST
方法发送到Poloniex API。
我希望几次连续交易的时间跨度最小化。但是,我注意到使用npm请求包单个买/卖请求大约需要500 [ms]
(有时甚至超过一秒)。
现在我想知道是否有更快的方法来发送这些HTTPS POST
请求,这样在第二次连续请求时价格变化的可能性很小。
我目前的方法如下:
// create timestamp and encrypt secret
// + message
// with current timestamp using Hmac
timeStamp = Math.floor(Date.now());
sign = ...
var headers = {
'Key': key,
'Sign': sign
};
// make first trade
request.post({
'headers': headers,
'url': 'https://poloniex.com/tradingApi',
'form': ...
}, function (error, response, body) {
// go on to second trade if previous finished correctly
if (!error)
{
// use same procedure again for encryption
timeStamp = Math.floor(Date.now());
sign = ...
headers = {
'Key': key,
'Sign': sign
};
request.post({
'headers': headers,
'url': 'https://poloniex.com/tradingApi',
'form': ...
}, function (error, response, body) {
if (!error)
{
// same pattern for the third one
答案 0 :(得分:0)
建议购买稍微好一点的计算机(参见下文)以加速SSL加密/解密阶段(下面的步骤[3]),并附加说明,大部分500 [ ms]可能主要是只是您发送给服务器的响应时间。" 是(充分尊重)直接错误和误导性陈述。
(cit。,重点补充):
" ... 稍微快一点的计算机可能会更快地为初始连接进行SSL连接计算,但这只是一个猜测。仅供参考,在开始下一个交易之前,您不必等待一笔交易完成。您可以一次启动多个事务,看看它们何时完成。然后他们将全部在飞行中#34;同时。 您注意到的500毫秒延迟可能主要是您发送给服务器的响应时间。 - jfriend00 10小时前"
( Ooops ,我仍然在屏幕上看到此评论,由jfriend00签名,日期为[2017-10-27 09:15:37Z]
。 ..现在似乎被作者删除,而不是明确地解决下面要求澄清多少[ms]确实会被削减,因为她/他建议使用稍快的计算机来进行O / P) 子>
仔细阅读实际的e2e.RTT
数字,以及他们的差异(比一个常见的延迟噪音大两个数量级) L3-网络传送阶段),
只有在一起观察时才能真实地反映所有XTO中最简单的确认的真实端到端往返时间-instructions,不需要在API提供者BackOffice / NDD / ECN侧进行任何额外的[风险管理]或其他后处理
也可以看到有多少人失踪API提供商的答案丢失了 - 发送BEEP[7238]
与LAST[7206]
已收到准备处理甚至丢失的API调用?
在外汇市场技术领域工作了几十年(很少> 3),我觉得我可以说出这些观点:
HTTPS
- 信封HTTPS
- 信封。您的应用程序逻辑可能会被确定, [NOW] ,以便发送一些 交易引擎的XTO指令
此时,您的应用必须执行XTO指令重新制定格式,远程操作的API可以接收和处理。这需要一些时间,通常不超过几十〜[我们]
接下来,您的符合API标准的XTO指令必须被包装+加密到HTTPS
- 信封中,再次几十〜[我们]添加
接下来,您的localhost将HTTPS
- 信封封装到您的LAN界面,添加一些[我们]
您的下一个障碍是通过公共互联网提供此类信封(无论是全球性的(在 +1 .. +10 [ms] 上超过欧洲大陆,或〜 +100 [ms] 如果通过海底电缆连接或通过新西兰等人的卫星通信连接, OR ,以防指定的提供商的本地内部网在其共置的数据中心中暴露用于共同对等的区域(在10GBE电缆上支付的成本仅为几英尺( +〜[ns] )(如果API提供商为您提供此类优惠)。)。 p>
HTTPS
包裹的信封刚刚到达提供商自己的API的队列的输入端口 - 提供网关,所以到目前为止还没有任何处理开始,直到你已经收集了数百个[我们](至少)。所述API提供商稍后会在队列中弹出您的HTTPS
- 信封,以便开始解码+展开已释放队列的内容HTTPS
- 信封(添加费用a +少[us] ,取决于在API提供的流量模式和排队策略 - 网关+解码取决于他们用于此分解的技术,即使是最复杂的基于硅的技术也无法执行此操作(快得多)-------- 到目前为止,这是时间(价格) - 严重的一部分XTO事务端到端路径。
一旦你的XTO实际上匹配了#34;在订单簿记录中,确认将被创建,以便被发送回您的身边(时间非关键操作,因此不要指望任何最高优先级,既不在处理中,也不在排队策略中发生,所以添加+几个[ms] )
为了交付,重复相同的步骤序列 - 符合API的答案汇编+排队+ API响应转换,在API提供网关中使用HTTPS加密+排队+文本格式所有涉及ISO / OSI-L3交付路线的系列(无论是共置还是通过全球网络)
E2E-RTT
持续时间。为什么你可以遇到几十个[我们]到高于+1000 [ms]
的任何东西
如果您已经阅读了这个预告片,那么您一定已经注意到,以上这些选择都不是您的预告。
在任何情况下,您都会承担项目 [1..8]
之间价格变动的风险,并且会受到 [8]
内价格下滑的影响
最好去寻求更好更快的API +共存的服务器托管。
如果确实在寻找高级
"发送...请求的方法,以便在第二个连续请求中更改价格的机会最小。"
然后倾听 - 有一种方法 - 如果您的交易策略不需要与E2E分布式交易确认/ { price | DoM-L3 }
进行交互 -changes,通过所有传入的[_>>_price-stream_>>_]
- 频道异步宣布,只需聪明并立即在 [PARALLEL]
中提交所有此类XTO指令(已经过验证)在当地方面做的事情。)
使用这种方法,您的齐射将简单地以最佳执行价格从订单簿的实际状态中剔除所有必要的流动性(如果没有被运营商政策欺骗(再次,请参阅日记账记录)如果存在任何公平交易+公平价格差异,则可以检查并可能要求FSA保护您的利益。)
好的,@ jfriend00介入并反对(引用,强调添加):
你问的方法是过于复杂。 OP有一个HTTP API,他们想知道他们是否可以比request()模块做更快的事情来向该API发出请求。这是问的问题。你完全没有解决这个问题,而是你会遇到各种与问题完全无关的东西。 长,复杂,难以理解回答实际上甚至没有回答问题问是什么是downvotes。 - jfriend00 28分钟前
是:
long - 确定 - 算法交易基础架构不 SIMPLEX
复杂 - 多方(相反的利益)分布式交易 ARE 已复制
很抱歉不得不重复一遍,30多年后我敢告诉你我很清楚没有其他(如果仍然怀疑,重新思考这个故事 - if有任何 ,所有排名靠前的HFT鲨鱼已经证明了他们的立即进入它。所以,如果他们都没有进入任何这样轻松和琐碎的魔术镜头,但所有保持在下面解释的最着名的解决方案的周边,这是一个明确和合理的证据,没有更好的存在。 QED )