トップ  >  リファレンス  >  サンプルソースコード  >  ストラテジーAPI  >  OneOrderPlaceBid2.java
OneOrderPlaceBid2.java

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



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

import com.dukascopy.api.*;
import com.dukascopy.api.IEngine.OrderCommand;
import com.dukascopy.api.util.DateUtils;


/**
 ストラテジー起動時にPLACE_BID指値オーダーを作成し、オーダー送信後直ぐに指値有効期限を変更します。
 */
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("起動");
        
        // 指値有効期限を10秒後に設定
        long goodTillTime = history.getLastTick(Instrument.EURUSD).getTime() + 10 * 1000; 
        // 最後に受信したBid価格の5pips下にPLACE_BID指値オーダー
        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){
            // 指値有効期限を、オーダー作成から2.5秒後に設定
            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();

    }

}






スポンサーリンク

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


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


Top

inserted by FC2 system