{"id":8098,"date":"2025-09-04T23:21:37","date_gmt":"2025-09-05T04:21:37","guid":{"rendered":"https:\/\/librarytestdev.wpenginepowered.com\/?post_type=doc&#038;p=8098"},"modified":"2025-09-04T23:23:48","modified_gmt":"2025-09-05T04:23:48","slug":"launching-an-algo","status":"publish","type":"doc","link":"https:\/\/library-staging.tradingtechnologies.com\/apis\/tt-net-sdk\/working-with-algos\/algo-server\/launching-an-algo\/","title":{"rendered":"Launching an algo"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"construct-an-orderprofile\">Construct an OrderProfile<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Algos are treated in the same way as exchange native orders in TT. As such, to launch an algo, you need to create an&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance. An algo\u2019s&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance must be created from the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.AlgoLookup.html\">AlgoLookup<\/a>&nbsp;instance by calling the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.Algo.html#tt_net_sdk_Algo_GetOrderProfile\">Algo.GetOrderProfile()<\/a>&nbsp;method. This method has two overloads.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OrderProfile GetOrderProfile();\nOrderProfile GetOrderProfile(Instrument);\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"set-the-algo-parameters\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#set-the-algo-parameters\"><\/a>Set the algo parameters<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If your algo has a parameter with &#8220;Name&#8221; = &#8220;Instrument&#8221; and &#8220;FieldLocation&#8221; = &#8220;OrderProfile&#8221;, then you must use the second of these. All TT Algos have such a parameter as do ADL algos that have declared one of its required instrument inputs as an&nbsp;<strong>Order Instrument<\/strong>. Otherwise, you use the first of these.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/library-staging.tradingtechnologies.com\/wp-content\/uploads\/2025\/09\/adl-order-instrument.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You then set the rest of the parameters in the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>. Some of the parameters are set using specific&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;properties and some are set in the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a>&nbsp;collection as shown below. Specifically, if the &#8220;FieldLocation&#8221; of a parameter is equal to &#8220;OrderProfile&#8221;, then the parameter is set on the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance directly via the property indicated by its &#8220;Name&#8221;. If the &#8220;FieldLocation&#8221; is equal to &#8220;UserParameters&#8221;, then the parameter is set as part of the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a>&nbsp;property of the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, the following are the parameters of the TT Stop algo.<\/p>\n\n\n<?xml encoding=\"utf-8\" ?><figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Name<\/th><th>Type<\/th><th>Required<\/th><th>Updatable<\/th><th>FieldLocation<\/th><th>Algo-Specific Enum<\/th><\/tr><\/thead><tbody><tr><td>OrderInstrumentID<\/td><td>Instrument<\/td><td>true<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td><td><\/td><\/tr><tr><td>OrderQty<\/td><td>Quantity<\/td><td>true<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td><td><\/td><\/tr><tr><td>OrderSide<\/td><td>Enum<\/td><td>true<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderSide.html\">tt_net_sdk.OrderSide<\/a><\/td><\/tr><tr><td>OrderAccount<\/td><td>String<\/td><td>true<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td><td><\/td><\/tr><tr><td>TriggerPrice<\/td><td>Price<\/td><td>false<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td><td><\/td><\/tr><tr><td>OrderType<\/td><td>Enum<\/td><td>true<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderType.html\">tt_net_sdk.OrderType<\/a><\/td><\/tr><tr><td>LimitPrice<\/td><td>Price<\/td><td>true<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td><td><\/td><\/tr><tr><td>ChildTIF<\/td><td>Int_t<\/td><td>true<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>ParentTIF<\/td><td>Int_t<\/td><td>true<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.ParentTIF.html\">tt_net_sdk.tt_stop.ParentTIF<\/a><\/td><\/tr><tr><td>TriggerPriceType<\/td><td>Int_t<\/td><td>true<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.TriggerPriceType.html\">tt_net_sdk.tt_stop.TriggerPriceType<\/a><\/td><\/tr><tr><td>IsTrlTrg<\/td><td>Boolean_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>TriggerTicksAway<\/td><td>Int_t<\/td><td>false<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>TriggerQtyType<\/td><td>Int_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.TriggerQtyType.html\">tt_net_sdk.tt_stop.TriggerQtyType<\/a><\/td><\/tr><tr><td>TriggerQtyCompare<\/td><td>Int_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.TriggerQtyCompare.html\">tt_net_sdk.tt_stop.TriggerQtyCompare<\/a><\/td><\/tr><tr><td>TriggerQty<\/td><td>Qty_t<\/td><td>false<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>SecondConditionIsOn<\/td><td>Boolean_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>SecondTriggerPriceType<\/td><td>Int_t<\/td><td>true<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.SecondTriggerPriceType.html\">tt_net_sdk.tt_stop.SecondTriggerPriceType<\/a><\/td><\/tr><tr><td>SecondTriggerTicksAway<\/td><td>Int_t<\/td><td>false<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>SecondTriggerQtyType<\/td><td>Int_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.SecondTriggerQtyType.html\">tt_net_sdk.tt_stop.SecondTriggerQtyType<\/a><\/td><\/tr><tr><td>SecondTriggerQtyCompare<\/td><td>Int_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.SecondTriggerQtyCompare.html\">tt_net_sdk.tt_stop.SecondTriggerQtyCompare<\/a><\/td><\/tr><tr><td>SecondTriggerQty<\/td><td>Qty_t<\/td><td>false<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>TriggerLTPReset<\/td><td>Boolean_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>Payup<\/td><td>Int_t<\/td><td>false<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>LimitPriceType<\/td><td>Int_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.LimitPriceType.html\">tt_net_sdk.tt_stop.LimitPriceType<\/a><\/td><\/tr><tr><td>WithATickType<\/td><td>Int_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.WithATickType.html\">tt_net_sdk.tt_stop.WithATickType<\/a><\/td><\/tr><tr><td>WithATick<\/td><td>Qty_t<\/td><td>false<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>STime<\/td><td>UTCTimestamp_t<\/td><td>false<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>ETime<\/td><td>UTCTimestamp_t<\/td><td>false<\/td><td>true<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>ETimeAct<\/td><td>Int_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.ETimeAct.html\">tt_net_sdk.tt_stop.ETimeAct<\/a><\/td><\/tr><tr><td>NoImplies<\/td><td>Boolean_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>AutoResubExpiredGTD<\/td><td>Boolean_t<\/td><td>false<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><\/td><\/tr><tr><td>WaitingOption<\/td><td>Int_t<\/td><td>true<\/td><td>false<\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td><td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.WaitingOption.html\">tt_net_sdk.tt_stop.WaitingOption<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"set-the-user-disconnect-action\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#set-the-user-disconnect-action\"><\/a>Set the User Disconnect Action<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When your application launches an ADL algo, TT monitors the connection from your application to the TT ecosystem. If TT detects that your application has disconnected, you can specify the action to be taken on your algo. This can be done by specifying a single action for all algos when you initialize the API as follows.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>string appSecretKey = \"Your App Key\";\ntt_net_sdk.ServiceEnvironment environment = tt_net_sdk.ServiceEnvironment.UatCert;\ntt_net_sdk.TTAPIOptions apiConfig = new tt_net_sdk.TTAPIOptions(\n\t\t\tenvironment,\n\t\t\tappSecretKey,\n\t\t\t5000);\napiConfig.UserDisconnectAction = UserDisconnectAction.Cancel;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You can also specify this behavior on a per algo basis by setting the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserDisconnectAction\">UserDisconnectAction<\/a>&nbsp;property of the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Assume that the name of your OrderProfile object is \u2018op\u2019\nop.UserDisconnectAction = UserDisconnectAction.Pause;\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"set-the-co-location-facility\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#set-the-co-location-facility\"><\/a>Set the co-location facility<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TT has a pool of Algo Servers in each major data center. You must specify in which data center that you want your algo to execute as follows.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Assume that the name of your OrderProfile object is \u2018op\u2019\nop.CoLocation = MarketId.CME;\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"launch-the-algo\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#launch-the-algo\"><\/a>Launch the algo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once your&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;is ready, you can launch an algo by calling the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.TradeSubscription.html#tt_net_sdk_TradeSubscription_SendOrder_tt_net_sdk_OrderProfile_\">SendOrder()<\/a>&nbsp;method of the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.AlgoTradeSubscription.html\">AlgoTradeSubscription<\/a>&nbsp;instance. The following code snippet demonstrates the launching of the TT Stop algo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>private InstrumentLookup m_instrLookupRequest = null;\nprivate Instrument m_inst = null;\n\nprivate void m_ats_OrderBookDownload(object sender, OrderBookDownloadEventArgs e)\n{\n\tm_instrLookupRequest = new InstrumentLookup(\n\t   tt_net_sdk.Dispatcher.Current,\n\t   MarketId.CME, \n\t   ProductType.Future,\n\t   \"ES\", \n\t   \"ES Dec19\");\n\n\tProductDataEvent ev = m_instrLookupRequest.Get();\n\tif (ev == ProductDataEvent.Found)\n\t{\n\t\t\/\/ Instrument was found\n\t\tm_inst = m_instrLookupRequest.Instrument;\n\n\t\tOrderProfile op = m_alookup.Algo.GetOrderProfile(m_inst);\n\n\t\tDictionary&lt;string, object&gt; userparams = new Dictionary&lt;string, object&gt;\n\t\t{\n\t\t\t{\"TriggerPriceType\", tt_net_sdk.tt_stop.TriggerPriceType.Ltp },\n\t\t\t{\"ChildTIF\" ,        tt_net_sdk.TimeInForce.Day  },\n\t\t\t{\"ParentTIF\" ,       tt_net_sdk.tt_stop.ParentTIF.Day },\n\t\t};\n\n\t\top.UserParameters = userparams;\n\n\t\top.AccountName = \"ATRcert\";\n\t\top.Side = OrderSide.Buy;\n\t\top.OrderType = OrderType.Limit;\n\t\top.OrderQuantity = Quantity.FromDecimal(m_inst, 10);\n\t\top.TriggerPrice = Price.FromString(m_inst, \"2887.00\");\n\t\top.LimitPrice = Price.FromString(m_inst, \"2887.50\");\n\n\t\tif (!m_ats.SendOrder(op))\n\t\t{\n\t\t\tConsole.WriteLine(\"Launch algo Failed.\");\n\t\t}\n\t\telse\n\t\t{\n\t\t\tConsole.WriteLine(\"Launched new algo: \" + \" SOK=\" + op.SiteOrderKey);\n\t\t}\n\t}\n\telse\n\t{\n\t\t\/\/ Instrument was not found\n\t\tConsole.WriteLine(\"Cannot find instrument: {0}\", ev.ToString());\n\t\treturn;\n\t}\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"pause-and-resume-adl-algos\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#pause-and-resume-adl-algos\"><\/a>Pause and resume ADL algos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ADL algos can be paused and then resumed. To accomplish this through the API, you simply set the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderAction.html\">OrderAction<\/a>&nbsp;to the appropriate value as follows.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OrderProfile op  = new OrderProfile(e.Fields.Instrument);\nop.Action = OrderAction.Pause;\n\nOrderProfile op  = new OrderProfile(e.Fields.Instrument);\nop.Action = OrderAction.Resume;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<h2 class=\"wp-block-heading\" id=\"construct-an-orderprofile\">Construct an OrderProfile<\/h2>\n<p class=\"wp-block-paragraph\">Algos are treated in the same way as exchange native orders in TT. As such, to launch an algo, you need to create an&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance. An algo\u2019s&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance must be created from the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.AlgoLookup.html\">AlgoLookup<\/a>&nbsp;instance by calling the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.Algo.html#tt_net_sdk_Algo_GetOrderProfile\">Algo.GetOrderProfile()<\/a>&nbsp;method. This method has two overloads.<\/p>\n<h2 class=\"wp-block-heading\" id=\"set-the-algo-parameters\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#set-the-algo-parameters\"><\/a>Set the algo parameters<\/h2>\n<p class=\"wp-block-paragraph\">If your algo has a parameter with &#8220;Name&#8221; = &#8220;Instrument&#8221; and &#8220;FieldLocation&#8221; = &#8220;OrderProfile&#8221;, then you must use the second of these. All TT Algos have such a parameter as do ADL algos that have declared one of its required instrument inputs as an&nbsp;<strong>Order Instrument<\/strong>. Otherwise, you use the first of these.<\/p>\n<p class=\"wp-block-paragraph\">You then set the rest of the parameters in the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>. Some of the parameters are set using specific&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;properties and some are set in the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a>&nbsp;collection as shown below. Specifically, if the &#8220;FieldLocation&#8221; of a parameter is equal to &#8220;OrderProfile&#8221;, then the parameter is set on the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance directly via the property indicated by its &#8220;Name&#8221;. If the &#8220;FieldLocation&#8221; is equal to &#8220;UserParameters&#8221;, then the parameter is set as part of the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a>&nbsp;property of the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance.<\/p>\n<p class=\"wp-block-paragraph\">For example, the following are the parameters of the TT Stop algo.<\/p>\n<p><?xml encoding=\"utf-8\" ?><\/p>\n<figure class=\"wp-block-table\">\n<table class=\"has-fixed-layout\">\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Type<\/th>\n<th>Required<\/th>\n<th>Updatable<\/th>\n<th>FieldLocation<\/th>\n<th>Algo-Specific Enum<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>OrderInstrumentID<\/td>\n<td>Instrument<\/td>\n<td>true<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>OrderQty<\/td>\n<td>Quantity<\/td>\n<td>true<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>OrderSide<\/td>\n<td>Enum<\/td>\n<td>true<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderSide.html\">tt_net_sdk.OrderSide<\/a><\/td>\n<\/tr>\n<tr>\n<td>OrderAccount<\/td>\n<td>String<\/td>\n<td>true<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>TriggerPrice<\/td>\n<td>Price<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>OrderType<\/td>\n<td>Enum<\/td>\n<td>true<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderType.html\">tt_net_sdk.OrderType<\/a><\/td>\n<\/tr>\n<tr>\n<td>LimitPrice<\/td>\n<td>Price<\/td>\n<td>true<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>ChildTIF<\/td>\n<td>Int_t<\/td>\n<td>true<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>ParentTIF<\/td>\n<td>Int_t<\/td>\n<td>true<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.ParentTIF.html\">tt_net_sdk.tt_stop.ParentTIF<\/a><\/td>\n<\/tr>\n<tr>\n<td>TriggerPriceType<\/td>\n<td>Int_t<\/td>\n<td>true<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.TriggerPriceType.html\">tt_net_sdk.tt_stop.TriggerPriceType<\/a><\/td>\n<\/tr>\n<tr>\n<td>IsTrlTrg<\/td>\n<td>Boolean_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>TriggerTicksAway<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>TriggerQtyType<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.TriggerQtyType.html\">tt_net_sdk.tt_stop.TriggerQtyType<\/a><\/td>\n<\/tr>\n<tr>\n<td>TriggerQtyCompare<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.TriggerQtyCompare.html\">tt_net_sdk.tt_stop.TriggerQtyCompare<\/a><\/td>\n<\/tr>\n<tr>\n<td>TriggerQty<\/td>\n<td>Qty_t<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>SecondConditionIsOn<\/td>\n<td>Boolean_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>SecondTriggerPriceType<\/td>\n<td>Int_t<\/td>\n<td>true<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.SecondTriggerPriceType.html\">tt_net_sdk.tt_stop.SecondTriggerPriceType<\/a><\/td>\n<\/tr>\n<tr>\n<td>SecondTriggerTicksAway<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>SecondTriggerQtyType<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.SecondTriggerQtyType.html\">tt_net_sdk.tt_stop.SecondTriggerQtyType<\/a><\/td>\n<\/tr>\n<tr>\n<td>SecondTriggerQtyCompare<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.SecondTriggerQtyCompare.html\">tt_net_sdk.tt_stop.SecondTriggerQtyCompare<\/a><\/td>\n<\/tr>\n<tr>\n<td>SecondTriggerQty<\/td>\n<td>Qty_t<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>TriggerLTPReset<\/td>\n<td>Boolean_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Payup<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>LimitPriceType<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.LimitPriceType.html\">tt_net_sdk.tt_stop.LimitPriceType<\/a><\/td>\n<\/tr>\n<tr>\n<td>WithATickType<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.WithATickType.html\">tt_net_sdk.tt_stop.WithATickType<\/a><\/td>\n<\/tr>\n<tr>\n<td>WithATick<\/td>\n<td>Qty_t<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>STime<\/td>\n<td>UTCTimestamp_t<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>ETime<\/td>\n<td>UTCTimestamp_t<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>ETimeAct<\/td>\n<td>Int_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.ETimeAct.html\">tt_net_sdk.tt_stop.ETimeAct<\/a><\/td>\n<\/tr>\n<tr>\n<td>NoImplies<\/td>\n<td>Boolean_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>AutoResubExpiredGTD<\/td>\n<td>Boolean_t<\/td>\n<td>false<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>WaitingOption<\/td>\n<td>Int_t<\/td>\n<td>true<\/td>\n<td>false<\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserParameters\">UserParameters<\/a><\/td>\n<td><a href=\"\/tt-net-sdk\/api\/tt_net_sdk.tt_stop.WaitingOption.html\">tt_net_sdk.tt_stop.WaitingOption<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2 class=\"wp-block-heading\" id=\"set-the-user-disconnect-action\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#set-the-user-disconnect-action\"><\/a>Set the User Disconnect Action<\/h2>\n<p class=\"wp-block-paragraph\">When your application launches an ADL algo, TT monitors the connection from your application to the TT ecosystem. If TT detects that your application has disconnected, you can specify the action to be taken on your algo. This can be done by specifying a single action for all algos when you initialize the API as follows.<\/p>\n<p class=\"wp-block-paragraph\">You can also specify this behavior on a per algo basis by setting the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html#tt_net_sdk_OrderProfile_UserDisconnectAction\">UserDisconnectAction<\/a>&nbsp;property of the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;instance.<\/p>\n<h2 class=\"wp-block-heading\" id=\"set-the-co-location-facility\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#set-the-co-location-facility\"><\/a>Set the co-location facility<\/h2>\n<p class=\"wp-block-paragraph\">TT has a pool of Algo Servers in each major data center. You must specify in which data center that you want your algo to execute as follows.<\/p>\n<h2 class=\"wp-block-heading\" id=\"launch-the-algo\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#launch-the-algo\"><\/a>Launch the algo<\/h2>\n<p class=\"wp-block-paragraph\">Once your&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderProfile.html\">OrderProfile<\/a>&nbsp;is ready, you can launch an algo by calling the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.TradeSubscription.html#tt_net_sdk_TradeSubscription_SendOrder_tt_net_sdk_OrderProfile_\">SendOrder()<\/a>&nbsp;method of the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.AlgoTradeSubscription.html\">AlgoTradeSubscription<\/a>&nbsp;instance. The following code snippet demonstrates the launching of the TT Stop algo.<\/p>\n<h2 class=\"wp-block-heading\" id=\"pause-and-resume-adl-algos\"><a href=\"\/tt-net-sdk\/articles\/as-launch.html#pause-and-resume-adl-algos\"><\/a>Pause and resume ADL algos<\/h2>\n<p class=\"wp-block-paragraph\">ADL algos can be paused and then resumed. To accomplish this through the API, you simply set the&nbsp;<a href=\"\/tt-net-sdk\/api\/tt_net_sdk.OrderAction.html\">OrderAction<\/a>&nbsp;to the appropriate value as follows.<\/p>\n","protected":false},"author":2,"template":"wp-custom-template-single-doc-tt-net-sdk","meta":{"_acf_changed":true,"footnotes":""},"docs-category":[780],"class_list":["post-8098","doc","type-doc","status-publish","hentry","docs-category-algo-server"],"acf":[],"_links":{"self":[{"href":"https:\/\/library-staging.tradingtechnologies.com\/ja\/wp-json\/wp\/v2\/doc\/8098","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/library-staging.tradingtechnologies.com\/ja\/wp-json\/wp\/v2\/doc"}],"about":[{"href":"https:\/\/library-staging.tradingtechnologies.com\/ja\/wp-json\/wp\/v2\/types\/doc"}],"author":[{"embeddable":true,"href":"https:\/\/library-staging.tradingtechnologies.com\/ja\/wp-json\/wp\/v2\/users\/2"}],"version-history":[{"count":0,"href":"https:\/\/library-staging.tradingtechnologies.com\/ja\/wp-json\/wp\/v2\/doc\/8098\/revisions"}],"wp:attachment":[{"href":"https:\/\/library-staging.tradingtechnologies.com\/ja\/wp-json\/wp\/v2\/media?parent=8098"}],"wp:term":[{"taxonomy":"docs-category","embeddable":true,"href":"https:\/\/library-staging.tradingtechnologies.com\/ja\/wp-json\/wp\/v2\/docs-category?post=8098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}