public void Setup()
        {
            this.signalQueue = new ObservableQueue <Signal>();
            this.tradingData = new TradingDataContext();

            this.lLeg = new List <StrategyHeader>();
            this.rLeg = new List <StrategyHeader>();

            this.lStrategy = new StrategyHeader(1, "Left leg strategyHeader", "BP12345-RF-01", "SBRF-3.14_FT", 10);
            this.tradingData.Get <ICollection <StrategyHeader> >().Add(lStrategy);
            this.lLeg.Add(this.lStrategy);

            this.rStrategy = new StrategyHeader(2, "Right leg strategyHeader", "BP12345-RF-01", "SBPR-3.13_FT", 11);
            this.tradingData.Get <ICollection <StrategyHeader> >().Add(rStrategy);
            this.rLeg.Add(this.rStrategy);

            this.arbitrageSettings = new ArbitrageSettings(1, this.lLeg, this.rLeg, new SpreadSettings(1.12, 1.25, 1.01));
            this.tradingData.Get <ICollection <ArbitrageSettings> >().Add(this.arbitrageSettings);

            this.lStrategyVolumeChangeStep = new StrategyVolumeChangeStep(this.lStrategy, 2);
            this.tradingData.Get <ICollection <StrategyVolumeChangeStep> >().Add(this.lStrategyVolumeChangeStep);

            ArbitrageOpenPositionOnSpreadValue handler =
                new ArbitrageOpenPositionOnSpreadValue(this.arbitrageSettings, this.lStrategy, this.tradingData, this.signalQueue, new NullLogger());
        }
        public CalculateSpreadOnOrderBookChange(ArbitrageSettings arbitrageSettings, OrderBookContext orderBook, IDataContext tradingData, ILogger logger)
        {
            this.arbitrageSettings = arbitrageSettings;
            this.orderBook         = orderBook;
            this.tradingData       = tradingData;
            this.logger            = logger;

            this.orderBook.OnQuotesUpdate += new SymbolDataUpdatedNotification(CalculateSpreadOnQuotesUpdate);
        }
Example #3
0
        public ArbitrageOpenPositionOnSpreadValue(ArbitrageSettings arbitrageSettings, StrategyHeader strategyHeader, IDataContext tradingData, ObservableQueue <Signal> signalQueue, ILogger logger)
            : base(tradingData.Get <ObservableCollection <SpreadValue> >())
        {
            this.arbitrageSetings = arbitrageSettings;
            this.strategyHeader   = strategyHeader;
            this.tradingData      = tradingData;
            this.signalQueue      = signalQueue;
            this.logger           = logger;

            this.isLeftLegStrategy = arbitrageSettings.LeftLeg.Any(s => s.Id == strategyHeader.Id);
        }
Example #4
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);
        }
Example #5
0
        public void ArbitrageSettings_default_constructor_test()
        {
            ArbitrageSettings arbitrageSettings = new ArbitrageSettings();

            Assert.IsInstanceOfType(arbitrageSettings, typeof(IIdentified));
            Assert.IsTrue(arbitrageSettings.Id > 0);
            Assert.IsNotNull(arbitrageSettings.LeftLeg);
            Assert.IsNotNull(arbitrageSettings.RightLeg);
            Assert.AreEqual(0, arbitrageSettings.LeftLeg.Count());
            Assert.AreEqual(0, arbitrageSettings.RightLeg.Count());
            Assert.IsNotNull(arbitrageSettings.SpreadSettings);
            Assert.AreEqual(0, arbitrageSettings.SpreadSettings.FairPrice);
            Assert.AreEqual(0, arbitrageSettings.SpreadSettings.BuyBeforePrice);
            Assert.AreEqual(0, arbitrageSettings.SpreadSettings.SellAfterPrice);
        }
Example #6
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());
        }