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
Kraken
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

エグジット注文の作成

このセクションでは、直前の 約定データの取得 セクションで計算した平均始値より上に複数ティック数離れて、エグジット注文を作成します。エグジット注文は、注文枚数としてエントリ注文の蓄積した約定枚数を使用し、注文価格として、平均始値に複数ティック数を追加します。

このセクションでは以下の内容を説明しています。

  • ジャンプ ブロックを使ったアルゴの表示のクリーンアップ。
  • 算術ブロックを使った、約定データに基づいたエグジット価格の計算。

エグジット注文の設定

エグジット注文の設定を開始するには

  1. [Blocks] パネルから、[Order] ブロックをドラッグして [Avg Open Price] ブロックの横に配置します。
  2. [Block Properties] パネルにて、以下の変更を行います。
    • [Name] を [Exit Order] に設定します。
    • [Side] パラメータを [Sell] に設定します。

      ブロックの配色が赤色に変化し、ブロックは売側の注文であることを視覚的に示しています。

      [Entry Order] ブロックを追加した際のように、[Order] ブロックを追加すると、幾つかの問題が [Problems] タブに表示されます。アルゴを完了すると、これらの問題は解決されます。

  3. [Exit Order] ブロックは [Instrument] 入力が必要なので、クリックとドラッグを行い、[Instrument] ブロック出力を [Exit Order] ブロックの [inst] 入力ポートに接続します。

  4. 表示のとおり、エッジを使ってポートを接続すると、アルゴは少し雑然として見えます。[Jump] ブロックを使ってアルゴの表示をクリーンアップできます。
    • たった今作成したエッジを右クリックして、コンテキスト メニューから [Convert to jump] を選択します。

      エッジは、[Instrument] ブロックに接続された緑色のソースの [Jump] ブロックでと、[Exit Order] ブロックの [inst] 入力ポートに接続されたピンク色の目的地 [Jump] ブロックにより置き換えられ、2つとも、2つのブロック間の接続を示したソース [Instrument] ブロックの名前で表示されます。

    • 2つの [Jump] ブロックを再整理して外観を整え、[Exit Order] ブロックへの残りの接続を完了できるようにスペースを確保します。

  5. ご使用のアルゴに関しては、エグジット注文枚数には蓄積約定枚数を使用することをお勧めします。同世にこの接続にも [Jump] ブロックを使用します。
    • [Fill Qty] ブロックの赤色数値の出力ポートを右クリックし、コンテキスト メニューから [Add jump block] を選択します。

      ブロックとポート名で構成された名前をもつ緑色の [Jump] ブロックが追加されたことが分かります (Fill Qty:accVal)。

    • [Fill Qty:accVal] Jump ブロックを右クリックして、コンテキスト メニューから [Create destination block] を選択します。

      [Fill Qty:accVal] という名前のピンク色の目的地 [Jump] ブロックが、ソース [Jump] ブロックの近くのキャンバスに追加されます。

    • [Exit Order] ブロックの近くの目的地 [Fill Qty:accVal] ブロックに移動し、[qty] 入力ポートに接続します。

エグジット注文の価格の決定

アルゴを完了するまでの残りの操作は、エグジット注文の価格を決定することです。平均始値より3ティック高く利益ターゲットを設定したい場合でも、ユーザーは利益ターゲットを変更できます。

エグジット注文価格を決定するには

  1. [Blocks] パネル検索欄にて、[min] をタイプし、[Min Price Increment] フィールド ブロックをキャンバスにドラッグします。次に変更は [Name] から [Tick Size] になります。
  2. エントリ ロジックに追加した [Best Bid] フィールド ブロックのように、[Min Price Increment] フィールド ブロックも限月接続が必要です。再び [Jump] ブロックを使って2つのブロックを接続します。
    1. 緑色の [Instrument] ソース Jump ブロックを右クリックして、コンテキスト メニューから [Create destination block] を選択します。

    2. 新規の [Instrument] 目的地 Jump ブロックを [Min Price Increment] ブロックの近くに移動し、2つのブロックを接続します。

  3. 次に [Number] ブロックを使って、エグジット注文に使用したい平均始値からの追加ティック数を指定します。[Number] ブロックをキャンバスに追加して、以下のブロック プロパティを設定します。
    • [Name] を [Profit Ticks] に設定します。
    • [Default Value] を [3] に設定します。
    • [Variable Type] を [User Defined] に設定します。

  4. 3ティックの価格を決定するには、[Tick Size] ブロックと [Profit Ticks] ブロックの数値を掛け算する必要があります。
    • [Blocks Panel] 検索欄にて、[mult] をタイプし [Multiply] ブロックをキャンバスにドラッグして、名前を [Profit] に変更します。
    • [Profit Ticks] ブロックと [Tick Size] ブロックは [Profit] ブロックの入力に出力します。

      [Profit] ブロックの出力は、選択した限月の3ティックの数値を示しています。

  5. これでエグジット注文の価格を計算する準備ができました。
    1. [Avg Open Price] ブロックと [Exit Order] ブロックの間に [Add] ブロックを配置し、[Exit Price] に名前を変更します。
    2. [Profit] ブロックと [Avg Open Price] ブロック出力を [Exit Price] ブロックの入力に出力します。

      [Exit Price] ブロックの出力には、2つのブロックの追加の結果は表示されません。[Avg Open Price] ブロックは、アルゴが実行され約定が受信されるまで値を計算できないので、出力には [nan] が表示されます。

    3. [Exit Price] ブロックの出力を [Exit Order] ブロックの [price] 入力ポートに接続します。

