package jforex.orders2;
import com.dukascopy.api.*;
import com.dukascopy.api.IEngine.OrderCommand;
import com.dukascopy.api.util.DateUtils;
public class OneOrderPlaceBid2 implements IStrategy {
private IConsole console;
private IEngine engine;
private IHistory history;
private IOrder order;
private final String label = "OneOrder";
@Override
public void onStart(IContext context) throws JFException {
engine = context.getEngine();
console = context.getConsole();
history = context.getHistory();
context.setSubscribedInstruments(java.util.Collections.singleton(Instrument.EURUSD), true);
console.getOut().println("起動");
long goodTillTime = history.getLastTick(Instrument.EURUSD).getTime() + 10 * 1000;
double price = history.getLastTick(Instrument.EURUSD).getBid() - 5 * Instrument.EURUSD.getPipValue();
order = engine.submitOrder(label, Instrument.EURUSD, OrderCommand.PLACE_BID, 0.001,
price, 0, 0, 0, goodTillTime);
}
@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 {
if(message.getType() == IMessage.Type.ORDER_SUBMIT_OK && message.getOrder() == this.order){
order.setGoodTillTime(history.getLastTick(Instrument.EURUSD).getTime() + 2500);
}
if(message.getOrder() != null){
console.getOut().println(DateUtils.format(message.getCreationTime()) + " " +message);
}
}
@Override
public void onAccount(IAccount account) throws JFException {}
@Override
public void onStop() throws JFException {
if (engine.getOrder(label) != null)
engine.getOrder(label).close();
}
}