public void deltaNeutralValidation(int reqId, UnderComp underComp) { throw new NotImplementedException(); }
public virtual void deltaNeutralValidation(int reqId, UnderComp underComp) { Console.WriteLine("DeltaNeutralValidation. " + reqId + ", ConId: " + underComp.ConId + ", Delta: " + underComp.Delta + ", Price: " + underComp.Price); }
private void OpenOrderEvent() { int msgVersion = ReadInt(); // read order id Order order = new Order(); order.OrderId = ReadInt(); // read contract fields Contract contract = new Contract(); if (msgVersion >= 17) { contract.ConId = ReadInt(); } contract.Symbol = ReadString(); contract.SecType = ReadString(); contract.Expiry = ReadString(); contract.Strike = ReadDouble(); contract.Right = ReadString(); if (msgVersion >= 32) { contract.Multiplier = ReadString(); } contract.Exchange = ReadString(); contract.Currency = ReadString(); if (msgVersion >= 2) { contract.LocalSymbol = ReadString(); } if (msgVersion >= 32) { contract.TradingClass = ReadString(); } // read order fields order.Action = ReadString(); order.TotalQuantity = ReadInt(); order.OrderType = ReadString(); if (msgVersion < 29) { order.LmtPrice = ReadDouble(); } else { order.LmtPrice = ReadDoubleMax(); } if (msgVersion < 30) { order.AuxPrice = ReadDouble(); } else { order.AuxPrice = ReadDoubleMax(); } order.Tif = ReadString(); order.OcaGroup = ReadString(); order.Account = ReadString(); order.OpenClose = ReadString(); order.Origin = ReadInt(); order.OrderRef = ReadString(); if (msgVersion >= 3) { order.ClientId = ReadInt(); } if (msgVersion >= 4) { order.PermId = ReadInt(); if (msgVersion < 18) { // will never happen /* order.ignoreRth = */ ReadBoolFromInt(); } else { order.OutsideRth = ReadBoolFromInt(); } order.Hidden = ReadInt() == 1; order.DiscretionaryAmt = ReadDouble(); } if (msgVersion >= 5) { order.GoodAfterTime = ReadString(); } if (msgVersion >= 6) { // skip deprecated sharesAllocation field ReadString(); } if (msgVersion >= 7) { order.FaGroup = ReadString(); order.FaMethod = ReadString(); order.FaPercentage = ReadString(); order.FaProfile = ReadString(); } if (msgVersion >= 8) { order.GoodTillDate = ReadString(); } if (msgVersion >= 9) { order.Rule80A = ReadString(); order.PercentOffset = ReadDoubleMax(); order.SettlingFirm = ReadString(); order.ShortSaleSlot = ReadInt(); order.DesignatedLocation = ReadString(); if (parent.ServerVersion == 51) { ReadInt(); // exemptCode } else if (msgVersion >= 23) { order.ExemptCode = ReadInt(); } order.AuctionStrategy = ReadInt(); order.StartingPrice = ReadDoubleMax(); order.StockRefPrice = ReadDoubleMax(); order.Delta = ReadDoubleMax(); order.StockRangeLower = ReadDoubleMax(); order.StockRangeUpper = ReadDoubleMax(); order.DisplaySize = ReadInt(); if (msgVersion < 18) { // will never happen /* order.rthOnly = */ ReadBoolFromInt(); } order.BlockOrder = ReadBoolFromInt(); order.SweepToFill = ReadBoolFromInt(); order.AllOrNone = ReadBoolFromInt(); order.MinQty = ReadIntMax(); order.OcaType = ReadInt(); order.ETradeOnly = ReadBoolFromInt(); order.FirmQuoteOnly = ReadBoolFromInt(); order.NbboPriceCap = ReadDoubleMax(); } if (msgVersion >= 10) { order.ParentId = ReadInt(); order.TriggerMethod = ReadInt(); } if (msgVersion >= 11) { order.Volatility = ReadDoubleMax(); order.VolatilityType = ReadInt(); if (msgVersion == 11) { int receivedInt = ReadInt(); order.DeltaNeutralOrderType = ((receivedInt == 0) ? "NONE" : "MKT"); } else { // msgVersion 12 and up order.DeltaNeutralOrderType = ReadString(); order.DeltaNeutralAuxPrice = ReadDoubleMax(); if (msgVersion >= 27 && !Util.StringIsEmpty(order.DeltaNeutralOrderType)) { order.DeltaNeutralConId = ReadInt(); order.DeltaNeutralSettlingFirm = ReadString(); order.DeltaNeutralClearingAccount = ReadString(); order.DeltaNeutralClearingIntent = ReadString(); } if (msgVersion >= 31 && !Util.StringIsEmpty(order.DeltaNeutralOrderType)) { order.DeltaNeutralOpenClose = ReadString(); order.DeltaNeutralShortSale = ReadBoolFromInt(); order.DeltaNeutralShortSaleSlot = ReadInt(); order.DeltaNeutralDesignatedLocation = ReadString(); } } order.ContinuousUpdate = ReadInt(); if (parent.ServerVersion == 26) { order.StockRangeLower = ReadDouble(); order.StockRangeUpper = ReadDouble(); } order.ReferencePriceType = ReadInt(); } if (msgVersion >= 13) { order.TrailStopPrice = ReadDoubleMax(); } if (msgVersion >= 30) { order.TrailingPercent = ReadDoubleMax(); } if (msgVersion >= 14) { order.BasisPoints = ReadDoubleMax(); order.BasisPointsType = ReadIntMax(); contract.ComboLegsDescription = ReadString(); } if (msgVersion >= 29) { int comboLegsCount = ReadInt(); if (comboLegsCount > 0) { contract.ComboLegs = new List<ComboLeg>(comboLegsCount); for (int i = 0; i < comboLegsCount; ++i) { int conId = ReadInt(); int ratio = ReadInt(); String action = ReadString(); String exchange = ReadString(); int openClose = ReadInt(); int shortSaleSlot = ReadInt(); String designatedLocation = ReadString(); int exemptCode = ReadInt(); ComboLeg comboLeg = new ComboLeg(conId, ratio, action, exchange, openClose, shortSaleSlot, designatedLocation, exemptCode); contract.ComboLegs.Add(comboLeg); } } int orderComboLegsCount = ReadInt(); if (orderComboLegsCount > 0) { order.OrderComboLegs = new List<OrderComboLeg>(orderComboLegsCount); for (int i = 0; i < orderComboLegsCount; ++i) { double price = ReadDoubleMax(); OrderComboLeg orderComboLeg = new OrderComboLeg(price); order.OrderComboLegs.Add(orderComboLeg); } } } if (msgVersion >= 26) { int smartComboRoutingParamsCount = ReadInt(); if (smartComboRoutingParamsCount > 0) { order.SmartComboRoutingParams = new List<TagValue>(smartComboRoutingParamsCount); for (int i = 0; i < smartComboRoutingParamsCount; ++i) { TagValue tagValue = new TagValue(); tagValue.tag = ReadString(); tagValue.value = ReadString(); order.SmartComboRoutingParams.Add(tagValue); } } } if (msgVersion >= 15) { if (msgVersion >= 20) { order.ScaleInitLevelSize = ReadIntMax(); order.ScaleSubsLevelSize = ReadIntMax(); } else { /* int notSuppScaleNumComponents = */ ReadIntMax(); order.ScaleInitLevelSize = ReadIntMax(); } order.ScalePriceIncrement = ReadDoubleMax(); } if (msgVersion >= 28 && order.ScalePriceIncrement > 0.0 && order.ScalePriceIncrement != Double.MaxValue) { order.ScalePriceAdjustValue = ReadDoubleMax(); order.ScalePriceAdjustInterval = ReadIntMax(); order.ScaleProfitOffset = ReadDoubleMax(); order.ScaleAutoReset = ReadBoolFromInt(); order.ScaleInitPosition = ReadIntMax(); order.ScaleInitFillQty = ReadIntMax(); order.ScaleRandomPercent = ReadBoolFromInt(); } if (msgVersion >= 24) { order.HedgeType = ReadString(); if (!Util.StringIsEmpty(order.HedgeType)) { order.HedgeParam = ReadString(); } } if (msgVersion >= 25) { order.OptOutSmartRouting = ReadBoolFromInt(); } if (msgVersion >= 19) { order.ClearingAccount = ReadString(); order.ClearingIntent = ReadString(); } if (msgVersion >= 22) { order.NotHeld = ReadBoolFromInt(); } if (msgVersion >= 20) { if (ReadBoolFromInt()) { UnderComp underComp = new UnderComp(); underComp.ConId = ReadInt(); underComp.Delta = ReadDouble(); underComp.Price = ReadDouble(); contract.UnderComp = underComp; } } if (msgVersion >= 21) { order.AlgoStrategy = ReadString(); if (!Util.StringIsEmpty(order.AlgoStrategy)) { int algoParamsCount = ReadInt(); if (algoParamsCount > 0) { order.AlgoParams = new List<TagValue>(algoParamsCount); for (int i = 0; i < algoParamsCount; ++i) { TagValue tagValue = new TagValue(); tagValue.tag = ReadString(); tagValue.value = ReadString(); order.AlgoParams.Add(tagValue); } } } } OrderState orderState = new OrderState(); if (msgVersion >= 16) { order.WhatIf = ReadBoolFromInt(); orderState.Status = ReadString(); orderState.InitMargin = ReadString(); orderState.MaintMargin = ReadString(); orderState.EquityWithLoan = ReadString(); orderState.Commission = ReadDoubleMax(); orderState.MinCommission = ReadDoubleMax(); orderState.MaxCommission = ReadDoubleMax(); orderState.CommissionCurrency = ReadString(); orderState.WarningText = ReadString(); } parent.Wrapper.openOrder(order.OrderId, contract, order, orderState); }
/// <summary> /// Initializes a new instance of the <see cref="DeltaNeutralValidationEventArgs"/> class /// </summary> public DeltaNeutralValidationEventArgs(int requestId, UnderComp underComp) { RequestId = requestId; UnderComp = underComp; }
private void DeltaNeutralValidationEvent() { int msgVersion = ReadInt(); int requestId = ReadInt(); UnderComp underComp = new UnderComp(); underComp.ConId = ReadInt(); underComp.Delta = ReadDouble(); underComp.Price = ReadDouble(); parent.Wrapper.deltaNeutralValidation(requestId, underComp); }
public virtual void deltaNeutralValidation(int reqId, UnderComp underComp) { addTextToBox("DeltaNeutralValidation. " + reqId + ", ConId: " + underComp.ConId + ", Delta: " + underComp.Delta + ", Price: " + underComp.Price + "\n"); }
public virtual void deltaNeutralValidation(int reqId, UnderComp underComp) { }
public virtual void deltaNeutralValidation(int reqId, UnderComp underComp) { String str; str = "DeltaNeutralValidation. " + reqId + ", ConId: " + underComp.ConId + ", Delta: " + underComp.Delta + ", Price: " + underComp.Price; AddTextToResponseListWindow(str); }
/// <summary> /// Upon accepting a Delta-Neutral RFQ(request for quote), the server sends a deltaNeutralValidation() message with the UnderComp structure. /// If the delta and price fields are empty in the original request, the confirmation will contain the current values from the server. /// These values are locked when the RFQ is processed and remain locked until the RFQ is canceled. /// </summary> /// <param name="reqId">The ID of the data request.</param> /// <param name="underComp">Underlying component.</param> public void deltaNeutralValidation(int reqId, UnderComp underComp) { OnDeltaNeutralValidation(new DeltaNeutralValidationEventArgs(reqId, underComp)); }