これでアルゴは完了し、テストする準備ができました。

完了したアルゴのテスト

これで [Scalper] アルゴをテストして、予期したとおりに動作するかどうかを確認できます。アルゴのテストに関する情報については、このシリーズのエントリ ロジックのテストを参考にしてください。

アルゴをテストするには

  1. アルゴを開始して、最良買で買注文のエントリを発注します。
  2. 約定を受信すると、エグジット売注文が、平均始値より3ティック上に発注されていることを確認します。

  3. アルゴを停止してリセットします。[MD Trader] を使ってポジションを手仕舞いすることもできます。
  4. [Profit Ticks] 変数の値を増加させ、アルゴを開始します。
  5. エグジット注文は、約定を受信した際に、指定の追加ティック数上に離れて発注されていることを確認します。
  6. アルゴを中止します。

結論

この基本的なスカルパー ロジックはこれで終了です。ここから、スカルパー注文ブロックを仮想化させ、[Scalper] アルゴを連続的に実行し、優先順位を維持できます。またストップ注文を追加して、このアルゴがブラケット注文のように動作させることができます。またエントリ ロジックを編集して、[Scalper] アルゴを注文管理アルゴ (OMA) にすることなどもできます。

エントリ ロジックのテスト

本トピックでは、エントリ注文ロジックをテストして、アルゴが希望のエントリ注文を送信するかどうかを確認できます。アルゴのテスト手順にて、以下の内容を実行します。

  • テスト環境を設定します。そしてアルゴの操作を監視できるようにします。
  • デモ取引マーケットでアルゴを実行し、アルゴが注文を正しく発注することを確認します。
  • アルゴを起動する前に、異なった注文枚数を指定することや、アルゴの実行中に枚数を変更することで、ユーザー定義の変数をテストします。

テスト環境の設定

アルゴをテストする際、TT のワークスペースの横に ADL を開いておくことが望ましいです。このワークスペースではデモ取引環境が設定され、[MD Trader] と [Audit Trail] ウィジェットが含まれている必要があります。TT ワークスペースに表示されたアルゴにより発注された注文が表示されます。これで、アルゴが予定どおりに作動していることを確認できます。

テスト環境を設定するには

  1. デモ取引環境で TT ワークスペースを起動して、ADL のアルゴの近くで発注します。
  2. アルゴで指定した既定の限月に対し [MD Trader] ウィジェットを開きます。
  3. [Audit Trail] ウィジェットを開き、アルゴ操作の録画を再生できます。

アルゴの実行

エントリ注文ロジックの最初のテストは、アルゴで指定した既定値で、アルゴがマーケットに正確に注文を発注するかを確認することです。ADL でアルゴを起動して、[MD Trader] にてマーケットに注文を発注するのを観察します。また [Audit Trail] にて記録されているメッセージの確認を探します。

アルゴを実行するには

  1. [ADL] にて、[Instrument] ブロックを選択し、選択した口座が [MD Trader] にて有効な口座に一致しているかどうかを確認します。

  2. ADL メニューバーにて、再生ボタン をクリックしてアルゴを開始します。
  3. アルゴが最良買でエントリ注文を発注したことと、注文が正確な枚数で約定待ちしていることを確認します。

    1. [Entry Order] ブロックの [wrk qty] 出力ポートに、5 (既定の [Entry Order Qty] 値) が表示されます。
    2. [MD Trader] は、5 枚の約定待ち枚数が示されます。
    3. [Audit Trail] には、アルゴが最良買で発注したことが示され、またマーケットが動いた際に、再価格設定されたことを示しています。
  4. ADL メニューバーにて、再生ボタン をクリックしてアルゴを停止してリセットします。

    : アルゴを停止すると、約定待ち注文は自動的に取り消されます。

