ADL and TT Mobile
Unfortunately, users cannot launch new algo orders via the TT Moblie App. However, when you launch algos from your TTW browser access, you can then log into your TT Mobile App to see these instances running in your Algo Dashboard.
Unfortunately, users cannot launch new algo orders via the TT Moblie App. However, when you launch algos from your TTW browser access, you can then log into your TT Mobile App to see these instances running in your Algo Dashboard.
残念ながら、ユーザーは TT Moblie アプリを通じて新規のアルゴ注文を起動できません。ただし、TTW ブラウザ アクセスからアルゴを起動すると、TT Mobile アプリにログインして、アルゴ ダッシュボードで実行中のこれらのインスタンスを表示できます。
An Exit Block is used within virtualized group blocks, and is used to dispose of unwanted or unnecessary instances. To add an Exit Block to an algorithm, right click on the canvas within a virtualized group block and select “add exit block”. Using either the Boolean or discrete message inputs, you can build logic in […]
After developing and testing an algo, you might want to allow other users to use the algo for trading. ADL’s algo sharing feature allows you to grant permission to other users to execute your algo and open the algo in ADL. When you share an algo with other users for execution, the algo automatically appears […]
This article discusses how to get algos to resubmit orders or to continually submit orders without needing to launch new instances of algos. There are several ways a user can create or utilize this “reload functionality”. Here are a couple easy ways to build some reload functionality type Library Blocks. Reload Logic A user creates […]
Unaccumulated LTQ is simply the most recent LTQ. Accumulated LTQ is a summation of all LTQs that occur at a given LTP while the LTP remains unchanged. For example, consider the following trades: LTP = 100, LTQ = 3LTP = 99, LTQ = 4LTP = 99, LTQ=7LTP = 99, LTQ=1 At this point, an unaccumulated […]
Estimated Position In Queue (EPIQ) is imperfect since you lack detailed order information. But a conservative estimate can be determined by starting with the quantity at the order’s price when it is entered. Then reduce it by any trades that occur at this price. Then adjust it further downward if the BidQty falls below this […]
Export block output values ADL blocks can export the values from Numeric and Boolean output ports so they appear in the far-right columns for the algo in the Algo Dashboard. The values of these outputs update dynamically. Example: Three values exported from an algo Note: Exported values are not supported within a virtualized block or […]
Many automated strategies in ADL will have nearly identical buy and sell side routines, with certain blocks acting as “pivot” points. As such, several blocks in ADL have Flip for Sell Order functionality, which enables them to perform an alternate function depending on the user’s selection of the Order Side variable (either Buy or Sell). […]
Many of the ADL blocks allow you to define formulas to calculate output values for the blocks. For such blocks, you can open the Formula Editor from their respective Block Properties panel. The Formula Editor shows the types of values and operations you can use in a formula, including: Arithmetic operators (i.e. +, -, %) […]
Leave orders on cancel or pause Every smart trading block in ADL can be enabled to leave child orders in the book when the algorithm is paused or canceled. The option can be accessed by double-clicking on the respective trading block. Example: Leave orders options The following actions can cause the algorithm to pause or […]
By leveraging the Autotrader Widget, users can populate user variables with RTD Excel data in the Algo Dashboard. There are two methods to populate values from Excel into ADL. Direct copy: Copying specific cells from Excel and pasting into ADL. RTD linking: Using the Autotrader widget to link the values from Excel. Note: You must […]
Understanding the granular order in which the variables are updated is one of the most crucial elements in mastering advanced programming techniques in ADL. When a block outputs a pulse of discrete event message, an algorithm temporarily stops channeling continuous messages from the exchange servers. Continuous message channels will remain closed while the pulse of […]
Building Basic Queue Holder Functionality Users often need to place several order “up or down the book” . To achieve this, we will build basic Queue Holder functionality. The following examples show the basic entry-side of the logic for these types of order entry. Example 1: Order Stack with Discrete Order block and Flip 4 […]
An algorithm in ADL can be designed as an Order Ticket Algo (OTA), which means that the algorithm can be launched directly from either MD Trader or Order Ticket widget as you would any other type of order. The OTA functionality is especially useful for strategies that require a fast “single-click” style of execution. Note: […]
TT has developed a new feature to automatically restart ADL algos following Algo Server maintenance restarts. Algo Servers in simulation are restarted Monday through Friday at 4:15PM Chicago time. Algo Servers in production may or may not restart on weekends if maintenance is required. Recovery Behavior All ADL algos will be recovered back to the […]
A Synthetic Order Algo (SOA) in ADL is similar to an Order Ticket Algo (OTA) in that it’s launched at order entry like a TT Order Type. However, an SOA differs from an OTA in three significant ways: A Synthetic Order Algo automatically shows the parent order in MD Trader. An SOA generates fills for […]
Time and Timers in TT ADL There are a number of scenarios where TT ADL developers may need to use time and timers in their algos. ADL provides this functionality via several blocks and mechanisms. Some of these are new in TT ADL. The following describes the use case for each. Use Case 1: An […]
TT ADL の時間とタイマー TT ADL 開発者がアルゴにて時間とタイマーを使用する必要のある状況があります。ADL は、いくつかのブロックやメカニズムをつうじてこの機能を提供しています。これらのうち幾つかは TT ADL の新機能です。以下にそれぞれ使用実例を説明しています。 実例1: アルゴは、離散イベントのロジカル経路で時間の遅延を設ける必要があります。 Stopwatch ブロックではユーザーが、ミリ秒で離散イベントの時間の遅延を設定できます。ミリ秒数は関連の緑色のキャンバスの出力として指定されるので、内部のロジカル状態に基づいて異なります。 これが便利である場合の例として、約定と追加の注文発注の間での遅延を設定することです。以下のアルゴでは、Order ブロックにフィードされる枚数が増加する前に、約定メッセージでは10秒間の遅延があります。 実例2: アルゴは特定の時間と特定の日付で操作を実行する必要があります。 Generator ブロックの新規の AtStartTime モードを使って、通知のメッセージを送る日付と時間を指定できます。AtStartTime モードの際、UTCDate と UTCTime コネクターの両方を表示します。これは年、月、日、時間、秒、ミリ秒で構成されています。指定した UTC 日付と時間に達すると、離散イベントは出力ポートから伝搬されます。 これが便利である場合の例として、特定の日付と時間に Order ブロックのオン・オフ入力ポートを更新することです。以下のアルゴにて、Order ブロックが2017年7月14日 15:00:00.000 (米国中央時間帯) まで有効化されます。 実例3: アルゴは特定の時間と特定の日付に操作を実行する必要があります。 Generator ブロックの新規の AtStartTime モードを使って、通知のメッセージを送る毎日の時間を指定できます。AtStartTime モードの際、UTCTime コネクターを表示します。これは時間、秒、ミリ秒で構成されています。指定した UTC 時間に達すると、離散イベントは出力ポートから伝搬されます。これは毎日繰り返されます。 これが便利である場合の例として、特定の時間に Order ブロックのオン・オフ入力ポートを更新することです。以下のアルゴにて、Order ブロックが 3:00:00.000 (米国中央時間帯) に有効化されます。 実例4: アルゴはオプションで指定された時間の間隔で離散メッセージ通知を繰り返す必要があります。 Generator […]
Virtualization Virtualization is a property that can be applied to a designated portion of an algorithm to allow multiple “copies” of the designated portion to be created and executed simultaneously. While the concept may sound complex, the necessity of virtualization becomes clear when examined through an example. Suppose that a user designs and runs a […]
Autotrader ウィジェットを利用して、ユーザーは RTD Excel データでユーザー変数を生成できます。この方法は、値を連結させる TTW での Autotrader ウィジェットを使用しています。
アルゴの開発とテストを行った後、他のユーザーが取引にアルゴを使用できるように設定できます。ADL のアルゴ共有機能を使って、他のユーザーがアルゴを執行したり ADL でアルゴを起動できるように、アクセス許可を認めることができます。他のユーザーが執行のためのアルゴを共有する場合、アルゴはアルゴ ダッシュボードにて利用可能なアルゴの一覧に自動的に表示されます。アルゴが 注文チケット アルゴ (OTA) または 合成注文アルゴ (SOA)である場合、アルゴは [MD Trader] などの [取引] ウィジェットにて公開アルゴ一覧に表示されます。 アルゴ共有アクセス許可 アルゴを共有する場合、これらのユーザーに以下のアクセス許可の両方または1つを設定できます。 View in ADL (but not edit): ユーザーが ADL にて読み取り専用アクセス許可で共有アルゴを開くことができます。 Launch: ユーザーが TT で共有アルゴを実行できるようにします。ただし、ユーザーは ADL でアルゴを起動できません。 注: ユーザーは ADL キャンバスでアルゴを開かなくても、アルゴの承認要求を送信できます。 アルゴ共有の制限事項 TT は、共有アルゴに対して以下の制限事項を課しています。 アルゴを共有する各ユーザーの電子メールアドレスを知っておく必要があります。 アルゴを共有するユーザーが Setup でアルゴを実行するのに承認が必要な場合は、そのユーザーはアルゴを実行するのに承認を要求する必要があります。この場合、そのユーザーに読み取りアクセス許可有効化する必要があります。
TT ADL の時間とタイマー このトピックでは、新規のアルゴ インスタンスを起動することなく、アルゴを取得して注文を再発注する方法や、注文を連続して発注する方法について説明しています。「リロード機能」を利用したり作成するには幾つかの方法があります。ここにリロード機能タイプの Library ブロックを作成する簡単な方法をいくつか紹介します。 リロード ロジック ユーザーは 3 コネクター入力を使って Library ブロックを作成します (約定、クリップサイズ枚数、合計注文枚数)。最初に入力した約定値を比較して、それをクリップ サイズ枚数入力値で割り算します。そしてこの計算値が出て、整数に四捨五入切り捨てを行い、小数点が入らないようにします。この結果の計算値は次に、クリップ サイズ枚数入力値で乗算されます。この結果の計算値は次に、クリップ サイズ枚数入力値に追加されます。結果の計算値はリロード枚数値となり、注文が起動または開始されて以来の直前の約定を構成しています。リロード枚数は Math ブロックにフィードされ、このリロード枚数を合計注文枚数と比較する出力最小値に設定されます。結果の出力最小値は、実際のリロード枚数となり、Orders ブロックにフィードされます。最小値を出力するよう設定された Math ブロックは、Reload ロジック機能がシャットオフされる方法です。比較は、合計注文枚数入力が最小 (MIN) 値 対、リロード枚数入力を示しています。この値は、Orders ブロックの枚数入力にフィードし、Order ブロックがそれ以降注文を発注しなくなり、最初の合計注文枚数より多くなります。 リロード ボタンの例 リロード ボタンの例 以下の例は、ユーザー定義変数「リロード ボタン」を作成する方法を示しています。これにより、ユーザーがアルゴを手動でトリガーして、希望した時に新規の注文を発注できます。これは、単に Boolean ブロックから [TRUE/FALSE] 出力を切り替えることでできます。これにより、以下に示すとおり、内部ロジックがトリガーされます。
基本優先順位ホルダー機能の作成 ユーザーは、「注文一覧の上下」の注文を発注する必要がある場合があります。これを実行するには、基本優先順位ホルダーを作成します。以下の例は、発注のこれらのタイプのロジックの基本エントリ側を示しています。 例1: [Discrete Order] ブロックとフリップ フォー セル (Flip 4 Sell) 機能を備えた注文スタック この例は、以下のアルゴ変数を使用します。 発注には買側 最良買値の下に2つの価格ティックを設定 各注文に 5枚の注文枚数 2つのオフセット価格ティックの設定から、一覧の下に発注される、合計5つの価格増分。 以下の画像では、ロジックの組み立て方法を説明しています。この最初の画像では、変数を設定します。 この部分は注文のもとのスタックを作成します。これは、スタックの深みを設定するのにループ ブロックを使用します。そして Loop ブロックから Index Number をとり、任意のオフセットに追加します。ユーザーは各元の注文を発注するちょうどの価格を特定するように設計されています。これらは各自、仮想インスタンスになります。DOB はもとの注文と注文枚数として、「START PRICE」を参照します。また DOB はフリップ フォー セル (Flip for Sell) 機能に設定されています。 以下に示すブロックのいくつかの内部参照について説明します。 緑色の SUM ブロックは約定枚数を計算しています。他の SUM ブロックは 1 の数値を使ってレベルを数えます。 元の価格マーカー…..(インサイド マーケットのオフセット – 1 + Stacking Order ブロック Loop ブロック インデックス) […]
ADL の自動ストラテジーの多くは、「ピボット」ポイントなどの特定のブロックの動作をもつ、ほぼ同一の買側と売側の方法を使用します。そのように、ADL の幾つかのブロックユーザーが [Flip for Sell Order] 機能を持っています。これで [Order Side] のユーザーの選択によって、代わりの機能を実行できるようになります (買または売)。例えば、この機能が有効化されると、[Add] ブロックは [Order Side ] の値に基づいて、加算または減算のいずれかを実行します。 例 Flip for Sell Order 機能を使った両方向のストラテジー (Flip for Sell Order が有効化されたブロックが協調表示されます) 注 上記のストラテジーの特定の部分を視覚化して適切に機能させる必要があります。視覚化とは、例では明確化の目的で示されていません。 常に買サイドの方向から設計して [Flip for Sell Order] 機能を有効化し、適切なピボット ブロックに対し売サイド方向に切り替え可能にする必要があります。 [Trade] ウィジェットにて、[Algo Dashboard] など、[Flip for Sell Order] 機能が有効化されたブロックを含んでいるアルゴリズムに対しては、[Side] 変数が自動的に表示されます。そしてユーザーはアルゴリズムを起動する前にこの変数を設定する必要があります。 ユーザーは以下の方法の1つを使って [Order Side] 変数を替えることができますが、アルゴリズムを起動する前に、[Order Side] 変数を宣言する必要があり、起動後は変更できません。 Designer キャンバスの上部にある ドロップダウン […]
ブロックの出力値のエクスポート ADL ブロックは [Numeric] 出力ポートと [Boolean] 出力ポートからの値をエクスポートでき、[Algo Dashboard] のアルゴの一番右の列に表示されます。これらの出力の値は動的に更新されます。 例 アルゴからエクスポートされた3つの値 注 エクスポート済みの値は仮想ブロック内や、仮想ブロックの出力ポートに対してはサポートされていません。
仮想化 仮想化とは、アルゴリズムの指定の部分に適用して、指定の部分の複数の「コピー」を作成し、同時に執行できるようにするプロパティです。概念は複雑に見えますが、例で説明すると、仮想化の必要性が明確になります。 以下の例で示すとおり、ユーザーは E-ミニ S&P 500 限月で単純なマーケット メイクのアルゴリズムを設計して実行する例を紹介します。 現在の最良買値が 1313.75 でアルゴリズムのエントリ ロジックが、この価格で 10 エントリ側の限月をクォートすることを想定します。次に 10 限月中 1 つの限月が 1313.75 で約定します。それに対して、アルゴリズムのエグジット ロジックが 1314.25 で1限月を、約定値より高い 2増分を提供します。 マーケットは高値に移動し、最良値は 1314.00 に変化することを想定します。Step 2 からのオフセット限月が 1314.25 でリセットされますが、アルゴリズムのエントリ ロジックは残りの 9 エントリ側限月を 1314.00 に変更します。次に 9 エントリ側のうち 2 エントリ側が 1314.00 で約定します。この時点で、アルゴリズムの合計約定数は、手順2 からの最初の部分約定も含めて 3 となります。アルゴリズムのエグジット側のロジックが合計約定数と最新の約定値のみを使用するように設計されている場合、1314.50 で3つのオフセット限月と、最新の約定値より2つ高い増分を提供します。さらに、アルゴリズムのエグジット ロジックは一度に1注文のみクォートできるので、1314.25 で残存するオフセット限月を削除しました (手順 2 より)。 この動作が発生しないようにするには、ユーザーはこのアルゴリズムのエグジット ロジックを仮想化する必要があります。仮想化では、エントリ側の約定が発生するたびに、エグジット ロジックの新規コピーが作成されるので、各オフセット注文が独立したロジックで作動できます。 ブロックのグループを仮想化すると、ユーザーは、指定の離散イベント […]
推定優先順位 (EPIQ) は、詳細な注文の情報に欠けているので完全ではありません。しかし注文の発注時に注文の価格での枚数で開始することで、保守的な推定ができます。そしてこの価格で発生したすべての注文によって値は下がります。次に [BidQty] がこの値を下回ると、さらに下向きに調整します。 Branch0 ブロックの数式は以下のとおりです。 ! tradeIsOTC AND tradePrice = MsgInfoExtractor0.limitPrice AND Order0 > 0
取消や停止で注文を残す ADL の各スマート取引ブロックでは、アルゴリズムが停止や取消された場合に注文一覧で子注文を残すことができます。このオプションは、該当する取引ブロックをダブルクリックするとアクセスできます。 例 注文を残すオプション 以下の操作により、アルゴリズムが停止または取消される可能性があります。 [Instrument] ブロックが記録する取引所の1つが終了した場合: 停止 (情報パネルの変数タブのチェックボックスが選択されている場合を除いて)。 スマート取引ブロックが無効価格で注文の発注を試みた場合: 停止 リスク チェックの違反 (Pnl ブロックが賦課): 停止 Terminal ブロックがトリガーされた場合: 停止 [ダッシュボード] で「停止」ボタンが押された場合: 停止 [ダッシュボード] で「取消」ボタンが押された場合: 取消 クライアントの切断時 (自発的または不本意のいずれか): アルゴリズムは [Algo Dashboard] (アルゴダッシュボード] の変数を使って実行を継続するか、停止または取消するように設定できます (子の変数はすべてのアルゴリズムに自動的に表示されます)。
ADL の合成注文アルゴ (SOA) は、TT 注文タイプのように発注時に起動される注文チケット アルゴ (OTA)に類似しています。ただし、SOA は3つの点で OTA とは大きく異なります。 合成注文アルゴ (SOA) は自動的に MD Trader にて親注文を表示します。 SOA は子注文の約定に加え親注文の約定を生成します。 合成注文アルゴ (SOA) が完全約定すると (注文枚数に設定されているこのタイプのブロックが 0 に到達した場合)、アルゴは自動的に終了されます。 OTA と同様、合成注文アルゴ (SOA) は、[Instrument] ブロックの [Type] プロパティを [Order Instrument] に設定することを必須づけています。さらに、[Number] ブロックの [Variable Type] プロパティを [Order Quantity] に設定する必要があります。 SOA が展開されると、以下のように注文タイプ値の一覧に表示されます。 SOA で発注された親注文と子注文の両方が [MD Trader] ウィジェットに表示されます。アルゴの作成者が ADL で [Synthetic Algo Order (SOA)] 設定を有効化すると、[Show […]
TT では、Algo Server メンテナンスの再起動の後に、 ADL を自動的に再起動させるための新機能を開発しました。デモ取引環境の Algo Server は、月曜~金曜のシカゴ時間の午後 4時15分に再起動されます。ライブ取引環境の Algo Server は、メンテナンスが必要な場合は週末に再起動される場合があります。 回復の動作 すべての ADL アルゴは、再起動前の状態に回復されますが、Autospreader や Aggregator 注文を実行するのに設定された以下の注文ブロックが1つ以上含まれるアルゴは例外となります。これらのアルゴの回復は失敗します。 さらに、Algo Server が再起動されている間に、取引所以外の定期的な離散イベントを発信するように設計された ADL アルゴの状態は、再起動後に不正確であったり障害を起こす可能性があります。この方法で設計されたアルゴは、週末のメンテナンスが開始される前に停止させる必要があります。
ADL ブロックでは、ブロックの出力値を計算するための数式を定義できます。このようなブロックは、それぞれの [ブロックプロパティ] パネルから [Formula Editor] を開くことができます。 [Formula Editor] には、以下のような、数式で使用できる値や演算子が表示されます。 算術演算子 (+、 -、% など) 括弧など、演算の順序を定義するための様々な記号 比較演算子 (<、>=、==、!= など) 論理演算子 (IF、AND、OR、! など) 注: IF 演算子は、[Alert] ブロックで現在サポートされていません。 数値とブール値 変数で、他の ADL ブロック出力コネクターからの値やブロックに入る離散イベントメッセージからの値を含みます。 ブロック コネクターを使って、数式の他のブロックからの出力を使用できます。 メッセージ欄により、受信した離散イベント メッセージからの情報を数式にて使用できます。 Formula Editor ではオート コンプリート機能を提供していて、アルゴですでに利用可能な情報を簡単に参照できます。特殊文字を入力すると (@または#)、数式に変数として挿入できる項目のリストがエディターに表示されます。また記号の後に文字を入力すると、その文字で始まる項目に絞り込まれます。 # を入力すると、受信した離散イベント メッセージで利用可能なすべての欄のリストが表示されます。 @ を入力すると、キャンバスに1つ以上の連続出力ポートを含むブロックのリストが表示されます。 サンプル数式 以下のサンプルでは、基本的な数式タイプを説明しています。 ブール数式 以下の数式は、単純にブール値「TRUE」を出力し、他の下流ブロックが使用できるようにするものです。 算術数式 [ExitPrice Value Extractor] ブロックの次の数式は、買注文の約定値よりも2ティック高い価格を計算します。そしてこれを使用して、買注文の約定値よりも2ティック高いエグジット売注文を発注できます。 […]
Exit ブロックは、仮想グループ ブロック内で使用され、不必要なインスタンスを廃棄するのに使用されます。アルゴリズムに Exit ブロックを追加するには、仮想グループ ブロック内でキャンバスを右クリックして「Exit ブロックの追加」を選択します。Boolean または離散メッセージのいずれかを使って、アルゴリズムでロジックを作成し、必要でなくなった場合はいつでも仮想インスタンスを廃棄できます。 Exit ブロックを使うのではなく、場合によっては、アルゴリズムの効率性に影響が及ぼされ、遅延の問題を生じることがあります。これは、仮想インスタンスが作成される際は常に、メモリーに保存され、ADL は各仮想インスタンスを更新する必要があります。更新する必要があるインスタンスが多ければ多いほど、この手順により時間がかかります。 デモ取引モード例 1000 の1ロット注文を発注しようとしているエントリ側の注文があります。そして1ティックの利益値のため各個々の1ロットのエントリ側注文を約定待ちしようとしています。全部のエグジット側のヘッジ ロジックを仮想化しました。そしてヘッジ ロジックで約定した場合に各仮想インスタンスのインサイドをトリガーさせるように、 EXIT ブロック内に作成します。 次に入力コネクターに Exit ブロック ロジックを接続させて、1000 個の仮想インスタンスでロジック構造をセットアップします (連続ブール値)。ユーザー定義の Boolean ブロックを今作成した入力に接続させます。アルゴリズムを開始して、アルゴがこれらの1000の仮想ブロック インスタンスを起動している間に、サーバーで利用するシステム リソースを監視します。リソースが均質化するのを待機します (メモリー、スワップファイル、CPU など)。 Boolean ブロックのスイッチを入れて、すべての Exit ブロックを一度にトリガーするようにすると、.NET がゴミ箱の集合をトリガーした際にリソースの空き容量が確保されるのがわかります。 離散メッセージにより仮想化 (Virtualization) が生成される際: 仮想グループ内のブロックが作成されます。 これらの各ブロックの連続入力が生成されます (存在する場合)。 この仮想化コピーの作成を誘導する離散メッセージは、経路をつうじて循環します。 実行可能な機能をもつブロックは執行を行います。一般的に、この状況での操作ブロックとは、アルゴの寿命の任意の時点において市場で操作を行うものを示しています。例えば、注文管理ブロックがあります。 Exit ブロック (連続入力を使用するブロック) がトリガーされると… Exit ブロックで Boolean 連続入力が「偽」から「真」に変わった瞬間、仮想化がエグジットを予定します。操作はまだ行われていません。 各仮想化グループの連続入力は更新されます。Boolean 変更のメッセージを表示したアルゴの変更が (Exit ブロックのトリガーに使用) […]
ADL のアルゴリズムは、注文チケット アルゴ (OTA) として設計できます。つまり他の注文タイプと同様に、アルゴリズムを [MD Trader] または [Order Ticket] ウィジェットのいずれかから起動できます。素早い「1クリック」スタイルの執行が必要なストラテジーには、OTA 機能が非常に便利になります。 注: 約定は、OTA 親注文にではなく、OTA 子注文のみに生成されます。 [Instrument] ブロックの [Type] プロパティが [Order Instrument] に設定されると、アルゴは注文チケット アルゴ (OTA) となります。 OTA が作成され展開されると、以下のようにアルゴ名が注文タイプ値に追加されます。 MD Trader での OTA 注文の表示 既定で、OTA により発注された子注文のみが [MD Trader] ウィジェットに表示されます。OTA アルゴ クリエーターで 「Show algo order on ladder」 (板情報でアルゴ注文を表示) 設定を有効化すると、OTA で、MD Trader ウィジェットの親合成注文をオプションで表示することができます。 注文枚数と約定待ち枚数は、両方とも 「0」 に設定され、注文が OTA 親合成注文であることを示しています。子注文は通常の約定待ち注文として表示されます。 […]
ADL.変数が更新される粒状順序を理解することは、ADL で高度なプログラミング技術を取得するのに、最も重要な要素の1つです。 ブロックが離散イベント メッセージのパルスを出力すると、アルゴリズムは一時的に、取引所サーバーからの連続メッセージのチャネルを停止します。離散イベント メッセージのパルスがアルゴリズムの中に伝達されている間、連続メッセージ チャネルは、閉じられたままとなります。効果では、この動作は、マーケット データのストリーミングにチャネルする [Instrument Field] ブロックとして、ブロックの出力を「フリーズ」します。この静的状態では、離散的イベント メッセージのパルスはユーザーにより指定された経路を移動して、経路に存在するブロックの出力値の更新を行います。この伝達が完了すると、アルゴリズムはすべての取引所サーバーからの連続メッセージのチャネルを再開します。 注 TT はパフォーマンスの向上のため常にシステム改善を行っています。そのため TT では、アルゴのシーケンス ロジックを設計する際に、特定のシステム遅延を想定した時間の遅延を含めないように強く推奨しています。 このような伝達はミリ秒で実行され、実際には見えることはありません。ただしこのメカニズムでは、ADL でユーザーは、離散イベント時に正確に存在するマーケット データを取得して使用できます。以下の ADL は、離散イベント メッセージが伝達される際にブロックが更新される正確な順番を制御しています。 Pass-through ブロック 伝達中に、離散イベント メッセージが Pass-Through ブロックに入り (離散イベント メッセージを変更せずに受信または受け渡しする際)、以下の順番で動作が起こります。 Pass-through ブロックの連続出力値自体が、まず更新されます。 Pass-through ブロックの連続出力値を使用するすべての「下流」ブロックが、更新されます。 離散イベント メッセージは Pass-through ブロックを終了します。 離散イベント メッセージは、末端点に到達するまでに、指定の道筋を通じて伝達されます (次の黒点を参照)。 例 「パススルー」ブロックを入力する際の更新の順番。この例では、離散イベント メッセージが、パススルー ブロックを出る前に、パススルー ブロックから 「下流」に接続されているブロックをまず更新します。 離散イベント メッセージはブロックに入ります。 連続出力値は、[Add] ブロックの入力ポートに伝達を行います。 離散イベント メッセージの出力ポートがブロックを出て、道筋で伝達を行い続けます。 Termination […]