コード例 #1
0
ファイル: AccountUtil.cs プロジェクト: w1r2p1/crux
        public static void ReadKeyFile(string filename)
        {
            var lines = File.ReadAllLines(filename);

            APIKey    = lines[0];
            SecretKey = lines[1];
            Account   = new QuickFix.Fields.Account($"{APIKey},{SecretKey}");
        }
コード例 #2
0
 public void Set(QuickFix.Fields.Account val)
 {
     this.Account = val;
 }
コード例 #3
0
        /// <summary>
        /// Helper Method to process data from message for updating positions
        /// </summary>
        /// <param name="message"></param>
        /// <param name="session"></param>
        private void posTableUpdate(QuickFix.FIX42.Message message, SessionID session)
        {
            string MGT = null;
            string acct = null;

            string SecEx = null;
            string symbol = null;
            string secID = null;
            string gateway = null;

            int tradesize = 0;
            char side = char.MinValue;
            decimal price = 0.00M;

            bool OK2Update = true;

            try
            {
                QuickFix.Fields.SenderSubID subID = new QuickFix.Fields.SenderSubID();
                if (message.Header.IsSetField(subID))
                {
                    MGT = message.Header.GetField(subID).getValue();
                }
                else
                { OK2Update = false; }

                QuickFix.Fields.Account a = new QuickFix.Fields.Account();
                if (message.IsSetField(a))
                {
                    acct = message.GetField(a).getValue();
                }
                else
                { OK2Update = false; }

                QuickFix.Fields.SecurityExchange se = new QuickFix.Fields.SecurityExchange();
                if (message.IsSetField(se))
                {
                    SecEx = message.GetField(se).getValue();
                }
                else
                { OK2Update = false; }

                QuickFix.Fields.Symbol s = new QuickFix.Fields.Symbol();
                if (message.IsSetField(s))
                {
                    symbol = message.GetField(s).getValue();
                }
                else
                { OK2Update = false; }

                QuickFix.Fields.SecurityID sid = new QuickFix.Fields.SecurityID();
                if (message.IsSetField(sid))
                {
                    secID = message.GetField(sid).getValue();
                }
                else
                { OK2Update = false; }

                QuickFix.Fields.ExchangeGateway eg = new Fields.ExchangeGateway();
                if (message.IsSetField(eg))
                {
                    gateway = message.GetField(eg).getValue();
                }
                else
                { OK2Update = false; }

                QuickFix.Fields.LastShares q = new QuickFix.Fields.LastShares();
                if (message.IsSetField(q))
                {
                    tradesize = (int)message.GetField(q).getValue();
                }

                QuickFix.Fields.Side bs = new QuickFix.Fields.Side();
                if (message.IsSetField(bs))
                {
                    side = message.GetField(bs).getValue();
                }
                else
                {
                    if (tradesize < 0)
                    {
                        tradesize = Math.Abs(tradesize);
                        side = QuickFix.Fields.Side.SELL;
                    }
                    else
                    { side = QuickFix.Fields.Side.BUY; }
                }

                QuickFix.Fields.LastPx fill = new QuickFix.Fields.LastPx();
                if (message.IsSetField(fill))
                {
                    price = message.GetField(fill).getValue();
                }

                if (OK2Update)
                {
                                 //MGT, acct, SecEx, symbol, secID, tradesize, side, price, gateway
                    updatePosition(MGT, acct, SecEx, symbol, secID, tradesize, side, price, gateway);
                }
                else
                {
                    updateDisplay("Position not updated by following message");
                    ProcessMessage(message, session);
                }
            }
            catch (Exception ex)
            {
                updateDisplay("QuickFIX Error");
                log.WriteLog("MGT: " + MGT);
                log.WriteLog("acct: " + acct);
                log.WriteLog("SecEx: " + SecEx);
                log.WriteLog("symbol: " + symbol);
                log.WriteLog("secID: " + secID);
                log.WriteLog("tradesize: " + tradesize.ToString());
                log.WriteLog("side: " + side.ToString());
                log.WriteLog("price: " + price.ToString());
                log.WriteLog("gateway: " + gateway);

                log.WriteLog("Start Exception--------------------");
                log.WriteLog("Source: " + ex.Source);
                log.WriteLog("Message: " + ex.Message);
                log.WriteLog("TargetSite: " + ex.TargetSite);
                log.WriteLog("InnerException: " + ex.InnerException);
                log.WriteLog("HelpLink: " + ex.HelpLink);
                log.WriteLog("Data: " + ex.Data);
                log.WriteLog("StackTrace: " + ex.StackTrace);
                log.WriteLog("Stop Exception details-------------");

            }
        }
コード例 #4
0
 public void set(QuickFix.Fields.Account field)
 {
     SetField(field);
 }