Trade
Overview
TT Platform
Description
Task
Browser Access
Description
Task
Videos
TT Desktop
Description
Task
Videos
Reference
Workspace Windows
Description
Task
Videos
Widgets
Description
Task
Preferences
Description
Viewing Market Data
Time and Sales
Task
Reference
Description
Depth
Description
Task
Reference
Market Grid
Description
Task
Videos
Reference
Product Grid
Description
Task
Reference
Spread Matrix
Description
Task
Videos
Reference
Position in Queue (PIQ)
Basic Order Entry
TT Order Types
Description
Task
Videos
Reference
Case Studies
TT Premium Order Types
Description
Task
Reference
Order Ticket
Description
Task
Use Cases
Reference
MD Trader®
Description
Task
Videos
Reference
Order Profiles
Description
Task
Reference
Routing Rules
Description
Task
Blocktrader
Description
Task
Videos
Reference
Trading Crypto on TT
Description
Task
Videos
Reference
Trading on B3
Order Management
Order Book
Description
Task
Reference
Floating Order Book
Description
Task
Reference
Fills
Description
Task
Reference
Positions
Description
Task
Reference
Orders and Fills
Description
Task
Reference
Audit Trail
Description
Task
Reference
Audit Query
Description
Task
Reference
Account List
Description
Task
Videos
Reference
Position Manager
Description
Task
Reference
Alert Manager and Alert Viewer
Description
Task
Videos
Reference
Account & User Restrictions
Description
Task
Reference
Balances
Description
Task
Reference
TT® OMS
Care Orders
Description
Task
Videos
Reference
Lock and Release
Description
Task
Bulking
Description
Task
Videos
Stitching and Splitting
Description
Task
Combining
Description
Task
Order Passing
Description
Task
Use Cases
Order Exceptions
Description
Task
Options
Options Risk
Description
Task
Videos
Reference
QuikStrike
Description
Task
TT Uncovered 3.0
Description
Task
TT Uncovered 2.0
Description
Task
Volatility Calculator
Description
Task
Expiration Manager
Description
Task
Watchlist
Description
Task
Videos
Reference
Options Risk Matrix
Description
Task
Videos
Reference
Options on TT
Description
Videos
Strategy Creation
Description
Task
Use Cases
Reference
Counterparty Manager
Description
Task
RFQ with Counterparties
Description
Task
RFQ Viewer
Description
Task
Videos
Reference
Electronic Eye
Description
Task
Videos
Reference
Vol Curve Manager
Description
Task
Use Cases
Videos
Reference
Options Trade Monitor
Description
Task
Videos
Reference
Options Chain
Description
Task
Use Cases
Videos
Reference
Spread Trading
Autospreader
Description
Task
Use Cases
Videos
Reference
Autospreader Rules
Description
Task
Videos
Reference
Hedge Manager
Description
Task
Videos
Reference
Trading in Yield
Description
Task
Use Cases
Reference
Aggregator
Description
Task
Videos
Reference
Algo Trading
Algo Dashboard
Description
Task
Videos
Reference
Template Manager
Description
Task
Order Management Algos (OMAs)
Autotrader
Description
Task
Reference
Videos
Excel integration with TT
Description
Task
Videos
Reference
Market-Making Algos
Analytics
Charts
Description
Technical Indicators
Task
Videos
Reference
Trader Analytics
Description
Task
Reference
ADL
ADL Overview
Introduction to ADL
Description
Task
Videos
Reference
ADL Basic Concepts
Description
Task
Reference
Building your first algo
Lessons
Advanced concepts
Description
Task
Case Studies
Jump blocks
Group blocks
Virtualized blocks
Library blocks
Trading Blocks
Discrete blocks
Arithmetic blocks
Basic blocks
Logic blocks
Miscellaneous blocks
Setup
Setup Overview
Getting Started
Description
Task
Videos
Reference
Supported Order Types and TIFs
Company Administration
Connections
Description
Task
Videos
Reference
Accounts
Description
Task
Videos
Use Cases
Reference
Users
Description
Task
Videos
Reference
Company
Description
Task
Reference
Order Tag Defaults
Description
Task
Account Administrators
Description
Task
TT Premium Services
Description
Task
TT Access
Description
Task
Advanced Features
Description
Risk Management
Risk Administration
Description
Task
Risk Limits
Description
Task
Videos
Reference
Pre-Trade Portfolio Risk
Description
Task
Reference
Order Cross Prevention
Description
Task
Videos
KRM Limits
Description
Task
TT® OMS
TT OMS Administration
Description
Task
Use Cases
Reference
Exchanges: Americas
FMX
Description
Task
NFI
Task
Nodal
Description
Task
MX
Description
Task
MIAX_FUT_NY
Description
Task
MIAX_FUT_CH
Description
Task
MexDer
Description
Task
ICE
Description
Task
Goldman Sachs Commodity Blocks (GSCB)
Description
Task
Referece
FMX_USTF
Description
Task
B3
Description
Task
Fenics
Description
Task
EBS Market
Description
Task
EBS Direct
Description
Task
Dealerweb
Description
Task
CME
Description
Task
CFE
Description
Task
Cboe FX
Description
Task
Reference
CBOE
Description
Task
Exchanges: EMEA
ICE_L
Description
Task
WSE
Description
Task
Nord Pool
Description
Task
Reference
NASDAQ_NED
Description
Task
NDAQ_EU
Description
Task
MEFF
Description
Task
LSE
Description
Task
LME NTP
Description
Task
LME
Description
Task
JSE
Description
Task
ATHEX
Description
Task
GFO-X
Description
Task
Euronext
Description
Task
Eurex
Description
Task
Videos
Eris
Description
Task
EPEX SPOT
Description
Task
Reference
EEX
Description
Task
DGCX
Description
Task
BIST
Description
Task
Exchanges: Asia/Pacific
ABX
Description
Task
ASX
Description
Task
FEX
Description
Task
HKEx
Description
Task
JPX
Description
Task
NSE
Description
Task
NZX
Description
Task
SGX
Description
Task
SGX GIFT
Description
Task
TAIFEX
Description
Task
TFEX
Description
Task
TFX
Description
Task
CoinFLEX
Task
Exchanges: Crypto
Coinbase
Description
Task
FIX Support
FIX Ruleset
Description
Task
FIX Sessions
Description
Task
Secondary Accounts
Description
Task
Monitor
TT Mobile
TT Backtesting
APIs
TT REST API 2.0
Getting Started
API Reference
TT REST API 2.0 (UAT)
Getting Started
API Reference
TT .NET SDK
Getting started with TT .NET SDK
Creating the application framework
Working with instruments
Subscribing for market data
More about prices
An in-depth look at the Price class
Working with orders and fills
Handling trade subscriptions
Working with trade subscriptions
Working with Algos
Algo Server
TT Order Types
TT Premium Order Types
Advanced Concepts and Options
Appendix
TT CORE SDK
Getting Started with TT Core SDK
Creating Application Framework
Working With Instruments
Subscribing for Market Data
Working with Orders and Fills
Creating a TT Application Server
Appendix
TT Trade Surveillance
Overview
Using TT Trade Surveillance
Cluster View
Core Models
Market Abuse Models
Cross Product Models
Spoofing Models
Improperly Matched Trade Models
Market Rate Models
Trading Behaviors Models
Miscellaneous Models
Configurable Models
Reports
Reference
TT FIX Services
TT FIX General
Getting Started
FIX Message Structure
Session messages
TT FIX Order Routing
Overview
TT FIX message conversations
Supported application messages
TT FIX Market Data
Overview
TT FIX message conversations
Supported application messages
TT FIX Drop Copy Out
Overview
TT FIX Message Conversations
Supported application messages
Compliance Feed messages
TT FIX Drop Copy In
Overview
Supported application messages
TT FIX Gateway
Getting Started
FIX Message Structure
Components
Session messages
Price Gateway Messages
Order Gateway Messages
TT FIX Recovery
Overview
FIX Recovery Methods
Supported application messages
Compliance Feed Messages
MiFID II Support

