public void LoadCurrentInstrumentMarketData(DateTime start, DateTime end)
 {
     if (CurrentInstrument == null)
     {
         return;
     }
     else
     {
         MarketDataList.Clear();
         var ml = CurrentDataSource.GetDataList(new List <IInstrument>()
         {
             CurrentInstrument
         }, start, end, Grade);
         ml.ForEach(v => MarketDataList.Add(v));
     }
 }
 public void TransToCSV(string dirPath)
 {
     if (!string.IsNullOrEmpty(dirPath) && Directory.Exists(dirPath))
     {
         var fileList = Directory.EnumerateFiles(dirPath);
         foreach (var f in fileList)
         {
             if (f.EndsWith("lc5"))
             {
                 MarketDataList.Clear();
                 ReadData(f);
                 WriteData(f + ".csv");
             }
         }
     }
 }
        public void LoadMarketData(DateTime start, DateTime end, Func <IDataSource> ds, IInstrument instrument)
        {
            if (ds == null || ds() == null)
            {
                MessageBox.Show("please select valid data source");
                return;
            }

            var dl = ds().GetDataList(new List <IInstrument> {
                instrument
            }, start, end, MarketDataGrade.FiveMinutes);

            SourceList.Clear();
            dl.ForEach(v => SourceList.Add(v));
            var ml = MarketData.SummaryMarketDataList(dl, CurrentPeriod);

            MarketDataList.Clear();
            ml.ForEach(v => MarketDataList.Add(v));
            OnPropertyChanged("IsLoaded");
        }
 public void TransToDB(string dirPath, string connectionStr)
 {
     if (!string.IsNullOrEmpty(dirPath) && Directory.Exists(dirPath))
     {
         var fileList = Directory.EnumerateFiles(dirPath);
         var count    = fileList.Count();
         var i        = 0;
         foreach (var f in fileList)
         {
             var d = DateTime.Now;
             if (f.EndsWith(".lc5"))
             {
                 MarketDataList.Clear();
                 ReadData(f);
                 WriteToDB(connectionStr);
             }
             i++;
             Console.WriteLine("Finish " + (i / Convert.ToDouble(count) * 100d).ToString() + "%," + (DateTime.Now - d).TotalSeconds.ToString() + " s");
         }
     }
 }
Exemple #5
0
 void Clear()
 {
     MarketDataList.Clear();
 }
Exemple #6
0
        public override void PrepareWork()
        {
            TargetPortfolio.PrepareWork();
            MarketDataList.Clear();
            CurrentDataSource.DataList.Clear();
            CurrentValueList.Clear();
            StandardValueList.Clear();
            OrderList.Clear();

            DateTime st = TestStartTime;

            if (TestStartTime > AnalyseStartTime)
            {
                st = AnalyseStartTime;
            }
            CurrentDataSource.CacheStartTime = st;
            CurrentDataSource.CacheEndTime   = TestEndTime;

            TestCurrentTime = TestStartTime;
            analyseTime     = MarketData.GetNextTime(TestCurrentTime, AnalyseGrade);

            _MaxLost = new Money()
            {
                FxCode = Pnl.FxCode, Number = 0
            };
            if (UseFirstMarketDataInit)
            {
                var fdl = new List <IMarketData>();
                InstrumentList.ForEach(v =>
                {
                    var d = CurrentDataSource.GetFirstData(v, TestStartTime, TestEndTime, Grade);
                    if (d != null)
                    {
                        fdl.Add(d);
                    }
                });
                TargetPortfolio.ProcessMarketData(fdl);
                TargetPortfolio.PositionList.ForEach(v =>
                {
                    var d = fdl.FirstOrDefault(m => m.InstrumentTicker == v.InstrumentTicker);
                    if (d != null)
                    {
                        v.Cost = d.Close;
                    }
                });
            }
            if (IsUnlimited)
            {
                TargetPortfolio.IsUnlimited = true;
            }
            standardPortfolio = TargetPortfolio.Clone() as IPortfolio;
            testStartValue    = TargetPortfolio.CurrentValue;
            CurrentDataSource.PrepareWork();
            CurrentTradeGate.PrepareWork();
            foreach (var condition in ConditionList)
            {
                condition.PrepareWork();
                condition.GetInstrumentList = () => { return(InstrumentList); };
                condition.AnalyseDataSource = CurrentDataSource;
            }

            TestStrategy.CurrentPortfolio = TargetPortfolio;
            TestStrategy.PrepareWork();
            RiskPolicy.PrepareWork();
        }