ユーザー定義変数のテスト

アルゴのテストが完了し、マーケットに正確に注文を発注することを確認できると、アルゴ内のユーザー定義変数も正確に作動するかどうかを確認する必要があります。このテストに関しては、アルゴを開始する前に、[Entry Order Qty] を既定値以外の値に変更します。アルゴの実行中に枚数を変更すると、マーケットでの約定待ち枚数も変更されることを確認します。

ユーザー定義の注文枚数をテストするには

  1. アルゴが停止していることを確認します。必要に応じて 再生ボタン をクリックします。
  2. [Information Panel] (情報パネル) にて、[Variables] タブをクリックして、アルゴにより使用された変数を表示できます。

  3. [Variables] タブにて、[Entry Order Qty] ブロックの [Value] 欄をクリックし、異なった値を入力し、[Apply] をクリックします。すばやく完全約定しないように、大き目の枚数を選択することをお勧めします。この例では 100 を使用します。

  4. ADL メニューバーにて、再生ボタン をクリックしてアルゴを開始します。
  5. アルゴが最良買でエントリ注文を発注したことと、注文が正確な枚数で約定待ちしていることを確認します。

    1. [Entry Order] ブロックの [wrk qty] 出力ポートには 100 が表示されます。
    2. [MD Trader] は、100 枚の約定待ち枚数を示しています。
    3. [Audit Trail] には、アルゴが最良買で発注したことが示されます。
  6. アルゴが実行中の際に、[Entry Order Qty] を低い数値に変更して [Apply] をクリックします。

  7. アルゴが注文枚数を新しい値に変更したことを確認します。

    1. [Entry Order] ブロックの [wrk qty] 出力ポートに、新規の値 (既定の [Entry Order Qty] 値ではない値) が表示されます。
    2. [MD Trader] には、新規の約定待ち枚数が示されます (この場合50)。
  8. 再生ボタン をクリックしてアルゴを停止し、約定待ち注文を取り消します。

アルゴのエントリ注文ロジックのテストをすべて完了できました。これでアルゴを更新して、エントリ注文の約定が発生すると、価格や枚数データを取得することができます。

エントリ ロジックの作成

Scalper (スカルパー) アルゴの最初の作成部分は、エントリ注文を定義することです。アルゴのこの部分は、定義済みの限月の最良買で指定した枚数の買注文を発注します。

注文ブロックを使ったエントリ注文の開始

Order ブロックは、市場に注文を発注します。キャンバスOrder ブロックを配置し、注文の発注に使用します。

  1. [Blocks] パネルから、ADL に Order ブロックをクリック・ドラッグします。

    Add pic

    一度発注すると、[Order] ブロックが黄色に強調表示され、現在選択されているブロックであることが示されます。[Block Properties] パネルにて、強調表示されたブロックのプロパティを表示して編集できます。

  2. [Block Properties] パネルにて、以下のプロパティを指定します。
    • エントリ注文名前を指定して、ブロックを識別しやすいようにします。
    • [Type] を [Limit] (指値) に設定します。
    • [Side] は [Buy] です。
    • [TIF] は [Day] です。

    キャンバスの [Order] ブロックの下に、ブロック名が表示されるのが分かります。

  3. [Information Panel] (情報パネル) の [Problems] (問題) タブ のメッセージは、たった今発注した [Order] ブロックで入力接続が欠落しているのが分かります。ブロックをさらに追加して [Order] ブロックに接続すると、これらのメッセージは消去されます。

Instrument ブロックを使った限月の選択

注文ブロックがあるので、発注したい限月を選択する必要があります。[Instrument] ブロックを使って、使用する銘柄を選択できます。このアルゴにて、CME の期近 e-Mini S&P の既定限月を選択しますが、アルゴを起動する際にユーザーは異なった限月を選択することもできます。

エントリ注文の限月を定義するには

  1. [Blocks] パネルから、[Instrument] ブロックをダブルクリックして、ADL キャンバス内で整理します。

  2. [Block Properties] パネルにて、以下のプロパティを指定します。
    • 限月名前をブロックに指定します。
    • [Instrument] 欄にて、アルゴの既定の限月を指定します。この例では、CME の期近の e-Mini S&P 限月を使用します。
    • [Type] プロパティに対し、[User-defined] を選択すると、ユーザーがアルゴを起動する際に異なった限月を選択できます。
    • SIM (デモ) 環境で [Account] を選択すると以下の内容が含まれます。

      • ログインに割り当てられています。
      • ADL で実行するユーザー アクセス許可。
      • ADL で実行するユーザー アクセス許可。

      Instrument ブロック プロパティ パネル

      選択した限月は、青色の限月出力ポートの横に表示されているのがわかります。

      Instrument ブロック プロパティ パネル

    • エントリ注文に限月を設定するには、Instrument ブロックの出力ポートから、Entry Order ブロックの inst 入力ポートに左マウス ボタンでクリック・ドラッグすることで、Instrument ブロックを Entry Order ブロックに接続します。

      Instrument ブロック プロパティ パネル

      無効な限月に関する最初の問題メッセージは消去され、2つの問題が残されているのが分かります。