Correctly Sequencing Discrete Events

Although it is possible to connect more than one edge to the discrete output port of a given block, it is not advisable. For example, consider the following ADL algo.

Upon the first fill, if the path to the MsgInfoExtractor0 block is executed first followed by the path to the MsgInfoExtractor1 block, the output of the ValueExtractor0 block will equal the value of the output of the MsgInfoExtractor0 block since the value of the MsgInfoExtractor1 block will be zero.

However, upon the first fill, if the path to the MsgInfoExtractor1 block is executed first followed by the path to the MsgInfoExtractor0 block, the output of the ValueExtractor0 block will equal the value of the output of the MsgInfoExtractor0 block plus the value of the output of the MsgInfoExtractor1 block. The actual path that is chosen first by the Algo Server execution logic is not always deterministic.

To force a deterministic path of execution, simply insert a Sequence block immediately downstream of the discrete output port and choose the sequence that makes sense for your algo. For example, consider this modified algo:

Notice now that the path to the MsgInfoExtractor1 block will always be executed first followed by the path to the MsgInfoExtractor0 block. As such, upon the first fill, the output of the ValueExtractor0 block will equal the value of the output of the MsgInfoExtractor0 block plus the value of the output of the MsgInfoExtractor1 block, which is what was intended.

OHLC と VWAP 時間軸の作成

