• Jingxiao 置顶
    2019-08-01
    思考题答案:事实上,在要求不是很严格的低频交易中,timestamp 是可以作为 nonce 存在的,它满足单调递增不重复的特性,比如一小时只会发送几个交易请求的波段策略中,timestamp 完全没问题。但是,在频率较高的交易中,timestamp 可能就不是那么适合。如果你使用协程来编程,或者使用类似 node.js 这样的异步编程工具或语言,那么你的代码很可能在发送的时候,并不是按照你想要的顺序发送给服务器,就会出现 timestamp 更大的请求反而更早发送。其次,在网络传输中,不同的包也可能有完全不同的抵达顺序,虽然你可以通过一些编程技巧来实现按顺序传输,但是如果你需要多台机器进行较为高频的交易。而且需要对同一个仓位(同一个 API Key)进行操作,就可能会变得比较麻烦。
     2
     17
  • 自由民 置顶
    2019-10-24
    为注册sandbox的账号折腾了半天,停在创建账号那里就不动了。不知道是不是墙的原因,挂了梯子终于注册好了,但是却要验证手机号码,开始我瞎填的美国加州,用网上的美国手机号接收验证码也不行。最后用另一个邮箱注册了,可以选中国的,手机也能接收到验证码。
    思考题:应该不行,对并发程序,先运行的未必时间戳在前,而用递增序列则可以确保先开始的顺序一定在前。
    课程的练习代码: https://github.com/zwdnet/PythonPractice

    作者回复: 谢谢

     2
    
  • SCAR
    2019-07-26
    思考题:
    1. 纯粹使用timestamp应该不行,虽然timestamp也是递增的,但是在python里timestamp是float而不是int。
    2.但如果基于timestamp抽取出部分应该是可以,比如老师例子中的:
       payload_nonce = str(int(time.mktime(t.timetuple())*1000))
       改成:
       payload_nonce = str(int(t.timestamp())*1000)
       结果应该是一致的。
    展开
    
     9
  • 小侠龙旋风
    2019-07-27
    知识点很多,整理一下。
    1. 非对称加密:
        加密:公钥加密,私钥解密;
        签名:私钥签名,公钥验签。
    2. hmac.new(key, str, digestmod)
        key是密钥;str是欲加密的串;digestmod是hmac加密算法
    3. 最后一句打印语句可以写成如下看着更清晰:
        print(json.dumps(new_order, indent=4))
    4. 在草稿纸上画出交互拓扑图
    5. 如何设计符合RESTful特征的API
    6. Keep-Alive: timeout=5, max=100

    思考题:
    测试了一下timestamp效果,代码如下:
    import time
    import datetime
    current_time = datetime.datetime.now()
    print(int(datetime.datetime.timestamp(current_time)*1000))
    print(int(time.mktime(current_time.timetuple())*1000))

    同样都是时间戳,timestamp是带毫秒的,具备单调递增、加密混乱的特质。
    文中有句话是这么说的:"当某个后来请求的nonce比上一个成功收到的请求的nonce小或者相等的时候,Gemini便会拒绝这次请求"。
    说明Gemini不希望http请求在一秒内发生多次。应该是反爬用的吧~
    用timestamp是可以精确到毫秒的,意味着每毫秒可以请求发送的nonce都不一样。

    另外,作为taker第二次运行该代码就报出下面的错:
    {
        "result": "error",
        "reason": "InsufficientFunds",
        "message": "Failed to place buy order on symbol 'BTCUSD' for price $3,633.00 and quantity 5 BTC due to insufficient funds"
    }
    展开

    作者回复: 👍

    参考出错原因,你的账户余额中 BTC 不够 5,下单失败。

    
     7
  • kang
    2019-08-23
    請問大家都是怎麼註冊Genimi 的? 我的註冊國家都被阻擋
     2
     3
  • Monroe He
    2019-07-26
    我想问一下老师,有针对国内股票的虚拟交易平台吗
    可以提供一下相关方面的书籍资料吗
     2
     3
  • SuperXiong
    2020-01-12
    第一部:注册sandbox没有成功,选了中国区,提交注册表之后,返回一个未知问题。
     1
     1
  • 瞳梦
    2019-07-26
    请问gemini sandbox账号怎么注册呢?我在官网只找到了Open a Personal Account和I Represent an Institution

    作者回复: https://sandbox.gemini.com

     3
     1
  • 许童童
    2019-07-26
    老师讲得好啊,妙啊!
    
     1
  • Geek_adeba6
    2019-07-26
    想请问如果想实现秒级别的市场行情获取,生产环境下的最佳实践是什么?
     1
     1
  • Xg huang
    2019-07-26
    哈哈,深入浅出,赞一个

    不过有个地方是否写错?"而小宝在某一天中午 11:59:00,告诉交易所,我要挂一个单子,数量为 0.1 比特币,价格为 10000 美元,低于这个价格不卖。"

    是不是1000才对?

    编辑回复: 是的,我修改了

    
     1
  • devna
    2020-01-19
    前段时间刚看完《计算机网络:自顶自下方法》,确实不错,能很快提升对网络的认识,强烈推荐
    
    
  • 王帅帅
    2020-01-13
    我跑了一遍,提示gemini 交易所正在维护,怎么回事。

    作者回复: 交易所 API 在维护,可以等一段时间,或者换其他交易所自己尝试

    
    
  • furuiyang
    2019-10-18
    为啥大宝要买回复给了小明 小宝要卖回复给了小强 ...😵
    
    
  • 三件事
    2019-10-15
    非常喜欢老师的授课风格!
    
    
  • 扶幽
    2019-10-14
    应该不能。
    原因:因为nonce只有在被接收成功时才会增量,失败时未必会递增(我的假设,具体还待大佬们纠正)。但是使用时间戳的话,肯定是递增的,在一定程度上无法解决重复订单问题。
    
    
  • 鱼鱼鱼培填
    2019-08-27
    请教老师一个问题:在Gemini注册账号之后用生成key和secret实现代码,结果一直出现InvalidSignature
    试了两种方式:
    1、一开始以为是key setting的问题,结果三种都试过还是一样的结果
    2、重新生成key和secret,也还是一样的结果
    Google查找后发现有人也是一样的结果,但是没有找到解决方案
    
    
  • 江南皮革厂研发中心保...
    2019-08-06
    为什么我不是IT大牛,因为我没有小明这样的妈妈。[滑稽]
    
    
  • csn
    2019-07-30
    gemini_api_key是什么?
    
    
  • 蜉蝣
    2019-07-26
    大家为什么都不运行一下 `time.mktime(datetime.datetime.now().timetuple())` 就在说不能代替的问题
    
    
我们在线,来聊聊吧