最初のアルゴ作成
エントリ ロジックの作成
Scalper (スカルパー) アルゴの最初の作成部分は、エントリ注文を定義することです。アルゴのこの部分は、定義済みの限月の最良買で指定した枚数の買注文を発注します。
注文ブロックを使ったエントリ注文の開始
Order ブロックは、市場に注文を発注します。キャンバスに Order ブロックを配置し、注文の発注に使用します。
- [Blocks] パネルから、ADL に Order ブロックをクリック・ドラッグします。
一度発注すると、[Order] ブロックが黄色に強調表示され、現在選択されているブロックであることが示されます。[Block Properties] パネルにて、強調表示されたブロックのプロパティを表示して編集できます。
- [Block Properties] パネルにて、以下のプロパティを指定します。
- エントリ注文の名前を指定して、ブロックを識別しやすいようにします。
- [Type] を [Limit] (指値) に設定します。
- [Side] は [Buy] です。
- [TIF] は [Day] です。
キャンバスの [Order] ブロックの下に、ブロック名が表示されるのが分かります。
[Information Panel] (情報パネル) の [Problems] (問題) タブ のメッセージは、たった今発注した [Order] ブロックで入力接続が欠落しているのが分かります。ブロックをさらに追加して [Order] ブロックに接続すると、これらのメッセージは消去されます。
Instrument ブロックを使った限月の選択
注文ブロックがあるので、発注したい限月を選択する必要があります。[Instrument] ブロックを使って、使用する銘柄を選択できます。このアルゴにて、CME の期近 e-Mini S&P の既定限月を選択しますが、アルゴを起動する際にユーザーは異なった限月を選択することもできます。
エントリ注文の限月を定義するには
- [Blocks] パネルから、[Instrument] ブロックをダブルクリックして、ADL キャンバス内で整理します。
- [Block Properties] パネルにて、以下のプロパティを指定します。
- 限月の名前をブロックに指定します。
- [Instrument] 欄にて、アルゴの既定の限月を指定します。この例では、CME の期近の e-Mini S&P 限月を使用します。
- [Type] プロパティに対し、[User-defined] を選択すると、ユーザーがアルゴを起動する際に異なった限月を選択できます。
- SIM (デモ) 環境で [Account] を選択すると以下の内容が含まれます。
- ログインに割り当てられています。
- ADL で実行するユーザー アクセス許可。
- ADL で実行するユーザー アクセス許可。
選択した限月は、青色の限月出力ポートの横に表示されているのがわかります。
- エントリ注文に限月を設定するには、Instrument ブロックの出力ポートから、Entry Order ブロックの inst 入力ポートに左マウス ボタンでクリック・ドラッグすることで、Instrument ブロックを Entry Order ブロックに接続します。 無効な限月に関する最初の問題メッセージは消去され、2つの問題が残されているのが分かります。
Field ブロックを使った注文価格の設定
次に、選択した限月の最良買でエントリ注文の価格を設定します。このアルゴは [Field] ブロックを使って [Instrument] ブロックから限月データを受信し、限月の最良買値を連続して抽出し、[Entry Order] ブロックの [price] ポートに値を提供します。
[Field] ブロックを配置して必要な接続を確立するには:
- 検索機能を使って、ブロックの指定と事前生成の処理を単純化できます。[Blocks] パネルの [Search] 欄に、「bid」を入力します。パネルのブロックの一覧には、文字列「bid」を含んだプロパティ名をもつブロックのみが含まれます。
- [Blocks] パネルから、ADL に Field (bidPrice) ブロックをクリック・ドラッグします。[Information Panel] の [Problems] タブに新規の問題が追加されたのが分かります。これは解決する必要があることを示しています。
- [Block Properties] パネルにて、以下のプロパティを指定します。
- ブロック検索の結果に、[Field Name] ドロップダウンが既に選択されているのが分かります。
- [Name ] に [Best Bid] を設定します。
- [Lookup Type] が [Best] であることを確認します。
- [Edge Finder] を使って簡単にブロックを接続するには、[Shift] キーを長押しして、[Instrument] ブロックから [Field] ブロックへの接続や、また [Field] ブロックから [Order] ブロックの [price] ポートへの接続を暗示した破線が表示されます。
- [Shift] キーを押しながら、2つの破線のうち1つを左クリックして接続を確立するか、または点線の1つを右クリックして一度に両方のエッジを作成します。
Number ブロックを使った注文枚数の設定
エントリ注文枚数を定義するには、アルゴは [Number] ブロックを使用します。5 の既定値を設定しますが、ユーザーはアルゴを実行する際に異なった枚数を指定することができます。
[Number] ブロックを配置して必要な接続を確立するには...
- [Blocks] パネルの [Search] 欄に、「5」を入力します。パネルには、既に 5 が設定された [Number] ブロックが自動的に表示されます。
- ADL キャンバスで [Number] ブロックをクリックしてドラッグします。
- [Block Properties] パネルにて、以下のプロパティを指定します。
- ブロック検索の結果に、[Default Value] ドロップダウンが既に選択されているのが分かります。
- [Name] を [Entry Order Qty] に設定します。
- ユーザーが 5 の既定値以外に注文枚数を設定できるように、[Variable Type] を [User Defined] に設定します。
- 希望に応じて、[Max Value] と [Min Value] を使って、不合理な注文枚数をユーザーが間違えて発注しないように設定できます。
- [Number] ブロック を [Order] ブロックの [qty] 入力ポートに接続します。ブロックを接続した後、問題の内容の最後に取り組むことができたので、[Problems] タブは空白になります。
- [シフト] キーを押しながら、直線をクリックして接続を行います。
これで、アルゴのエントリ注文の部分が完成しました。この注文は、Instrument ブロックで定義された限月の最良買で5 枚の注文を発注します。次の手順はアルゴのこの部分をテストします。