コード例 #1
0
        public void Inputs_Setup()
        {
            this.tradingData = new TradingDataContext();
            this.signalQueue = new ObservableQueue <Signal>();

            this.strategyHeader = new StrategyHeader(1, "Break out", "BP12345-RF-01", "RTS-9.13_FT", 10);
            this.tradingData.Get <ICollection <StrategyHeader> >().Add(this.strategyHeader);

            this.barSettings = new BarSettings(this.strategyHeader, "RTS-9.13_FT", 3600, 19);
            this.tradingData.Get <ICollection <BarSettings> >().Add(this.barSettings);

            this.handler =
                new BreakOutOnTick(this.strategyHeader, this.tradingData, this.signalQueue, new NullLogger());

            FillTradingDataWithBars();

            Assert.AreEqual(0, this.signalQueue.Count);
            Assert.IsFalse(this.tradingData.PositionExists(this.strategyHeader));
            Assert.IsFalse(this.tradingData.UnfilledExists(this.strategyHeader));
        }
コード例 #2
0
ファイル: Proboy.cs プロジェクト: w1r2p1/TRx
        static void Main(string[] args)
        {
            LogAssemblyInfo();

            AddStrategySettings();

            StrategiesPlaceStopLossByPointsOnTradeHandlers stopLossOnTradeHandlers =
                new StrategiesPlaceStopLossByPointsOnTradeHandlers(TradingData.Instance,
                                                                   SignalQueue.Instance,
                                                                   DefaultLogger.Instance,
                                                                   AppSettings.GetValue <bool>("MeasureStopFromSignalPrice"));

            StrategiesStopLossByPointsOnTickHandlers stopLossOnTickHandlers =
                new StrategiesStopLossByPointsOnTickHandlers(TradingData.Instance,
                                                             SignalQueue.Instance,
                                                             DefaultLogger.Instance,
                                                             AppSettings.GetValue <bool>("MeasureStopFromSignalPrice"));

            StrategiesPlaceTakeProfitByPointsOnTradeHandlers takeProfitOnTradeHandlers =
                new StrategiesPlaceTakeProfitByPointsOnTradeHandlers(TradingData.Instance,
                                                                     SignalQueue.Instance,
                                                                     DefaultLogger.Instance,
                                                                     AppSettings.GetValue <bool>("MeasureProfitFromSignalPrice"));

            StrategiesTakeProfitByPointsOnTickHandlers takeProfitOnTickHandlers =
                new StrategiesTakeProfitByPointsOnTickHandlers(TradingData.Instance,
                                                               SignalQueue.Instance,
                                                               DefaultLogger.Instance,
                                                               AppSettings.GetValue <bool>("MeasureProfitFromSignalPrice"));

            SmartComHandlers.Instance.Add <_IStClient_DisconnectedEventHandler>(ScalperIsDisconnected);
            SmartComHandlers.Instance.Add <_IStClient_ConnectedEventHandler>(ScalperIsConnected);

            BreakOutOnTick openHandler =
                new BreakOutOnTick(strategyHeader,
                                   TradingData.Instance,
                                   SignalQueue.Instance,
                                   DefaultLogger.Instance);

            UpdateBarsOnTick updateBarsHandler =
                new UpdateBarsOnTick(barSettings,
                                     new TimeTracker(),
                                     TradingData.Instance,
                                     DefaultLogger.Instance);

            AddStrategySubscriptions();

            adapter.Start();

            while (true)
            {
                try
                {
                    string command = Console.ReadLine();

                    if (command == "x")
                    {
                        adapter.Stop();

                        ExportData <Order>(AppSettings.GetValue <bool>("ExportOrdersOnExit"));
                        ExportData <Trade>(AppSettings.GetValue <bool>("ExportTradesOnExit"));

                        break;
                    }

                    if (command == "p")
                    {
                        Console.Clear();

                        Console.WriteLine(String.Format("Реализованный профит и лосс составляет {0} пунктов",
                                                        TradingData.Instance.GetProfitAndLossPoints(strategyHeader)));
                    }

                    if (command == "t")
                    {
                        Console.Clear();

                        foreach (Trade item in TradingData.Instance.Get <IEnumerable <Trade> >())
                        {
                            Console.WriteLine(item.ToString());
                        }
                    }

                    if (command == "b")
                    {
                        Console.Clear();

                        foreach (Bar item in TradingData.Instance.Get <IEnumerable <Bar> >())
                        {
                            Console.WriteLine(item.ToString());
                        }
                    }
                }
                catch (System.Runtime.InteropServices.COMException e)
                {
                    DefaultLogger.Instance.Log(e.Message);

                    adapter.Restart();
                }
            }
        }