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"); } } }
void Clear() { MarketDataList.Clear(); }
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(); }