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

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



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

import java.util.ArrayList;
import java.util.List;

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

/**
 このストラテジーは、このストラテジーによる新規オーダーを特定のリストに追加し、
そのオーダーがクローズされたりキャンセルされたらリストからオーダーを削除します。

 このストラテジーは全てのオーダー変更のログ出力もします。
このストラテジーによる変更か、それ以外による変更か否か判断する事が出来ます。
 */
public class MaintainOrderList implements IStrategy {    
    
    private IEngine engine;
    private IConsole console;
    private List<IOrder> myOrders = new ArrayList<IOrder>();
    
    @Override
    public void onStart(IContext context) throws JFException {
        engine = context.getEngine();
        console = context.getConsole();
        context.setSubscribedInstruments(java.util.Collections.singleton(Instrument.EURUSD), true);
        IOrder order = engine.submitOrder("myOrder", Instrument.EURUSD, OrderCommand.BUY, 0.001);
        myOrders.add(order);
    }
    
    @Override
    public void onMessage(IMessage message) throws JFException {
        IOrder order = message.getOrder();
        if(order == null){
            return;
        }
        if(!myOrders.contains(order)){
            // 当ストラテジー以外によるオーダー用のログ出力
            console.getOut().println(message);
            List<IOrder> otherOrders = new ArrayList<IOrder>(engine.getOrders());
            otherOrders.removeAll(myOrders);
            console.getOut().println("このストラテジー以外によるオーダー: " + otherOrders);
        } else {
            // 当ストラテジーによるオーダー用のログ出力
            console.getWarn().println(message);
            console.getWarn().println("このストラテジーによるオーダー: " + myOrders);
            if(order.getState() == IOrder.State.CLOSED || order.getState() == IOrder.State.CANCELED){
                myOrders.remove(order);
            }
        }     
    }

    @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 onAccount(IAccount account) throws JFException {}

    @Override
    public void onStop() throws JFException {}

}







スポンサーリンク

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


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


Top

inserted by FC2 system