Field ブロックを使った注文価格の設定

次に、選択した限月の最良買でエントリ注文の価格を設定します。このアルゴは [Field] ブロックを使って [Instrument] ブロックから限月データを受信し、限月の最良買値を連続して抽出し、[Entry Order] ブロックの [price] ポートに値を提供します。

[Field] ブロックを配置して必要な接続を確立するには:

  1. 検索機能を使って、ブロックの指定と事前生成の処理を単純化できます。[Blocks] パネルの [Search] 欄に、「bid」を入力します。

    パネルのブロックの一覧には、文字列「bid」を含んだプロパティ名をもつブロックのみが含まれます。

  2. [Blocks] パネルから、ADL に Field (bidPrice) ブロックをクリック・ドラッグします。

    [Information Panel] の [Problems] タブに新規の問題が追加されたのが分かります。これは解決する必要があることを示しています。

  3. [Block Properties] パネルにて、以下のプロパティを指定します。
    • ブロック検索の結果に、[Field Name] ドロップダウンが既に選択されているのが分かります。
    • [Name ] に [Best Bid] を設定します。
    • [Lookup Type] が [Best] であることを確認します。

  4. [Edge Finder] を使って簡単にブロックを接続するには、[Shift] キーを長押しして、[Instrument] ブロックから [Field] ブロックへの接続や、また [Field] ブロックから [Order] ブロックの [price] ポートへの接続を暗示した破線が表示されます。

  5. [Shift] キーを押しながら、2つの破線のうち1つを左クリックして接続を確立するか、または点線の1つを右クリックして一度に両方のエッジを作成します。

Number ブロックを使った注文枚数の設定

エントリ注文枚数を定義するには、アルゴは [Number] ブロックを使用します。5 の既定値を設定しますが、ユーザーはアルゴを実行する際に異なった枚数を指定することができます。

[Number] ブロックを配置して必要な接続を確立するには…

  1. [Blocks] パネルの [Search] 欄に、「5」を入力します。

    パネルには、既に 5 が設定された [Number] ブロックが自動的に表示されます。

  2. ADL キャンバスで [Number] ブロックをクリックしてドラッグします。

  3. [Block Properties] パネルにて、以下のプロパティを指定します。
    • ブロック検索の結果に、[Default Value] ドロップダウンが既に選択されているのが分かります。
    • [Name] を [Entry Order Qty] に設定します。
    • ユーザーが 5 の既定値以外に注文枚数を設定できるように、[Variable Type] を [User Defined] に設定します。
    • 希望に応じて、[Max Value] と [Min Value] を使って、不合理な注文枚数をユーザーが間違えて発注しないように設定できます。

  4. [Number] ブロック を [Order] ブロックの [qty] 入力ポートに接続します。

    ブロックを接続した後、問題の内容の最後に取り組むことができたので、[Problems] タブは空白になります。

これで、アルゴのエントリ注文の部分が完成しました。この注文は、Instrument ブロックで定義された限月の最良買で5 枚の注文を発注します。次の手順はアルゴのこの部分をテストします。

約定データの取得

このセクションでは、ロジックを作成して、エントリ注文約定からデータを抽出し、データを作成して実行中の平均始値を計算するのに使用します。平均の始値は後に、Scalper アルゴのエグジット価格を計算するのに使用されます。

Add-PIC

このセクションでは以下の内容を説明しています。

  • 連続メッセージと離散メッセージの違い。
  • ADL の数式エディターの使用。
  • 算術ブロックを使った計算の実行。

ADL のメッセージ連続メッセージと離散メッセージ

ADL のブロック間で渡されたデータはメッセージと呼ばれます。ADL には以下の2つのタイプのメッセージがあります。

  • 連続メッセージ: 特定のデータの連続入力。
  • 離散メッセージ: ある時間の特定の時点で送信された個々のメッセージで、イベントによりトリガーされたもの。フィールドにイベントに関する詳細が保存されています。

