コード例 #1
0
 public static void FromFIX_ChangeOrder(IOrder p_order, int quantity, double limitPrice, double stopPrice)
 {
     lock (locker_)
     {
         MarketDataDef mdd = s_fixConnectors.GetMarketDataDefForSymbol(p_order.Instrument.FullName);
         if (mdd == null)
         {
             throw new Exception("No FixConnector available for symbol '" + p_order.Instrument.FullName + "', cant send order modification for order " + p_order.OrderId + ". Gonna try with any FixConnector ");
         }
         mdd.fixConnector.FromFIX_ChangeOrder(p_order, quantity, limitPrice, stopPrice);
     }
 }
コード例 #2
0
 public static void FromFIX_CancelOrder(IOrder p_order)
 {
     lock (locker_)
     {
         MarketDataDef mdd = s_fixConnectors.GetMarketDataDefForSymbol(p_order.Instrument.FullName);
         if (mdd == null)
         {
             throw new Exception("No FixConnector available for symbol '" + p_order.Instrument.FullName + "', cant send cancel request for order " + p_order.OrderId);
         }
         mdd.fixConnector.FromFIX_CancelOrder(p_order);
     }
 }
コード例 #3
0
        public static void FromFIX_SendOrder(OrderFixBridge orderFixBridge, string instrumentId, OrderAction orderAction, OrderType orderType, int quantity, double limitPrice, double stopPrice, string signalName)
        {
            lock (locker_)
            {
                MarketDataDef mdd = s_fixConnectors.GetMarketDataDefForSymbol(instrumentId);
                if (mdd == null)
                {
                    throw new Exception("No FixConnector available for symbol to create order on '" + instrumentId + "'.");
                }

                mdd.fixConnector.FromFIX_SendOrder(orderFixBridge, mdd.internal_barinprogress, orderAction, orderType, quantity, limitPrice, stopPrice, signalName);
            }
        }
コード例 #4
0
        public List <MarketDataDef> GetSymbols()
        {
            if (m_symbols_list == null)
            {
                m_symbols_list = MarketDataDef.Read(this, Symbols);
                m_symbols_list.InsertRange(0, Instruments.Select(i => new MarketDataDef(this, i.FullName)));
                for (int i = 0; i < m_symbols_list.Count; i++)
                {
                    m_symbols_list[i].internal_barinprogress = i;
                }
            }


            return(m_symbols_list);
        }
コード例 #5
0
 protected override void OnBarUpdate()
 {
     try
     {
         MarketDataDef mdd = GetSymbols()[BarsInProgress];
         if (CurrentBars[BarsInProgress] >= 1)
         {
             mdd.bid     = GetCurrentBid(BarsInProgress);
             mdd.ask     = GetCurrentAsk(BarsInProgress);
             mdd.qty_bid = GetCurrentBidVolume(BarsInProgress);
             mdd.qty_ask = GetCurrentAskVolume(BarsInProgress);
             mdd.notify();
         }
     }
     catch (Exception)
     { }
 }