GetBarsExample.java

注意事項:
サンプルソースコードには実際にオーダーを発注するものがあります。
サンプルソースコードのストラテジーを起動する場合は、注意して下さい。



// Copyright (c) 2009 Dukascopy (Suisse) SA. All Rights Reserved.
package jforex.data;

import java.util.List;

import com.dukascopy.api.*;

public class HistoryBarsSynch implements IStrategy {
    
    private IHistory history;
    private IConsole console;

    @Override
    public void onStart(IContext context) throws JFException {
        history = context.getHistory();
        console = context.getConsole(); 
        context.setSubscribedInstruments(java.util.Collections.singleton(Instrument.EURUSD), true);
        
        getBarByShift();
        getBarsByTimeInterval();
        getBarsByCandleInterval();

    }
    
    // シフト指定して取得
    private void getBarByShift() throws JFException{        
        int shift = 1;

        IBar prevBar = history.getBar(
                                      Instrument.EURUSD,  // 通貨ペア
                                      Period.ONE_HOUR,    // 時間軸
                                      OfferSide.BID,      // オファーサイド
                                      shift               // シフト
                                     );

        console.getOut().println("シフト指定(1つ前のバーのデータ):" + prevBar);        
    }
      
    // タイムインターバル指定して取得
    private void getBarsByTimeInterval() throws JFException{    
        long prevBarTime = history.getPreviousBarStart(Period.ONE_HOUR, history.getLastTick(Instrument.EURUSD).getTime());
        long startTime   = history.getTimeForNBarsBack(Period.ONE_HOUR, prevBarTime, 5);  

        List<IBar> bars = history.getBars(
                                           Instrument.EURUSD,  // 通貨ペア
                                           Period.ONE_HOUR,    // 時間軸
                                           OfferSide.BID,      // オファーサイド
                                           startTime,          // 取得開始時刻
                                           prevBarTime         // 取得終了時刻
                                          );

        int last = bars.size() - 1;
        console.getOut().format(
                "タイムインターバル指定:1つ前のバーの終値=%.5f; 5つ前のバーの終値=%.5f", 
                bars.get(last).getClose(), bars.get(0).getClose()
        ).println();
    }
    
    // キャンドルインターバル指定して取得
    private void getBarsByCandleInterval() throws JFException{    
        long prevBarTime = history.getPreviousBarStart(Period.ONE_HOUR, history.getLastTick(Instrument.EURUSD).getTime());

        List<IBar> bars = history.getBars(
                                           Instrument.EURUSD,  // 通貨ペア
                                           Period.ONE_HOUR,    // 時間軸
                                           OfferSide.BID,      // オファーサイド
                                           Filter.NO_FILTER,   // フィルター
                                           5,                  // 基準時刻から取得開始するバーオフセット(前方向)
                                           prevBarTime,        // 基準時刻
                                           0                   // 基準時刻から取得終了するバーオフセット(後方向)
                                          );

        int last = bars.size() - 1;
        console.getOut().format(
                "キャンドルインターバル指定:1つ前のバーの終値=%.5f; 5つ前のバーの終値=%.5f", 
                bars.get(last).getClose(), bars.get(0).getClose()
        ).println();
    }


    @Override
    public void onTick(Instrument instrument, ITick tick) throws JFException {}

    @Override
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {}

    @Override
    public void onMessage(IMessage message) throws JFException {}

    @Override
    public void onAccount(IAccount account) throws JFException {}

    @Override
    public void onStop() throws JFException {}

}






スポンサーリンク

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


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


Top

inserted by FC2 system