当サイトは、アフィリエイト広告を利用しています

JForexプログラミング入門その8-成行注文と条件付き注文

JForexプログラミング入門

今回は、JForex APIで成り行き注文と指し値注文や逆指値注文等の条件付き注文を行う方法を解説します。

注文を行う時はIEngineインターフェースのsubmitOrderを使用しますが、その際注文の種類を「IEngine.OrderCommand」で指定します。

Market Order(成行注文)

Market Order(成行注文)は現在提示されている価格でオーダーを行う注文方法です。

成り行き注文を行うには、IEngineインターフェースの「submitOrder」を使用します。

IOrder submitOrder(String label,
Instrument instrument,
IEngine.OrderCommand orderCommand,
double amount)
throws JFException

ドル円1万通貨を買い成行注文する場合

ドル円1万通貨を売り成行注文する場合

上の記述方法はデフォルトで5pipsのスリッページが適用されます。

スリッページを指定した成行注文

スリッページを自分で指定して成行注文を行うには以下の「submitOrder」を使用します。

この場合引数「price」に0を指定します。

IOrder submitOrder(String label,
Instrument instrument,
IEngine.OrderCommand orderCommand,
double amount,
double price,
double slippage)
throws JFException

スリッページ2でドル円1万通貨を買い成行注文する場合

Conditional Order(条件付き注文)

ストラテジーとして使用出来るConditional Order(条件付き注文)には以下の3種類があります。

  • Stop Order
  • Limit Order
  • Market if Touch Order (MIT)

条件付き注文を行うにはIEngineインターフェースの「submitOrder」を使用しますが、引数の「orderCommand」がそれぞれ異なります。

Stop Order(逆指値注文)

BUYSTOP

現在のBIDプライスよりも上に指定したストッププライスにBIDプライスが到達したら買い注文を出す場合は、「orderCommand」に「BUYSTOP_BYBID」を指定します。

オーダーを出した瞬間のビッドプライスがストッププライスより大きかった場合、コマンドがBUYLIMITオーダーに変更されpriceには最新のBidプライスが設定されます。

ASKプライスを利用してBUYSTOPオーダーを出す場合は、「orderCommand」に「BUYSTOP」を指定します。

SELLSTOP

現在のASKプライスよりも下に指定したストッププライスにASKプライスが到達したら売り注文を出す場合は、「orderCommand」に「SELLSTOP_BYASK」を指定します。

オーダーを出した瞬間のASKプライスがストッププライスより小さかった場合、コマンドがSELLLIMITオーダーに変更されpriceには最新のAskプライスが設定されます。

BIDプライスを利用してSELLSTOPオーダーを出す場合は、「orderCommand」に「SELLSTOP」を指定します。

Limit Order(指値注文)

BUYLIMIT

ASKプライスを用いて指値買い注文を行う場合は、「orderCommand」に「BUYLIMIT」を指定します。

ASKプライスが指定したリミットプライス以下になると注文が執行されます。

orderCommand」に「BUYLIMIT_BYBID」を指定すれば、BIDプライスを用いて指値買い注文を行うこともできます。

SELLLIMIT

BIDプライスを用いて指値売り注文を行う場合は、「orderCommand」に「SELLLIMIT」を指定します。

BIDプライスが指定したリミットプライス以上になると注文が執行されます。

orderCommand」に「SELLLIMIT_BYASK」を指定すれば、ASKプライスを用いて指値売り注文を行うこともできます。

JForexでは、BIDプライスを用いた指値買い注文(BUYLIMIT_BYBID)及びASKプライスを用いた指値売り注文(SELLLIMIT_BYASK)は手動での注文には使用できません。ストラテジーのみの注文方法なので注意してください。

 Market if Touch Order (MIT)

スリッページを指定して指値注文を行うことをMIT注文と呼ぶようです。

スリッページを指定した指値買い注文を行う場合は、以下のように記述します。

スリッページを指定した指値売り注文は、「orderCommand」に「SELLLIMIT」を指定します。

コメント