始値、高値、安値、終値、VWAP ロジックの作成方法

以下のスクリーンショットでは、[Time and Sales] ブロックを使って、始値、高値、安値、終値 (OHLC) を簡単に作成できるのが分かります。そして抽出した取引価格値を使って、様々な必要な値計算を作成します。

注:

  • Value Bucket ブロックは単に「内部モード」選択で LAST に対し設定されています。内部 「storeKey」数式は TradeCounter ブロック出力を参照しています。「storeVal」が TradePrc ブロック出力を参照しています。
  • TradePrc ブロック出力の最小と最大で、高値と安値が提供されます。
  • 出来高は [Value Accumulator] ブロックからで、すでに作成されている各指定された時間軸 (Time Bar) の VWAP が提供されます。

時間バー

この例は、時間枠に対する [User Defined Variable] (ユーザー定義変数] 設定に設定された Generator ブロックを活用しています。 60秒または 1分の時間バー作成に設定します。OHLC 値または VWAP 値の出力の2セットがあるのが分かります。現在の時間バーと直前の時間バーを示しています。これは、この種類のロジックを作成する1つの方法例を示すためのものです。

OHLC 値と VWAP 値の時系列足

ADL ではテクニカル指標を作成する方法をいくつか提供しています。このヘルプトピックでは、OHLC (始値、高値、安値、終値) の時系列足と VWAP (出来高加重価格指標).

この最初の ADL キャンバスは、Analytics ブロックを使って、1分の時間間隔で時系列足を更新します。

Time and Sales ブロックを使って OHLC を作成するこの方法と、様々な「時系列」計算に対してブール条件値をトリガーする方法を比較できます。


さらに、以下のコード サンプルは、1 分の OHLC 値を作成して保存する方法を説明しています。この例では、現在の動作と一緒に、過去の 4本足が追跡されます。値は Time and Sales ブロック外で計算され、毎分にスナップショットが取られます。バー データが読み込まれるのに 4 分かかります。何も取引されない1分間の期間がある場合、その期間のスナップショットは取られません。また、ブロック注文は歩み値フィードからフィルター除外されます。

OMA ロジックのテスト

ADL デザイン キャンバスからの OMA ロジックのテスト

最初に行うのは通常の OMA アルゴ ロジックを作成することです。これには、既存のマニュアル注文の管理ロジックか、マニュアル注文が約定する際のヘッジ ロジックを含めることができます。どのような方法でも何でも、OMA のために作成するものです。ではテストする必要がありますね? しかし接続するマニュアル注文が必要な OMA アルゴをどうやってテストするのでしょう。

以下のスクリーンショットは、Funnel ブロックを使用しています。ここではオン・オフにできる「テスト注文」タイプ ロジックを追加できます。オンにして、キャンバスの [PLAY] ボタンをクリックすると、アルゴは「テスト注文」を発注して、[Single Order Container] ブロックから下流で OMA ヘッジ ロジックがどのように作動するかを確認できます。

Smartberg アルゴ

ヘルプライブラリのすべてのサンプルは、ADL でロジックの異なった部分を作成する方法について、ユーザーに参考として提示することを目的としています。実動環境でサンプルを使用する場合は、各自でリスクを負っていただくこととなります。

以下の 「Smartberg」アルゴは、OTA (注文チケットアルゴ) です。このアルゴは、従来のアイスバーグ注文と同様の方法で作動しますが、ヒットやリフトの際の作動は異なります。通常のアイスバーグは、毎回同じクリップ サイズを使って価格で連続してリロードする一方で、Smartberg は1つの操作で指示されたクリップサイズを配置するに加え、利用可能な任意のサイズを使用します。これは、より効率的な執行方法です。というのは、メッセージの数量を減少させ、約定の機会が増加し、アイスバーグが約定待ちしているよりも明らかでないからです。

一度作成されると、[MD Trader]、[Market Grid] (銘柄情報)、[Algo Dashboard] からこのアルゴを起動できます。

このアルゴには、限月、注文価格、合計枚数、公開枚数の各ユーザー定義変数が含まれています。

