トップ  >  リファレンス  >  ストラテジーAPI  >  オーダーとポジション  >  クローズオーダー
クローズオーダー


クローズオーダーはIOrder.closeメソッドかIEngine.closeOrdersメソッドのいずれかを使います。

・IOrder.close(全取引数量のクローズ要求を送信する場合)
engine.getOrder("OrderLabel").close();


・IOrder.close(取引数量を指定してクローズ要求(部分クローズ)を送信する場合)
double amount = 0.001;

engine.getOrder("OrderLabel").close(
     amount    // 取引数量
);


・IOrder.close(価格とスリップページを指定してクローズ要求(部分クローズ)を送信する場合)
double amount = 0.001;
double lastBid = history.getLastTick(Instrument.EURUSD).getBid();
double closeprice = lastBid - 100 * Instrument.EURUSD.getPipValue();
double slip   = 5;

engine.getOrder("OrderLabel").close(
     amount,     // 取引数量
     closeprice, // 価格
     slip        // スリップページ
);


・IEngine.closeOrder(複数のポジションをクローズする)
engine.closeOrders(
    engine.getOrder("order1"),  // オーダー情報1
    engine.getOrder("order2"),  // オーダー情報2
    engine.getOrder("order3")   // オーダー情報3
);


クローズオーダー要求の送信は1秒間に1回までと制限されています。
IOrder.getClosePrice() と IOrder.getCloseTime() は最後にクローズした時間と価格を示します、
これは部分クローズでクローズオーダーを行った場合、最後にクローズしたデータについてのみ取得出来ます。

通常は、以下例のようにオーダー送信する前にオーダー状態をチェックする事を推奨します。

if( order.getState() == IOrder.State.FILLED || order.getState() == IOrder.State.OPENED ){
    order.close();
} else {
    console.getOut().println( order.getState() + "状態ではクローズオーダーは出来ません。" );
}







サンプル(クローズオーダーとオーダー取消しのワークフロー)

このサンプルではクローズオーダーとオーダー取消しのやり方と、オーダー状態とメッセージのワークフローにどのように従うかを理解出来ます。
また、全てのアクティブオーダーをクローズ/取消しする方法も分かります。


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



サンプル(部分クローズ)





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



サンプル(価格指定の部分クローズ)





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



サンプル(タイムインターバルによるクローズ)





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



スポンサーリンク

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


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


Top

inserted by FC2 system