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); } }
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); } }
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); } }
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); }
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) { } }