コード例 #1
0
        public SortedPosList Clone()
        {
            SortedPosList s = new SortedPosList();

            PositionList.ForEach(s.Add);
            return(s);
        }
コード例 #2
0
ファイル: Portfolio.cs プロジェクト: lynxliu/Backtesting
 public void ProcessMarketData(List <IMarketData> data)
 {
     PositionList.ForEach(v => v.ProcessMarketData(data));
     if (PositionList.Count > 0)
     {
         LastMarketDataTime = PositionList.Max(v => v.DataTime);
     }
 }
コード例 #3
0
ファイル: Portfolio.cs プロジェクト: lynxliu/Backtesting
        public Dictionary <string, double> GetWeightList()
        {
            var wl = new Dictionary <string, double>();

            if (PositionCapital.Number == 0)
            {
                return(wl);
            }
            PositionList.ForEach(v =>
            {
                wl.Add(v.InstrumentTicker, v.CurrentValue.Number / PositionCapital.Number);
            });
            return(wl);
        }
コード例 #4
0
ファイル: Portfolio.cs プロジェクト: lynxliu/Backtesting
        public Dictionary <IInstrument, double> GetWeight()
        {
            var totle = new Money()
            {
                FxCode = CurrentCurrency
            };

            PositionList.ForEach(v => { totle += v.CurrentValue; });
            var d = new Dictionary <IInstrument, double>();

            PositionList.ForEach(v =>
            {
                d.Add(new Instrument()
                {
                    Ticker = v.InstrumentTicker, Name = v.InstrumentName
                }, v.CurrentValue / totle);
            });
            return(d);
        }
コード例 #5
0
ファイル: Portfolio.cs プロジェクト: lynxliu/Backtesting
 public void PrepareWork()
 {
     PositionList.ForEach(v => v.TradeTrace.Clear());
 }