Dukascopy Support Board
http://www.dukascopy.com/swiss/english/forex/jforex/forum/

getOfflineTimeDomain call returns null
http://www.dukascopy.com/swiss/english/forex/jforex/forum/viewtopic.php?f=16&t=57411
Page 1 of 1

Author:  danividal [ Wed 12 Aug, 2020, 03:56 ]
Post subject:  getOfflineTimeDomain call returns null

Hi

I run the example delivered by the API support team in other subjects in this forum in order to test the getOfflineTimeDomain call and I always get "null" as a response. The old, deprecated call to this method works ok with previous API versions. What has changed? Currently running API 3.6.14

Test code:

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

public class Offline_Test_Strategy implements IStrategy {
private IEngine engine;
private IConsole console;
private IHistory history;
private IContext context;
private IIndicators indicators;
private IUserInterface userInterface;

@Configurable("Instrument")
public Instrument myInstrument = Instrument.EURUSD;

@Configurable("Period")
public Period myPeriod = Period.ONE_MIN;

private ITimeDomain curWeekend;

public void onStart(IContext context) throws JFException {
this.engine = context.getEngine();
this.console = context.getConsole();
this.history = context.getHistory();
this.context = context;
this.indicators = context.getIndicators();
this.userInterface = context.getUserInterface();

curWeekend = context.getDataService().getOfflineTimeDomain(myInstrument);
console.getOut().println("Current weekend: " + curWeekend);
}

public void onAccount(IAccount account) throws JFException {
}

public void onMessage(IMessage message) throws JFException {
}

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 {
if (!instrument.equals(myInstrument) || !period.equals(myPeriod)) {
return;
}

if (askBar.getTime() >= curWeekend.getStart() && askBar.getTime() < curWeekend.getEnd()) {
console.getOut().println("Skip weekend bar: " + askBar);
return;
}

if (askBar.getTime() >= curWeekend.getEnd()) {
curWeekend = context.getDataService().getOfflineTimeDomain(myInstrument);
console.getOut().println("Current weekend: " + curWeekend);
}

console.getOut().println("Processing bar: " + askBar);
}
}

Author:  API Support [ Wed 09 Sep, 2020, 10:09 ]
Post subject:  Re: getOfflineTimeDomain call returns null

Greetings.

Strategy must subscribe on instrument to load trading breaks schedule.

context.setSubscribedInstruments(Collections.singleton(myInstrument), true);
curWeekend = context.getDataService().getOfflineTimeDomain(myInstrument);

Regards.

  Page 1 of 1