public void SingleTimeframeSignalAdvisor_GeneratesBuySignal() { //Arrange var feeder = new ManualPriceFeeder(new MockFeedProvider()); var forexPair = new TickerSymbol("EURUSD"); var timeFrame = new TimeframeUnit(TimeframeOption.M1); var feedService = new PriceFeedService(feeder); var signalTimeframe = feedService.Setup(forexPair, timeFrame, OHLCPriceOption.All); var signalAdvisor = new SingleTimeframeSignalAdvisor(signalTimeframe); signalAdvisor.Subscribe(feedService); feedService.Start(); var position = PositionOption.None; signalAdvisor.Buy += delegate(int strength) { position = PositionOption.Buy; }; signalAdvisor.Sell += delegate(int strength) { position = PositionOption.Sell; }; signalAdvisor.Close += delegate() { position = PositionOption.None; }; //Act feeder.MinutePriceAction(signalTimeframe, new PriceBar(DateTime.Now.Ticks, 1, 2, 3, 11)); //Assert Assert.AreEqual(PositionOption.Buy, position); Assert.AreEqual(signalAdvisor.Position, PositionOption.Buy); Assert.AreEqual(100, signalAdvisor.PositionStrength); }
public static PriceFeedService MockManualPriceFeedService() { var mockFeedProvider = MockObjectFactory.MockFeedProvider(); var manualFeed = new ManualPriceFeeder(mockFeedProvider); return(new PriceFeedService(manualFeed)); }