Beispiel #1
0
        static void HandleMarketHighLow(T4.API.Market market)
        {
            string tickerID = G.MarketToTickerID(market);
            var    msg      = new JObject();
            var    daily    = new JObject();

            daily["high"] = market.ConvertTicksToRealDecimal(market.LastHighLow.HighTicks);
            daily["low"]  = market.ConvertTicksToRealDecimal(market.LastHighLow.LowTicks);
            daily["open"] = market.ConvertTicksToRealDecimal(market.LastHighLow.OpenTicks);
            msg["daily"]  = daily;
            var msgParts = new List <ZFrame>();

            msgParts.Add(new ZFrame(tickerID + "\x03"));
            msgParts.Add(new ZFrame(" " + msg.ToString()));
            G.pubAQ.Enqueue(() => G.sockMDPUB.SendMultipart(msgParts));
        }
Beispiel #2
0
        static void HandleMarketTradeVolume(T4.API.Market market,
                                            T4.API.Market.TradeVolume poChanges)
        {
            string tickerID = G.MarketToTickerID(market);
            var    ld       = market.LastDepth;
            var    msg      = new JObject();

            msg["price"]        = market.ConvertTicksToRealDecimal(ld.LastTradeSpdTicks);
            msg["size"]         = ld.LastTradeSpdVolume;
            msg["spread_trade"] = ld.LastTradeDueToSpread;
            var msgParts = new List <ZFrame>();

            msgParts.Add(new ZFrame(tickerID + "\x02"));
            msgParts.Add(new ZFrame(" " + msg.ToString()));
            var msg2 = new JObject();

            msg2["daily"] = new JObject();
            msg2["daily"]["num_trades"] = market.LastDepth.TotalTradeCount;
            msg2["daily"]["volume"]     = market.LastDepth.TotalTradedVolume;
            var msgParts2 = new List <ZFrame>();

            msgParts2.Add(new ZFrame(tickerID + "\x03"));
            msgParts2.Add(new ZFrame(" " + msg2.ToString()));
            G.pubAQ.Enqueue(() =>
            {
                G.sockMDPUB.SendMultipart(msgParts);
                G.sockMDPUB.SendMultipart(msgParts2);
            });
            // emit volume-by-price info from poChanges?
        }
Beispiel #3
0
        static JArray OrderBookToJArray(T4.API.Market market, T4.API.Market.Depth.DepthList book)
        {
            JArray res = new JArray();

            for (int i = 0; i < book.Count; i++)
            {
                var     lvl = book[i];
                JObject r   = new JObject();
                r["price"]      = market.ConvertTicksToRealDecimal(lvl.Ticks);
                r["size"]       = lvl.Volume;
                r["num_orders"] = lvl.NumOfOrders;
                r["position"]   = i;
                res.Add(r);
            }
            return(res);
        }