トップ  >  リファレンス  >  ストラテジーAPI  >  ヒストリカルデータ  >  オーダーヒストリー
オーダーヒストリー


オーダーヒストリーはオーダー状態がCLOSEDのオーダーの事です。
オーダーヒストリーは同期と非同期の両方で取得する事が出来ます。
同期/非同期ロードの違いについてはヒストリーバーのページを参照して下さい。


同期取得

オーダーヒストリー情報はgetOrdersHistoryメソッドで取得する事が出来ます。




直近の10バーのオーダーヒストリー取得

以下例は、最後に作成されたバーから過去10本のバーのオーダーヒストリーを取得します。

IBar bar10 = history.getBar(Instrument.EURUSD, Period.ONE_HOUR, OfferSide.ASK, 10);
IBar bar1  = history.getBar(Instrument.EURUSD, Period.ONE_HOUR, OfferSide.ASK, 0);

List<IOrder> previousOrders = history.getOrdersHistory(
                                                        instrument,
                                                        bar10.getTime(),
                                                        bar1.getTime()
);

for (IOrder order : previousOrders) {
    console.getOut().println("オーダー情報: " + order);
}



先週分のオーダーヒストリー取得

以下例は、先週作成されたオーダーヒストリーを取得します。

package jforex.orders;

import java.util.List;
import com.dukascopy.api.*;

public class OrderHistoryLastWeek implements IStrategy {

    private IConsole console;
   
    @Override
    public void onStart(IContext context) throws JFException {
        console = context.getConsole();

        long time = System.currentTimeMillis();

        List<IOrder> orders = context.getHistory().getOrdersHistory(
                                                                    Instrument.EURUSD,
                                                                    time - Period.WEEKLY.getInterval(),
                                                                    time
        );

        if (orders != null) {
            for (IOrder order : orders) {
                console.getOut().println("オーダーヒストリー: " + order );
            }
        }
    }

    public void onTick(Instrument instrument, ITick tick) throws JFException {}
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {}
    public void onMessage(IMessage message) throws JFException {}
    public void onAccount(IAccount account) throws JFException {}
    public void onStop() throws JFException {}

}





非同期オーダーヒストリー取得

readOrdersHistoryメソッドは非同期でオーダー情報を取得します。
以下例は、過去6ヶ月の全通貨ペアの全オーダーヒストリーを取得します。


long to   = System.currentTimeMillis();
long from = to - 6 * Period.MONTHLY.getInterval();

console.getOut().println(sdf.format(from) + " 〜 " + sdf.format(to) + 
                        "期間のオーダーヒストリーをロード中。"
                        );

for (final Instrument instrument : instruments) {
   
    history.readOrdersHistory(
          instrument,
          from,
          to,
          new LoadingOrdersListener() {

              @Override
              public void newOrder(Instrument instrument, IOrder orderData) {
                  List<IOrder> histOrderList = histOrderMap.get(instrument);
                  if (histOrderList == null) {
                      histOrderList = new ArrayList<IOrder>();
                      histOrderMap.put(instrument, histOrderList);
                  }
                  histOrderList.add(orderData);

                  }
          },

          new LoadingProgressListener() {

              @Override
              public void dataLoaded(long start, long end, long currentPosition, String information) {
              }

              @Override
              public void loadingFinished(boolean allDataLoaded, long start, long end, long currentPosition) {
                  if (allDataLoaded) {
                      loadingFinishedInstruments.add(instrument);
                      console.getInfo().println(instrument + "のオーダーヒストリーのロード完了。" );
                  }
              }

              @Override
              public boolean stopJob() {
                  return false;
              }
          }
    );

}



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



スポンサーリンク

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


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


Top

inserted by FC2 system