トップ  >  リファレンス  >  ストラテジーAPI  >  オーダーとポジション  >  条件付きオーダー
条件付きオーダー


ストラテジーでは、以下の3種類の条件付きオーダーの一つを使用する事が出来ます。
  • ストップオーダー
  • リミットオーダー
  • MITオーダー(Market if Touch Order)

上記のオーダーは全て同じIEngine.submitOrderメソッドで設定しますが、IEngine.OrderCommandの異なるオーダーコマンドを使用して送信されます。

ストップオーダー

submitOrderメソッドを用いて買いストップオーダー設定を行う事が出来ます。
引数にBUYSTOP_BYBIDコマンドを指定します。
現在のBid価格がストップオーダー価格以上の場合に約定されます。

engine.submitOrder(
                    "OrderLabel",                // オーダーラベル
                    Instrument.EURUSD,           // 通貨ペア
                    OrderCommand.BUYSTOP_BYBID,  // オーダーコマンド
                    0.001,                       // 取引数量[分解能:100万通貨]
                    price                        // 価格
                   );


注意:ストップロスの設定価格が最後に受信したBid価格よりも低い場合は、オーダーコマンドはBUYLIMITに変更され、価格設定は最後に受信したBid価格に変更されます。

SELLSTOPオーダーコマンドでは、Bid価格での売りストップオーダーになります。
SELLSTOP_BYASKオーダーコマンドでは、Ask価格での売りストップオーダーになります。
Ask価格での買いストップオーダーにするには、オーダーコマンドにBUYSTOPを指定します。


engine.submitOrder(
                    "OrderLabel",          // オーダーラベル
                    Instrument.EURUSD,     // 通貨ペア
                    OrderCommand.BUYSTOP,  // オーダーコマンド
                    0.001,                 // 取引数量[分解能:100万通貨]
                    price                  // 価格
                   );


注意:SELLSTOP_BYASKオーダーで設定した価格が、最後に受信したAsk価格よりも高い場合は、オーダーコマンドはSELLLIMITに変更され価格設定は最後に受信したAsk価格に変更されます。


以下の例は、現在のAsk価格よりも2pips上に買いストップオーダーを設定します。


double lastAsk = history.getLastTick(Instrument.EURUSD).getAsk();
double price   = lastAsk + Instrument.EURUSD.getPipValue() * 2;

engine.submitOrder(
                    "BuyStopOrder",        // オーダーラベル
                    Instrument.EURUSD,     // 通貨ペア
                    OrderCommand.BUYSTOP,  // オーダーコマンド
                    0.001,                 // 取引数量[分解能:100万通貨]
                    price                  // 価格
                   );




サンプルソースコード:ConditionalOrder.java







リミットオーダー

submitOrderメソッド(BUYLIMITオーダーコマンド)を用いて、Ask価格での買いリミットオーダーを設定する事が出来ます。
現在のAsk価格が設定したリミット価格以下の時に約定されます。



engine.submitOrder(
                    "OrderLabel",           // オーダーラベル
                    Instrument.EURUSD,      // 通貨ペア
                    OrderCommand.BUYLIMIT,  // オーダーコマンド
                    0.001,                  // 取引数量[分解能:100万通貨]
                    price                   // 価格
                   );


SELLLIMIT_BYASKオーダーコマンドでは、Ask価格での売りリミットオーダーになります。

注意:JForexプラットフォームでは手動でAsk価格での売りリミットオーダーと、Bid価格での買いリミットオーダーを行う事は出来ません。
BUYLIMIT_BYBIDオーダーコマンドはストラテジーでのみ使用可能です。




engine.submitOrder(
                    "OrderLabel",                 // オーダーラベル
                    Instrument.EURUSD,            // 通貨ペア
                    OrderCommand.BUYLIMIT_BYBID,  // オーダーコマンド
                    0.001,                        // 取引数量[分解能:100万通貨]
                    price                         // 価格
                   );


SELLLIMITオーダーコマンドはBid価格での売りリミットオーダー用にreservedされています。







MITオーダー(Market if Touch Order)

スリップページ付きのリミットオーダーを指定した場合、MITオーダーになります。
以下は、買いのMITオーダー設定の例です。




int slippage = 5;
engine.submitOrder(
                    "OrderLabel",                 // オーダーラベル
                    Instrument.EURUSD,            // 通貨ペア
                    OrderCommand.BUYLIMIT_BYBID,  // オーダーコマンド
                    0.001,                        // 取引数量[分解能:100万通貨]
                    price,                        // 価格
                    slippage                      // スリップページ
                   );


スリップページ付きのSELLLIMITオーダーコマンドでは、売りMITオーダーになります。




スポンサーリンク

スポンサーリンク
検索
リファレンスツリー


Copyright ©2016 JForexAPIで自動売買させ隊! All Rights Reserved.


Top

inserted by FC2 system