: これはフリップ・フォー・セル機能が採用された OTA アルゴであるので、[MD Trader] から起動すると、クリックした位置にもとづいて、限月、価格、注文枚数、買・売方向が自動的に取られます。

警告: アルゴは定義したクリップ サイズよりも大きな注文を意図的に約定待ちすることはありませんが、アルゴが約定済みの既存のサイズを利用するために注文を送信することがあり、注文の送信最中に、一時的に定義クリップサイズを違反することがあります。このような場合、注文は100ミリ秒後に撤回され、適切なサイズが注文に再び割り当てられます。

Smartberg アルゴは以下の手順を使用します。

  1. アルゴは市場の反対で既存の出来高が存在する場合、確認することから開始します。これが存在する場合、合計枚数より大きいかそれに等しいと想定して、公開枚数を追加して利用可能な出来高を取得します。
  2. 離散メッセージはアルゴの開始時に生成され、50ミリ秒の時間の遅延で Stopwatch ブロックをヒットします。これは、上の枚数計算が実施されるようにするためです。一度経過すると、以下の2つの値抽出が現在の約定の枚数と、最初の注文の計算サイズを取得します。
  3. 注文は約定待ちを開始し、現在のクリップが約定すると、離散メッセージが生成され、手順を繰り返し、次の注文枚数を計算します。
  4. アルゴを実行中に注文価格が手動で変更されると、このロジックを使って新規の価格を確認し、注文枚数に調整を加える必要があるかを確認します。約定待ち注文枚数がクリップ サイズを超過した場合は、ここに、注文枚数を再計算するためのロジック チェックがあります。注文の送信最中にサイズ ウォールが撤回されたり約定した場合にこのような状況が発生します。
  5. この約定の合計数はアルゴが完了した合計枚数に等しく、停止状態に入ります。

TT 時間切り注文の作成

TT 時間切り注文の作成

このアルゴの基本は、10枚の注文枚数を、合計100枚まで (TOTAL QTY)、買値で [Discrete Order] ブロックから買発注することです (時間切り枚数)。これらの注文は 5 秒毎に発注されます (時間切り期間)。

この例は、幾つかのユーザー定義変数を利用して、限月、時間切り枚数、合計枚数、時間切り期間に設定します。

さらに、[Time Sliced Generator] ブロックは約定待ちの注文枚数と合計注文枚数を比較することから条件 (Conditional) 出力を使用します。この比較により、「Enable / Disable」条件に対し 「Total QTY Condition」入力が提供されます (TRUE または FALSE)。この [Time Sliced Generator] ブロックにて、「時間切り」期間に対しユーザー定義変数を利用できます。

これには、ユーザーが、アルゴを実行中に内部アルゴ値を監視するための EXPORT 値が幾つか含まれます。

市場が素早く動くと、すべての買値をとることができるかもしれないので、個々の子注文は仮想化されます。さらに、[Virtualized Group] ブロック (Order ADDS) は、価格や枚数、取消条件のカスタムの子注文管理 (Child Order Management) ロジックをおくことができます。

FILLS または [Working Order QTY accumulator] ブロックから、アルゴの一部の下流ストリーム ヘッジ ロジックを実行できます。

UTC 時間トリガーと時間カウンター

UTC 時間のトリガーと時間カウンター

以下は、UTC (協定世界時間) の特定の日付と時間のトリガーを作成する方法についての提案と可能性を示しています。そしてその時間トリガーにも第2のカウンター ロジックを含ませます。また UTC から CST (中央標準時間) の時間の変換を簡単に追加できることも分かります。[Trigger Value Extractor] ブロックは単純に、ブロック内の1のカウンター数式を使用しています。UTC から CST への変換ロジックの場合、CST にするには UTC 時間からの正確な時間数を引き算する必要があります。これが CST 時間変換です。

カウンターは、1000ミリ秒第2の入力を設定します。これにより、カウンターを作成する各秒に離散メッセージ出力を受信します。

ウィズ ア ティック アルゴの作成

ヘルプライブラリのすべてのサンプルは、ADL でロジックの異なった部分を作成する方法について、ユーザーに参考として提示することを目的としています。実動環境でサンプルを使用する場合は、各自でリスクを負っていただくこととなります。

以下の 「With A Tick」アルゴは、OMA (注文管理アルゴ) です。このサンプル アルゴは、最良買値・売値で現在約定待ちしている既存の注文に接続されるように設計されています。既存の注文はもともと、手動での発注かアルゴが発注したものです。アルゴにより、約定待ち注文から1価格分を離れて市場の反対側で利用可能な枚数を監視できます。監視している枚数がアルゴより少なくなると、1ティックをペイアップするようにしきい値を設定します (最小価格増分)。

