コード例 #1
0
ファイル: MessageBuilder.cs プロジェクト: buybackoff/iFix
        public Mantle.Fix44.IClientMessage OrderMassStatusRequest(string symbol)
        {
            var res = new Mantle.Fix44.OrderMassStatusRequest()
            {
                StandardHeader = StandardHeader()
            };

            res.Account.Value           = _cfg.Account;
            res.MassStatusReqID.Value   = Guid.NewGuid().ToString();
            res.MassStatusReqType.Value = 7;  // status for all orders
            if (symbol != null)
            {
                res.Instrument.Symbol.Value = symbol;
            }
            if (_cfg.Extensions == Extensions.Huobi)
            {
                if (symbol == null)
                {
                    throw new Exception("Symbol is required when requesting order status on Huobi");
                }
                res.HuobiSignature = HuobiSignature
                                     (
                    new KeyValuePair <string, string>[]
                {
                    new KeyValuePair <string, string>("method", "get_orders"),
                    new KeyValuePair <string, string>("coin_type", HuobiCoinType(symbol)),
                }
                                     );
            }
            if (_cfg.Extensions == Extensions.Btcc)
            {
                // OrderMassStatusRequest is very broken on BTCC. 90% of the time they won't reply anything.
                // When they do reply, instead of sending execution reports for all open orders, they send
                // a single execution report for a random order, which usually but no always is an old cancelled
                // order.
                if (symbol == null)
                {
                    throw new Exception("Symbol is required when requesting order status on BTCC");
                }
                res.Side.Value = '1';  // required but meaningless
                // Undocumented of course.
                string method = $"getOrders&params=1,{symbol},1000,0,0,1";
                res.Account.Value = BtccSignature(_cfg.Account, _cfg.SecretKey, method);
            }
            return(res);
        }
コード例 #2
0
ファイル: MessageBuilder.cs プロジェクト: romkatv/iFix
 public Mantle.Fix44.IClientMessage OrderMassStatusRequest(string symbol)
 {
     var res = new Mantle.Fix44.OrderMassStatusRequest() { StandardHeader = StandardHeader() };
     res.Account.Value = _cfg.Account;
     res.MassStatusReqID.Value = Guid.NewGuid().ToString();
     res.MassStatusReqType.Value = 7;  // status for all orders
     if (symbol != null)
     {
         res.Instrument.Symbol.Value = symbol;
     }
     if (_cfg.Extensions == Extensions.Huobi)
     {
         if (symbol == null)
             throw new Exception("Symbol is required when requesting order status on Huobi");
         res.HuobiSignature = HuobiSignature
         (
             new KeyValuePair<string, string>[]
             {
                 new KeyValuePair<string, string>("method", "get_orders"),
                 new KeyValuePair<string, string>("coin_type", HuobiCoinType(symbol)),
             }
         );
     }
     return res;
 }