Esempio n. 1
0
        public void SetUp()
        {
            leftLeg  = new List <StrategyHeader>();
            rightLeg = new List <StrategyHeader>();

            this.leftLeg.Add(new StrategyHeader(1, "Left leg strategyHeader", "BP12345-RF-01", "RTS-12.13_FT", 10));
            this.rightLeg.Add(new StrategyHeader(2, "Right leg strategyHeader", "BP12345-RF-01", "Si-12.13_FT", 50));

            spreadSettings = new SpreadSettings(1.10, 1.11, 0.9);

            arbitrageSettings = new ArbitrageSettings(1, leftLeg, rightLeg, spreadSettings);
        }
Esempio n. 2
0
        public void SpreadSettings_constructor_test()
        {
            double fairPrice = 1.3589;
            double sellAfter = 1.4358;
            double buyBefore = 1.1355;

            SpreadSettings spreadSettings =
                new SpreadSettings(fairPrice, sellAfter, buyBefore);

            Assert.AreEqual(fairPrice, spreadSettings.FairPrice);
            Assert.AreEqual(sellAfter, spreadSettings.SellAfterPrice);
            Assert.AreEqual(buyBefore, spreadSettings.BuyBeforePrice);
        }
Esempio n. 3
0
        public void Configuration_SpreadSettingsFactory_returns_model_test()
        {
            string prefix = "SSTR";

            IGenericFactory <SpreadSettings> factory =
                new SpreadSettingsFactory(prefix);

            SpreadSettings sSettings = factory.Make();

            Assert.IsNotNull(sSettings);
            Assert.AreEqual(1.12, sSettings.FairPrice);
            Assert.AreEqual(1.28, sSettings.SellAfterPrice);
            Assert.AreEqual(0.91, sSettings.BuyBeforePrice);
        }
Esempio n. 4
0
 public BuySpreadOnQuoteChange(OrderBookContext quotesProvider,
                               IEnumerable <StrategyHeader> leftLeg,
                               IEnumerable <StrategyHeader> rightLeg,
                               SpreadSettings spreadSettings,
                               IDataContext dataContext,
                               ObservableQueue <Signal> signalQueue,
                               ILogger logger)
 {
     this.quotesProvider = quotesProvider;
     this.leftLeg        = leftLeg;
     this.rightLeg       = rightLeg;
     this.spreadSettings = spreadSettings;
     this.tradingData    = dataContext;
     this.signalQueue    = signalQueue;
     this.logger         = logger;
     this.quotesProvider.OnQuotesUpdate += new SymbolDataUpdatedNotification(quotesProvider_OnQuotesUpdate);
 }
Esempio n. 5
0
        public void Setup()
        {
            this.leftLeg  = new List <StrategyHeader>();
            this.rigthLeg = new List <StrategyHeader>();

            this.leftStrategy  = new StrategyHeader(1, "Left leg", "BP12345-RF-01", "AB", 10);
            this.rightStrategy = new StrategyHeader(2, "Right leg", "BP1235-RF-01", "BA", 10);
            this.leftLeg.Add(this.leftStrategy);
            this.rigthLeg.Add(this.rightStrategy);

            this.spreadSettings    = new SpreadSettings();
            this.arbitrageSettings = new ArbitrageSettings(1, this.leftLeg, this.rigthLeg, this.spreadSettings);

            this.orderBook   = new OrderBookContext();
            this.tradingData = new TradingDataContext();

            CalculateSpreadOnOrderBookChange handler =
                new CalculateSpreadOnOrderBookChange(this.arbitrageSettings, this.orderBook, this.tradingData, new NullLogger());
        }
        public void Setup()
        {
            this.qProvider      = new OrderBookContext();
            this.spreadSettings = new SpreadSettings(1.35, 1.48, 1.18);

            this.leftLeg = new List <StrategyHeader>();
            this.leftLeg.Add(this.tradingData.Get <IEnumerable <StrategyHeader> >().Single(s => s.Id == 1));

            this.rightLeg = new List <StrategyHeader>();
            this.rightLeg.Add(this.tradingData.Get <IEnumerable <StrategyHeader> >().Single(s => s.Id == 2));
            this.rightLeg.Add(this.tradingData.Get <IEnumerable <StrategyHeader> >().Single(s => s.Id == 3));

            CoverSpreadOnQuoteChange handler =
                new CoverSpreadOnQuoteChange(this.qProvider,
                                             this.leftLeg,
                                             this.rightLeg,
                                             this.spreadSettings,
                                             this.tradingData,
                                             this.signalQueue,
                                             new NullLogger());
        }