一度作成されると、[MD Trader] や [Order Book] (注文一覧)、[Floatin Order] (簡易注文一覧) ウィジェットから、このアルゴを起動できます。

: アルゴは1度のみペイアップします。市場の反対側か深みで約定待ちしている注文にこのアルゴを接続すると、最小価格増分は1ティック以上はなれたペイアップ ティックが即時に行われます。

この例では、WAT しきい値変数が、ペイアップ ティックを行う前に監視価格で利用できることを希望する最小利用可能枚数を示しています。

ウィズ ア ティック注文の発注

これは、「ウィズ ア ティック」タイプの動作を確実するのにどう取り掛かるかの基本的な例を示しています。

以下のスクリーンショットは、注文チケット アルゴ (OTA) 機能を示しています。

: これは、ADL のトレーニングを目的としただけの例です。これを作成してテストし、アルゴ ロジックに組み込むのを希望している特定の注文動作に機能するかを確認することを強くお勧めします。

: この例では、エントリ タイプ注文のみが示されています。これには、ヘッジやイグジット ロジックは含まれていません。

スケール注文アルゴの作成

ヘルプライブラリのすべてのサンプルは、ADL でロジックの異なった部分を作成する方法について、ユーザーに参考として提示することを目的としています。実動環境でサンプルを使用する場合は、各自でリスクを負っていただくこととなります。

以下の 「Scale Order」アルゴは、OTA (注文チケットアルゴ) です。このサンプル アルゴでは、1クリックで複数の注文を市場に発注できます。発注価格から始めて、アルゴは注文の定義数を市場に発注して、各注文は、空白値で定義された定義ティック数ごとに区別されます。

一度作成されると、[MD Trader]、[Market Grid] (銘柄情報)、[Algo Dashboard] からこのアルゴを起動できます。

: これはフリップ・フォー・セル機能が採用された OTA アルゴであるので、[MD Trader] から起動すると、クリックした位置にもとづいて、限月、価格、注文枚数、買・売方向が自動的に取られます。

警告: このアルゴは、一度停止や取消されても、市場で注文の約定待ちをし続けるように設計されています。このアルゴは、純粋に発注のためのツールとして設計されています。

[Scale Orders] アルゴは、以下の手順を使用しています。

  1. アルゴの開始時に、ジェネレーターが Loop ブロックにメッセージを送信しますが、ここでは自分が必要とする注文数だけループするように設定されています。Loop ブロックと Index 回数は、必要なスケールの作成にとって重要です。
  2. Index 回数から1を減算したのがわかります。これを行うと、最初のループで 0 の値を使用するので、最初の注文が必ず開始価格で発注されるようにします。
  3. Index 回数は、空白値が適用される前に、限月の最小価格増分で乗算されます。これが計算されると、開始価格からこの値を減算し、注文を発注する価格が算出されます。
  4. 各ループ時に、Discrete Order ブロック (DOB) は「Submit Price」 と 「Order Qty」と表示されたブロックを参照します。Loop ブロックは、次のループを開始する前に離散メッセージが DOB に到達するまで待機します。これで確実に各注文が新規の価格帯で送信されるようにします。
  5. ループ コマンドが完了されると、ストップウォッチが使われ、1秒前まで待機し、アラートが生成されアルゴが停止されます。スロットルとしてストップウォッチが使用される理由は、全ての注文が確実にアルゴを停止する前に送信されるようにするためです。

スタック Q ホルダーの例

スタック Q ホルダーのタイプのロジックを作成する方法

この例は、非常に基本的なロジック作成であり、UDV の初期 BASE 価格に基づいて、限月市場の買側と売側の一覧をスタックします。この BASE 価格はユーザーが入力します。そして連続して発注された注文からの価格のティック増分数に基づいてユーザーは [Stack Depth] を設定できます。

  • TT プラットフォームの最初の BASE 価格はユーザー定義変数 (UDV) です。ここで注意することは、この数字は整数を設定する必要があり、小数点の値は使用できません。SIM モードでテストを行い、Pricing 数値が正確な指定価格に発注することを確認してください。
  • [Stack Depth] は、UDV 初期 BASE 価格から市場の価格の上または下に何枚の注文が発注されるかを設定する計算です。[Stack Depth] 計算は、[Repetitions/Loop UDV] x [Interval UDV] に基づいた、各注文間の間隔です。

