Beispiel #1
0
        protected override void Init()
        {
            _symbolGraph = new BarMarketGraph(this)
            {
                Name = "Bar market graph"
            };
            _pathLogic = new PathLogic <CurrencyNode>(1000);
            foreach (var symbol in Symbols)
            {
                if (symbol.IsNull || !symbol.IsTradeAllowed)
                {
                    continue;
                }

                var barSymbol  = new BarSymbol(symbol, this);
                var commission = symbol.CalculateCommission(Account.Type, false);
                if (double.IsNaN(commission))
                {
                    commission = 0;
                }
                _symbolGraph.AddEdge(symbol.BaseCurrency, symbol.CounterCurrency, barSymbol, commission);
                _symbolGraph.AddEdge(symbol.CounterCurrency, symbol.BaseCurrency, barSymbol, commission);
            }

            _currencyId      = _symbolGraph[Currency]?.Id ?? -1;
            _currencyListIds = new List <int>();
            foreach (var currency in CurrencyList.ParseCsvLine())
            {
                var node = _symbolGraph[currency];
                if (node != null)
                {
                    _currencyListIds.Add(node.Id);
                }
            }
        }