MultiSimpleFeedTest.java

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



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

import java.util.Arrays;
import java.util.HashSet;

import com.dukascopy.api.Configurable;
import com.dukascopy.api.Filter;
import com.dukascopy.api.IAccount;
import com.dukascopy.api.IBar;
import com.dukascopy.api.IConsole;
import com.dukascopy.api.IContext;
import com.dukascopy.api.IMessage;
import com.dukascopy.api.IStrategy;
import com.dukascopy.api.ITick;
import com.dukascopy.api.ITimedData;
import com.dukascopy.api.Instrument;
import com.dukascopy.api.JFException;
import com.dukascopy.api.OfferSide;
import com.dukascopy.api.Period;
import com.dukascopy.api.PriceRange;
import com.dukascopy.api.feed.IFeedDescriptor;
import com.dukascopy.api.feed.IFeedListener;
import com.dukascopy.api.feed.util.RangeBarFeedDescriptor;
import com.dukascopy.api.feed.util.TimePeriodAggregationFeedDescriptor;

public class MultiSimpleFeedTest implements IStrategy, IFeedListener {

    private IConsole console;

    // 左側のIFeedDescriptorに実装したフィードタイプが適用されます。この場合はレンジバーになります。
    @Configurable("レンジバーフィード") 
    public RangeBarFeedDescriptor rangeBarFeedDescriptor = new RangeBarFeedDescriptor(
                                                                Instrument.EURUSD,
                                                                PriceRange.TWO_PIPS,
                                                                OfferSide.ASK
                                                            );

    @Configurable("他フィード")
    public IFeedDescriptor anyFeedDescriptor = new TimePeriodAggregationFeedDescriptor(
                                                     Instrument.EURUSD,
                                                     Period.TEN_SECS,
                                                     OfferSide.ASK,
                                                     Filter.NO_FILTER
                                                 );

    @Override
    public void onStart(IContext context) throws JFException {
        console = context.getConsole();
        context.setSubscribedInstruments( new HashSet<Instrument>(
                                               Arrays.asList(
                                                   rangeBarFeedDescriptor.getInstrument(),
                                                   anyFeedDescriptor.getInstrument()
                                               )
                                           ),
                                           true
        );

        context.subscribeToFeed(rangeBarFeedDescriptor, this);
        context.subscribeToFeed(anyFeedDescriptor, this);
    }

    @Override
    public void onFeedData(IFeedDescriptor feedDescriptor, ITimedData feedData) {
        if (feedDescriptor.equals(this.rangeBarFeedDescriptor)) {
            console.getOut().format("RANGE BAR completed of the feed: %s descriptor: %s",
                                    feedData,
                                    feedDescriptor
            ).println();

        } else if (feedDescriptor.equals(this.anyFeedDescriptor)) {
            console.getInfo().format("%s element completed of the feed: %s descriptor: %s",
                                     feedDescriptor.getDataType(),
                                     feedData,
                                     feedDescriptor
            ).println();
        }
    }

    @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 {    }
    @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