: この例は、非常に基本的なエントリ専用のアルゴです。この例は、最後の約定価格に基づいて、[Stack Q] の裏側で、単純に新規のエントリ子注文を発注します。また、ワークスペースから以上の画像で 2 の注文枚数がある理由は、[ADL Design Canvas] と、[Algo Dashboard] からアルゴを実行しているからです。これは、キャンバスで表示されるとおり、アルゴ ロジックの中で、値が更新を行う方法を示すために行われました。

Stacking Order ブロック グループ ブロック内

売サイドと買サイドの仮想グループ ブロック内


アルゴの様々なブロックの内部数式の説明

  • LAST FILL: 受信する離散メッセージから約定価格を抽出するために設定します。
  • Initial BASE Price Inject: UDV に基づいて約定価格を注入するために設定します。
  • Counter Buy and Counter Sell: 1 に等しいカウンターを設定します。
  • 買価格マーカー: (Stacking Order ブロック: If Then 約定価格) – (Stacking Order ブロック: Loop インデックス x ティック サイズ x 間隔)
  • 売価格マーカー: (Stacking Order ブロック: Loop インデックス x ティック サイズ x 間隔) + (Stacking Order ブロック: If Then 約定価格)
  • SELL DOB: 価格 [ IF (Stacking Order ブロック カウンター売)i>
  • BUY DOB: 価格 [ IF (Stacking Order ブロック カウンター買)i>

ブロックの出力値のエクスポート

ブロックの出力値をエクスポートするには:

  1. ADL で、ブロックの出力ポートを右クリックして、コンテキスト メニューから [Export value] (値のエクスポート) を選択します。

    ポートを選択した後、例の [fillPrice] ポートに示されているように、オレンジ色の境界線がポートの外枠に表示されます。

  2. キャンバスの下部の [Information] (情報) バーをクリックします。次に [Export Values] ラベルをクリックすると、エクスポート済みの値が表示されます。

  3. アルゴを展開します。

  4. [Algo Dashboard] を開き、アルゴを起動します。

    上の例と同様で、エクスポート値の列は最も右側に表示されます。

値のエクスポートを停止するには、希望の出力ポートを右クリックして、コンテキスト メニューから [Unexport value] (値のエクスポート停止) を選択します。

プロフィット アルゴまたはスクラッチ アルゴの作成

ヘルプライブラリのすべてのサンプルは、ADL でロジックの異なった部分を作成する方法について、ユーザーに参考として提示することを目的としています。実動環境でサンプルを使用する場合は、各自でリスクを負っていただくこととなります。

以下の 「Profit or Scratch」アルゴは、OTA (注文チケットアルゴ) です。このサンプル アルゴはインサイド マーケットで作動するように設計されています。注文を発注すると、アルゴはその価格で利用可能な枚数を監視するので、枚数がスクラッチしきい値を下まわった場合、注文は撤回されます。

この例では、ユーザーは以下のパラメータを設定します。

  • Instrument (限月)
  • Price (価格)
  • Quantity (枚数)
  • Profit Ticks (利益ティック)
  • Scratch Threshold (スクラッチしきい値)

アルゴは、約定が達成できた際に、利益取得の注文を自動的に発注します。注文は約定価格からユーザー定義のティック数で発注されます (利益ティック)。

ポジションを持っている場合に発注価格での枚数がスクラッチしきい値を下まわった際、アルゴはすべての未約定の利益取得注文をスクラッチしようとします。

一度作成されると、[MD Trader]、[Market Grid] (銘柄情報)、[Algo Dashboard] から子のアルゴを起動できます。

: スクラッチしきい値と価格が見逃されると、注文は発注価格で約定待ちを続けます。そして注文は手動で操作できます。

ランダム枚数と遅延でのアイスバーグ注文の発注

アイスバーグ注文は、大規模な注文枚数を少量の公開注文に分割して執行します。公開注文とは、注文枚数全体ではなく、特定の部分のみを公開して表示したものです。

以下の ADL Canvas では、ユーザーが子注文の枚数の値や遅延値を定義して (300~1500 ミリ秒)、これらの値をランダム化できます (3~10)。アルゴは State ブロックを利用して約定ステータスを決定できます。

上ティックと下ティック カウンターの作成

このトピックは、ADL を使って特定の限月を取り、その限月の買値を撤回します。そしてユーザー定義の上ティック・下ティック変数を使い、マーケット データを監視するカウンターを作成します。そして市場のユーザー定義の上ティック数や下ティック数が達すると、「TRUE」ブール値を出力します、これはアルゴ ロジック内でトリガー条件として使用できます。

: 2つの異なった State ブロック #1 と #2 は両方とも、画像に示しているとおり、同じ内部数式を使用します。しかし参照 VE (Value Extractor ブロック) を VE ブロック買値 1 または VE ブロック買値 2 に変更して、必ず適切な値を参照してください。State ブロック #2 は、VE ブロック買値 2 を、State ブロック #1 は VE ブロック買値 1 を参照する必要があります。

以下に 2 つのロジックの画面を示しています。構造上ではこれらは類似していますが、State ブロック #1 と #2 のための UPTICK ロジックや DOWNTICK ロジックの内部条件ロジックを実行するため、内部の State ブロックの条件ロジックとは異なります。

上ティック カウンター

State ブロック 1…….条件 1: Bid Price > VE Bid Prc 1 Condition 2: Bid Price>

State ブロック 2…….条件 1: Bid Price > VE Bid Prc 2 Condition 2: Bid Price>

下ティック カウンター

State ブロック 1…….条件 1: Bid PriceVE Bid Prc 1

State ブロック 2…….条件 1: Bid PriceVE Bid Prc 2

共有アルゴの管理

アルゴの共有

他のユーザーとアルゴを共有するには

  1. ADL で共有するアルゴを開きます。
  2. アルゴがすでに展開されていない場合は、アルゴを展開します。
  3. [File] メニューから [Share/Unshare] を選択します。

    共有設定ダイアログが表示されます。

  4. アルゴを共有したいユーザーのコンマ区切り TTID 電子メール アドレスを入力します。

  5. 以下のアクセス許可の1つまたは両方をクリックします。
    • Read (読み取り): ユーザーは ADL でアルゴを開くことができますが、変更はできません。
    • Execute (執行): [Algo Dashboard] からアルゴを実行できるユーザーを制限します。

    注: 選択済みのアクセス許可が、指定されたすべてのユーザーに適用されます。各ユーザーに異なったアクセス許可を割り当てるには、各ユーザーのアクセス許可の組み合わせに対し、アルゴを別々に共有する必要があります。

  6. [OK] をクリックします。

    : 電子メールのいずれかが無効な場合、以下の内容のメッセージが表示され、アクセス許可は指定した電子メール アドレスに全く設定されません。

共有アルゴのアクセス許可の取消

アルゴの共有アクセス許可を取り消するには:

  1. ADL で共有するアルゴを開きます。
  2. [File] メニューから [Share/Unshare] を選択します。

  3. 取り消すアクセス許可をもつユーザーの X アイコン をクリックします。
  4. [OK] をクリックします。

共有アルゴのアクセス許可の変更

共有アルゴのアクセス許可を変更するには

  1. ADL で共有するアルゴを開きます。
  2. 共有しているアルゴを該当するユーザーに対し取消します。
  3. 新規のアクセス許可を選択し、アルゴを再共有します。
  4. [OK] をクリックします。

出来高の要約

以下の例は、特定の時間枠で買や売の蓄積取引枚数を取得する方法について示しています。この例では、時間枠は5秒毎です。

外部イベントの処理

Order ブロック、Discrete Order ブロック、Single Order Container ブロックは、ADL での注文の管理に使用されます。これらのブロックのプロパティの1つは、「When Ext Mod Occurs」といいます。このプロパティは、管理している注文が外部で変更された際のブロックの動作を決定づけます。値には3つの可能性があります。

  • 管理の停止 (Stop Managing)
  • 切り離し (Detach)
  • 無視 (Ignore)

管理の停止 (Stop Managing)

「管理の停止」(Stop Managing) オプションが選択され、注文が外部で変更されると、ブロックは入力ポートへのその後の変更を無視しますが、出力ポートを通じて注文へのすべての更新をパブリッシュし続けます。言い換えると、このブロックの入力に対するすべての変更は受け入れられませんが、注文と約定のイベントが発生する際に離散イベントがブロックから生成されます。注文はブロックにより管理されなくなります。

切り離し (Detach)

「切り離し」(Detatch) オプションが選択され、注文が外部で変更されると、ブロックは入力ポートへのその後の変更を無視し、出力ポートを通じて注文へのすべての更新をパブリッシュしなくなります。言い換えると、このブロックの入力に対するすべての変更は受け入れられず、注文と約定のイベントが発生する際に離散イベントはブロックから生成されません。つまり注文はブロックにより管理されなくなり、実質的に休止状態となります。

無視 (Ignore)

「無視」(Ignore) オプションが選択され注文が外部で変更されると、ブロックは入力に提供された値を使って子注文への全ての変更を上書きし、さらに注文と約定イベントが発生する際に、出力ポートを通じて離散イベントが生成され続けます。言い換えると、注文はブロックにより管理され続け、すべての外部からの変更の試みは上書き変更されます。ただし外部の変更を取得して受け入れることはできます。Order ブロックの場合、これを以下のように実行できます。

アルゴのスニペットにて、Generator0 ブロックは起動時に離散イベントを発信します。これは ValueInjector1 ブロックに渡されます。このブロックは次に、InitialQty ブロック (5) の値を離散メッセージの orderQuantity 欄に注入します。MsgInfoExtractor0 ブロックは離散メッセージから orderQuantity 欄の値を抽出します。この値は次に Order ブロックに入力され、これは GE-Sep24 限月に対し 96.785 で5枚の取引所固有注文を送信します。Order ブロックは「Ignore」と同様に「When Ext Mod Occurs」で設定されます。

ユーザーが取引所固有注文の枚数を外部で変更する際、Order ブロックは「Chg OK」ポートから離散メッセージを発信します。MsgInfoExtractor0 ブロックは次に離散メッセージから orderQuantity 欄の更新値を抽出します。この値は Order ブロックに再び入力されます。Order ブロックは,引所固有注文の現在の枚数を「枚数」入力ポートの値と比較します。2つが等しい場合、Order ブロックはそれ以上の操作を実行しません。これゆえ、ユーザーの外部の変更が受け付けられます。

同様に、OMA の場合これを以下のように達成できます。

アルゴのこのスニペットにて、ExistingOrder0 ブロックは OMA が起動されると Sequence0 ブロックに離散メッセージを発信します。Sequence0 ブロックはまず、このメッセージを MsgInfoExtractor1 ブロックに転送します。これは次に orderQuantity 欄の値を抽出します。この値は次に、採用された注文の最初の枚数で SingleOrderContainer0 ブロックに入力されます。Sequence0 ブロックは採用される注文を含んだメッセージを SingleOrderContainer0 ブロックに転送し、注文の管理を引き受けます。

ユーザーが注文の枚数を外部で変更すると、SingleOrderContainer0 ブロックは離散メッセージを発信します。MsgInfoExtractor1 ブロックは次に離散メッセージから orderQuantity 欄の新規の値を抽出します。この値は次に SingleOrderContainer0 ブロックに再び入力されます。SingleOrderContainer0 ブロックは、注文の現在の枚数と「枚数」入力ポートの値とを比較します。2つの値が等しい場合、Single Order Container ブロックはそれ以上の操作を実行しません。これゆえ、ユーザーの外部の変更が受け付けられます。

最新の出来高の追跡

この例では、過去に特定の秒数間に取引された限月数を見積もる方法を示しています。この機能は Stopwatch ブロックを使って実行されます。

一般的に…

  1. (3600時間 x 60分) で秒数を計算します。
  2. Value Bucket を使って、各秒中に取引された出来高を合計します (Hole=現在の秒、Value=取引枚数)
  3. [Value Accumulator] を使ってすべての取引枚数を合計します。
  4. 各秒で、X 秒前から出来高を引き算します。

「Erased Volume」 Value Accumulator の数式は、「Volume to Erase」と記された [Value Bucket] の Block Value になります。

特定の開始時間と停止時間注の注文の発注

ユーザーは、特定の時間枠中にロジックをオンまたはオフにする必要があります。ADL で何かの操作を行う方法は複数ありますが、以下の内容は Generator ブロックを使ってこのタイプのロジックを達成することに焦点をあてています。

以下に示す ADL キャンバスにて、AtStartTime に設定された2つの Generator ブロックがあります。[UTC Time] のみが選択されると、これらのブロックへの入力はユーザー定義となります。[Trade] とAND ブロックは現在「偽」であり、アルゴは注文を発注できないようになっています。

時間が [ Start Time] に一致する場合、Value Accumulator ブロックで、離散メッセージが出力され、内部ビルダーで1のうち # に設定されます。このメッセージを取得すると、連続出力ポートのうち1を出力し、以下のブール ロジックが Trade? AND ブロックを「真」に変え、Order ブロックをオン変えます。

[Stop Time] が設定した停止時間の入力に一致する場合、この Generator は別の離散メッセージを発信し、Value Accumulator ブロックに入ります。この操作により Trade? AND ブロックと、Order ブロックがオフにされます。

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

Analytics

This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.

Marketing

This website uses the following additional cookies:

(List the cookies that you are using on the website here.)