まくまくトレードステーションノート
EasyLanguage: 自動売買ストラテジから注文を出す
2017-10-08
トレードステーションで自動売買ストラテジーを動作させると、アプリケーションを立ち上げておくだけで自動的にトレードを行ってくれるようになります。ここでは、ストラテジー内からどのように注文を出すかを説明します。

EasyLanguage での注文は、売買の種類 (Order Verbs) とそのタイミング (Order Actions)、発注株数を組み合わせることによって指定します。

オーダーの種類 (Order Verbs)

Order Verbs は買いで入るのか、売りで入るのかを指定します。 BuySellShort はロングポジションとショートポジションの生成のために使用し、SellBuyToCover は現在のポジションを決済するために使用します。

Buy
ロングポジション(買い玉)を追加します。 すでにショートポジションがある場合は、相殺されるようにそのポジションが先に決済されます(両建てにはなりません)。
SellShort (Sell Short)
ショートポジション(売り玉)を追加します。 すでにロングポジションがある場合は、相殺されるようにそのポジションが先に決済されます(両建てにはなりません)。
Sell
ロングポジション(買い玉)を決済します。 ノーポジ (flat) 状態であれば、このオーダーは無視されます(このオーダーによってショートポジションを取ることはありません)。
BuyToCover (Buy To Cover)
ショートポジション(売り玉)を決済します。 ノーポジ (flat) 状態であれば、このオーダーは無視されます(このオーダーによってロングポジションを取ることはありません)。

オーダーのタイミング (Order Actions)

オーダーの種類 (Order Verbs) の後ろには、そのオーダーをどのタイミングで実行するかを示す Order Actions を指定します。 Order Actions には次のようなものを指定できます。

next bar at market
次のバーの開始時に注文を実行します。
next bar stop
逆指値 (stop price) に達したとき、次のバーの開始時に注文を実行します。
next bar limit
指値(limit price) に達したとき、次のバーの開始時に注文を実行します。
this bar on close
現在のバーが終了するときに注文を実行します。主にバックテストで使用されます。

atonof などの単語は、EasyLanguage では意味を持たないスキップ後として扱われるので、省略して記述することもできます(英語の文章のように読めるようにするのが慣例のようです)。

発注株数の指定

何株の注文を出すかの指定は、オーダーの種類(Buy など)の後ろ、あるいはオーダーのタイミング(next bar など)の後ろで、XXX shares という形で指定します。

Buy 100 shares next bar at market;  // 次のバーの開始時に 100 株購入
Buy next bar 100 shares at market;  // 同上

オーダーのサンプル

下記は、Order Verbs と Order Actions の組み合わせによる注文実行の例です。

Buy next bar at market;        // 次のバーの開始時に、買いで入る
SellShort next bar at market;  // 次のバーの開始時に、売りで入る
SellShort next bar 50 limit;   // 次のバーの開始時に、指値に達していたら 50 株の売りで入る
Sell next bar 50 stop;         // 次のバーの開始時に、逆指値に達していたら 50 株の買い玉を決済する
BuyToCover this bar on close;  // 現在のバーの終了時に、売り玉を決済する
2017-10-08