예제 #1
0
        public void RequestMarketData(SessionID sessionId)
        {
            if (string.IsNullOrEmpty(quoteSessionTargetId)) return;
            var sessionTarget = sessionId.getTargetCompID();
            if (sessionTarget != quoteSessionTargetId)
            {
                Logger.InfoFormat("RequestMarketData skipped (session target is '{0}', target is '{1}')",
                    sessionTarget, quoteSessionTargetId);
                return;
            }

            if (useTickerCsvDictionary)
                RequestTickersFromCsvDic(sessionId);
            else
                RequestTickersFromTextFile(sessionId);
        }
예제 #2
0
        public static Message MakeQuoteRequest(string ticker, SessionID sessionInfo)
        {
            var senderId = sessionInfo.getSenderCompID();
            if (string.IsNullOrEmpty(senderId))
            {
                Logger.ErrorFormat("MakeMessage: код отправителя для [{0}] не найден", sessionInfo);
                return null;
            }
            var msg =
                FixMessage.FixVersion == FixVersion.Fix42 ?
                    (Message)new QuickFix42.MarketDataRequest(
                                new MDReqID(string.Format("{0}-{1:dd-HH-mm}", ticker, DateTime.Now)),
                                    new SubscriptionRequestType((char)1), // subscribe
                                    new MarketDepth(marketDepth))
                : FixMessage.FixVersion == FixVersion.Fix43 ?
                    (Message)new QuickFix43.MarketDataRequest(
                                new MDReqID(string.Format("{0}-{1:dd-HH-mm}", ticker, DateTime.Now)),
                                    new SubscriptionRequestType((char)1), // subscribe
                                    new MarketDepth(marketDepth))
                : new QuickFix44.MarketDataRequest(
                                new MDReqID(string.Format("{0}-{1:dd-HH-mm}", ticker, DateTime.Now)), // 262=EURAUD-02-17-07
                                    new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES), // subscribe
                                    new MarketDepth(marketDepth));

            msg.setField(new MDUpdateType(
                quoteSubscriptionIncrementalUpdateType
                ? MDUpdateType.INCREMENTAL_REFRESH
                : MDUpdateType.FULL_REFRESH));

            if (!AddBidAskQueryClause(msg, ticker))
                return null;

            msg.getHeader().setField(new SenderCompID(senderId));
            msg.getHeader().setField(new TargetCompID(sessionInfo.getTargetCompID()));

            return msg;
        }
예제 #3
0
 public void onCreate(SessionID __p1)
 {
     debug("session created" + __p1.getSenderCompID() + " " + __p1.getTargetCompID());
 }