エントリ ロジックの作成
[Scalper] (スカルパー) アルゴの最初の作成部分は、エントリ注文を定義することです。アルゴのこの部分は、定義済みの限月の最良買で指定した枚数の買注文を発注します。
注文ブロックを使ったエントリ注文の開始
[Order] ブロックは、マーケットに注文を発注します。[Canvas] で [Order] ブロックを配置し、エントリ注文を発注するのに使用します。
- [Blocks] パネルから、ADL キャンバスに [Order] ブロックをクリックしてドラッグします。 一度発注すると、[Order] ブロックが黄色に強調表示され、現在選択されているブロックであることが示されます。[Block Properties] パネルにて、強調表示されたブロックのプロパティを表示して編集できます。
- [Block Properties] パネルにて、以下のプロパティを指定します。
- [Entry Order] の名前を指定し、ブロックを識別し易くできます。
- [Type] に [Limit] を設定します。
- [Side] に [Buy] を設定します。
- [TIF] に [Day] を設定します。
[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 環境にて次の口座を選択します。
- ログインに割り当てられている口座。
- ADL で実行可能なユーザーアクセス許可。
- ADL の実行可能なユーザーアクセス許可。
- エントリ注文に限月を設定するには、[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] ドロップダウンに 5 が既に選択されているのが分かります。
- [Name] を [Entry Order Qty] に設定します。
- ユーザーが 5 の既定値以外に注文枚数を設定できるように、[Variable Type] を [User Defined] に設定します。
- 希望に応じて、[Max Value] と [Min Value] を使って、不合理な注文枚数をユーザーが間違えて発注しないように設定できます。
- [Number] ブロック を [Order] ブロックの [ qty] 入力ポートに接続します。ブロックを接続した後、問題の内容の最後に取り組むことができたので、[Problems] タブは空白になります。
- [Shift] キーを押しながら、点線をクリックして接続を確立します。
これで、[Instrument] ブロックで定義された限月の最良買値で5枚の注文を発注する、アルゴのエントリ注文部分を作成できました。次の手順はアルゴのこの部分のテストです。