これまで、Scapler アルゴは連続メッセージを使用しています。

  • [Instrument] ブロックは限月データの連続フィードを出力します。
  • [Field] ブロックは連続して、選択した限月の最良買値を出力します。
  • [Number] ブロックは 5 の連続出力を提供します。

次に、[Entry Order] ブロックの離散イベント メッセージを使用します。これは 約定出力ポートを通じて放出されるメッセージであり、このブロックにより発注された注文を使って発生した各約定の個々の離散メッセージを出力します。

約定離散メッセージには、約定価格や約定枚数などの約定に関する情報を取得する欄が含まれています。

平均始値の計算

Scalper アルゴは、すべての執行済みエントリ注文の平均始値を計算します。これは後にエグジット価格の計算に使用されます。平均始値を計算するには

  • ポジションのコストであるバリュー アット リスク (VaR) を計算します。
  • すべてのエントリ注文の約定枚数を合計します。
  • 合計約定枚数で VaR を割算し、平均始値を決定します。

VaR の計算

エントリ注文から約定を受信すると、これらの約定の合計は、各約定の枚数で価格を掛け算して計算されます。ValueAccumulator ブロックを使って、各約定にこの計算を実行でき、各結果の実行合計を蓄積します。ブロックは提供された数式を使って新規の値を計算し、離散メッセージがブロックに入力する度に蓄積します。

注文の約定から VaR を計算するには

  1. [Blocks] パネルから、[ValueAccumulator] ブロックを探し、キャンバスで [Entry Order] ブロックの右に配置します。

  2. [Entry Order] ブロックの [Fills] 出力ポートを [ValueAccumulator] ブロックの上部の入力ポートに接続します。

    このエッジが離散メッセージを通過したという視覚的な表示を提供するためエッジは異なって表示されていることがわかります。

  3. [Block Properties] パネルにて、[Name] を [VAR] に設定します。
  4. [Formula] 欄の編集リンクをクリックして、計算で使用するブロックの数式を定義します。

    ブロックの [Formula Editor] が表示されます。

  5. [Formula Builder] にて、数式を作成して約定価格と約定枚数を掛け算し、受信する約定のコストを決定します。

    ブロックに送信された離散メッセージ欄にアクセスするには、使用する値の名前の後に # を入力します。タイプすると、エディターに利用可能なメッセージの欄が表示されます。

    • [#] をタイプしてリストから[fillPrice] を選択し、数式に [fillPrice] 欄を追加します。

    • 掛け算の場合は [*] を入力し、[fillQuantity] 欄を選択して数式を完了します。

    • [Save] (保存) をクリックします。

      [Block Properties] の [Formula] 欄にブロック数式が表示されているのが分かります。

合計約定枚数の追跡

注文から受信したすべての約定の平均価格を決定するには。すべての約定の枚数を追跡する必要があります。VaR を計算するのに使用するのと同様で、[ValueAccumulator] ブロックを使用して、実行中の約定枚数の合計を保持する必要があります。

合計約定済み枚数を追跡するには

  1. 別の [ValueAccumlator] ブロックを [VAR] の下のキャンバスにドラッグし、[Entry Order] 約定出力ポートに接続します。

  2. [Block Properties] パネルにて、[Name] を [Fill Qty] に設定します。
  3. [Formula Editor] を開いて [#] をタイプし、数式に [fillQty] 欄を追加します。

  4. [Save] (保存) をクリックします。

平均始値の計算

最後に、[VAR] ブロックと [Fill Qty] ブロックからの値を使って、平均始値を決定する必要があります。[Divide] ブロックを使ってこの計算を実行します。

平均始値を決定するには

  1. [Blocks] パネルから、キャンバスに [Divide] ブロックをドラッグします。[Average Open Price] に名前を変更します。

  2. [VAR] ブロックの上部の数値出力ポートを [Average Open Price] ブロックの上部の入力ポートに接続します。
  3. [Fill Qty] ブロックの上部の数値出力ポートを [Average Open Price] ブロックの下部の入力ポートに接続します。

ロジックのテスト

アルゴで続行する前に、約定ロジックをテストして、意図したとおりにアルゴが機能していることを確認するようにおすすめします。

ロジックをテストするには、以前のように同じセットアップを使用します。

  1. [Values] タブにて、大きな注文枚数を入力し、各約定がブロック値を適切に更新することを確認できます。
  2. アルゴを実行して、[VAR]、[Fill Qty]、 and [Average Open Price] ブロックの数値出力を監視し、予測したとおりに更新していることを確認します。

  3. アルゴを中止します。

これで約定からデータを取得し、そのデータで計算を実行することを正常に完了できました。これらの値を使って、エグジット注文の価格と枚数を決定することができます。

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.)