/// <summary> /// Start the SpreadDetailSubscription. /// </summary> private void startSpreadDetailSubscription() { m_autospreaderManager = m_TTAPI.Session.TTAPI.AutospreaderManager; m_spreadDetailSubscription = new SpreadDetailSubscription(m_TTAPI.Session, Dispatcher.Current); m_spreadDetailSubscription.SpreadDetailsAdded += new EventHandler <SpreadDetailsEventArgs>(spreadDetailsChanged); m_spreadDetailSubscription.SpreadDetailsUpdated += new EventHandler <SpreadDetailsEventArgs>(spreadDetailsChanged); m_spreadDetailSubscription.SpreadDetailsDeleted += new EventHandler <SpreadDetailsEventArgs>(spreadDetailsChanged); m_spreadDetailSubscription.Start(); }
void DeleteSpread(Instrument instrument) { // delete ASReturnCodes rtnCode; Console.WriteLine("Delete the SPREAD"); SpreadDetails spread = instrument.GetSpreadDetails(); // Delete the spread from TT system. // Parameter spreadReq: SpreadDetails object representing the spread to delete // Return rtnCode: ASReturnCodes enum indicating the status of the request rtnCode = AutospreaderManager.DeleteSpreadDetails(spread); System.Diagnostics.Debug.Assert(rtnCode == ASReturnCodes.Success); }
/// <summary> /// Notifies us when initialization is complete (and whether it was successful) /// </summary> /// <param name="api">TTAPI object to use (Universal Login mode)</param> /// <param name="ex">Exception that occurred during initialization (if any)</param> public void ttApiInitComplete(UniversalLoginTTAPI api, Exception ex) { if (ex == null) { UniversalApiInstance = api; UniversalApiInstance.AuthenticationStatusUpdate += new EventHandler <AuthenticationStatusUpdateEventArgs>(apiInstance_AuthenticationStatusUpdate); UniversalApiInstance.Authenticate(ttUsername, ttPassword); apiSession = UniversalApiInstance.Session; autospreaderManager = UniversalApiInstance.AutospreaderManager; } else { initSuccess = false; initMessage = "API Initialization Failed: " + ex.Message; } }
/// <summary> /// Notifies us when initialization is complete (and whether it was successful) /// </summary> /// <param name="api">API object to use (XTrader mode)</param> /// <param name="ex">Exception that occurred (if any)</param> public void ttApiXTModeInitComplete(XTraderModeTTAPI api, Exception ex) { if (ex == null) { XTraderApiInstance = api; XTraderApiInstance.ConnectionStatusUpdate += new EventHandler <ConnectionStatusUpdateEventArgs>(apiInstance_ConnectionStatusUpdate); XTraderApiInstance.ConnectToXTrader(); apiSession = XTraderApiInstance.Session; autospreaderManager = XTraderApiInstance.AutospreaderManager; } else { initSuccess = false; initMessage = "API Initialization Failed: " + ex.Message; } }
Instrument CreateSpread() { string aseName = "ASE.Test." + DateTime.Now.ToString("yyyyMMddhhmmss"); Console.WriteLine("Create a new SPREAD " + aseName); var spreadReq = new SpreadDetails(aseName) { Color = Color.GreenYellow, PricingModel = PricingModel.NetChange }; // first leg var inst1 = FindInstrument(m_product, m_alias1); var leg1 = new SpreadLegDetails(inst1, 5, 8.5M) { ActiveQuoting = true, IsLeanIndicative = false, MinLeanQty = "ThisLeg.DisclosedRemainingQuantity" }; spreadReq.AppendLeg(leg1); // second leg var inst2 = FindInstrument(m_product, m_alias2); var leg2 = new SpreadLegDetails(inst2, -1, -2) { ActiveQuoting = true, IsLeanIndicative = true, MinLeanQty = "ThisLeg.DisclosedRemainingQuantity" }; spreadReq.AppendLeg(leg2); // Add a spread to the spread manager and Save the ASE instrument in TT system. // Parameter spreadReq: SpreadDetails object representing the spread to add // Parameter rtnCode: ASReturnCodes enum indicating the status of the request ASReturnCodes rtnCode; Instrument newInst = AutospreaderManager.AddSpreadDetails(spreadReq, out rtnCode); System.Diagnostics.Debug.Assert(rtnCode == ASReturnCodes.Success); Console.WriteLine($" New ASE instrument is created {newInst.InstrumentDetails.Name}: {newInst.InstrumentDetails.Id}/{newInst.InstrumentDetails.Version}"); return(newInst); }
Instrument UpdateSpread(Instrument instrument) { // update ASReturnCodes rtnCode; Console.WriteLine("Update the new created SPREAD"); SpreadDetails spreadReq = instrument.GetSpreadDetails(); spreadReq.UserDefinedDenominator = 20; spreadReq.UserDefinedNumerator = 1; var legChange = spreadReq.GetLeg(1); legChange.PriceMultiplier = -3; spreadReq.Updateleg(1, legChange); // Update the spread to the spread manager and Save the ASE instrument in TT system. // Parameter spreadReq: SpreadDetails object representing the spread to update // Parameter rtnCode: ASReturnCodes enum indicating the status of the request var updatedInst = AutospreaderManager.UpdateSpreadDetails(spreadReq, out rtnCode); System.Diagnostics.Debug.Assert(rtnCode == ASReturnCodes.Success); return(updatedInst); }
/// <summary> /// Start the SpreadDetailSubscription. /// </summary> private void startSpreadDetailSubscription() { m_autospreaderManager = m_session.TTAPI.AutospreaderManager; m_spreadDetailSubscription = new SpreadDetailSubscription(m_session, m_dispatcher); m_spreadDetailSubscription.SpreadDetailsAdded += new EventHandler<SpreadDetailsEventArgs>(spreadDetailsChanged); m_spreadDetailSubscription.SpreadDetailsUpdated += new EventHandler<SpreadDetailsEventArgs>(spreadDetailsChanged); m_spreadDetailSubscription.SpreadDetailsDeleted += new EventHandler<SpreadDetailsEventArgs>(spreadDetailsChanged); m_spreadDetailSubscription.Start(); }