トップ  >  リファレンス  >  サンプルソースコード  >  SDKクライアント  >  NewsStrategyNoTrades.java
NewsStrategyNoTrades.java

注意事項:
サンプルソースコードには実際にオーダーを発注するものがあります。
サンプルソースコードのストラテジーを起動する場合は、必ずデモ口座で行ってください。



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

import java.text.SimpleDateFormat;
import java.util.List;
import java.util.TimeZone;

import com.dukascopy.api.*;
import com.dukascopy.api.ICalendarMessage.Detail;

public class NewsStrategyNoTrades implements IStrategy {
    private IConsole console;
    @SuppressWarnings("serial")
    private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") {{setTimeZone(TimeZone.getTimeZone("GMT"));}};

    public void onStart(IContext context) throws JFException {
        this.console = context.getConsole();
    }

    public void onAccount(IAccount account) throws JFException {
    }

    public void onMessage(IMessage message) throws JFException {  
      
      // ニュースとカレンダーメッセージのみ処理します
      if(!(message.getType().equals(IMessage.Type.CALENDAR) || message.getType().equals(IMessage.Type.NEWS))){
        return;
      }
      
      INewsMessage news = ((INewsMessage) message);      
      print("---------------------------");
      //ニュースの特定情報をログ出力
      if (message.getType().equals(IMessage.Type.NEWS)) {
        print(String.format("[News message] %s at %s", news.getHeader(), sdf.format(news.getCreationTime())));
      }

      //カレンダーの特定情報をログ出力
        if (message.getType().equals(IMessage.Type.CALENDAR)) {
          ICalendarMessage cal = ((ICalendarMessage) message);
          List<Detail> calDetails = cal.getDetails();
          String detailStr = "[Calendar details]";
          for (Detail d : calDetails){
            detailStr += String.format("\n    Id:%s, Description:%s, Expected:%s, Actual:%s, Delta:%s, Previous:%s ", 
                d.getId(), d.getDescription(), d.getExpected(), d.getActual(), d.getDelta(), d.getPrevious());
          }
          print(String.format("[Calendar message] %s, %s, %s, %s, %s, %s, %s ", 
              cal.getContent(), cal.getCountry(), cal.getCompanyURL(),
              cal.getEventCode(), cal.getOrganisation(), cal.getPeriod(), sdf.format(cal.getEventDate())));
          if (calDetails.size() > 0){
            print(detailStr);
          }
        } 
        
        //共通メタ情報をログ出力
        print(String.format("[meta info] Stock Indicies: %s. Regions: %s. Market sectors: %s. Currencies: %s", 
              news.getStockIndicies(), news.getGeoRegions(), 
              news.getMarketSectors(), news.getCurrencies()));

    }
    
    public void onStop() throws JFException {    }
    public void onTick(Instrument instrument, ITick tick) throws JFException {    }
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {}    
    private void print(Object o){
      console.getOut().println(o);
    }
}




スポンサーリンク

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


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


Top

inserted by FC2 system