protected ContextChart() { Name = "UNDEFINED"; Symbol = "UNDEFINED"; DataSourceName = "UNDEFINED"; ScaleInterval = new BarScaleInterval(); DataRange = new BarDataRange(500); //ChartBarSpacing = 6; ChartStreaming = false; ShowRangeBar = false; }
public void AbsorbFrom(ContextChart found) { if (found == null) return; //KEEP_CLONE_UNDEFINED this.Name = found.Name; this.Symbol = found.Symbol; this.DataSourceName = found.DataSourceName; this.ScaleInterval = found.ScaleInterval.Clone(); this.DataRange = found.DataRange.Clone(); //this.ChartBarSpacing = found.ChartBarSpacing; this.ChartStreaming = found.ChartStreaming; this.ShowRangeBar = found.ShowRangeBar; }
public Bars RescaleBarsAndRegister(NotOnChartBarsKey symbolScaleInterval) { DataSource ds = Assembler.InstanceInitialized.RepositoryJsonDataSource.DataSourceFind(symbolScaleInterval.DataSourceName); BarDataRange range = new BarDataRange(this.ScriptExecutor.Bars.BarFirst.DateTimeOpen, this.ScriptExecutor.Bars.BarLast.DateTimeOpen); Bars bars = null; try { Bars barsAll = ds.BarsLoadAndCompress(symbolScaleInterval.Symbol, symbolScaleInterval.BarScaleInterval); Bars bar = barsAll.SelectRange(range); } catch (Exception ex) { Debugger.Break(); } try { this.Registry.Add(symbolScaleInterval, bars); } catch (Exception ex) { Debugger.Break(); } return bars; }
public Bars SelectRange(BarDataRange dataRangeRq) { DateTime startDate = DateTime.MinValue; DateTime endDate = DateTime.MaxValue; dataRangeRq.FillStartEndDate(out startDate, out endDate); if (startDate == DateTime.MinValue && endDate == DateTime.MaxValue && dataRangeRq.RecentBars == 0) { return(this); } string start = (startDate == DateTime.MinValue) ? "MIN" : startDate.ToString("dd-MMM-yyyy"); string end = (endDate == DateTime.MaxValue) ? "MAX" : endDate.ToString("dd-MMM-yyyy"); Bars ret = this.CloneNoBars(this.ReasonToExist + " [" + dataRangeRq.ToString() + "]", this.ScaleInterval); for (int i = 0; i < this.Count; i++) { if (dataRangeRq.RecentBars > 0 && i >= dataRangeRq.RecentBars) { break; } Bar barAdding = this[i]; bool skipThisBar = false; if (startDate > DateTime.MinValue && barAdding.DateTimeOpen < startDate) { skipThisBar = true; } if (endDate < DateTime.MaxValue && barAdding.DateTimeOpen > endDate) { skipThisBar = true; } if (skipThisBar) { continue; } ret.BarAppendBindStatic(barAdding.CloneDetached()); } return(ret); }
public BarDataRangeEventArgs(BarDataRange barDataRange) { this.BarDataRange = barDataRange.Clone(); }
internal void ChartRangeBar_AnyValueChanged(object sender, RangeArgs<DateTime> e) { BarDataRange newRange = new BarDataRange(e.ValueMin.Date, e.ValueMax.Date); try { this.chartFormManager.PopulateSelectorsFromCurrentChartOrScriptContextLoadBarsSaveBacktestIfStrategy("ChartRangeBar_AnyValueChanged"); } catch (Exception ex) { Assembler.PopupException("ChartRangeBar_AnyValueChanged", ex); } }
public Bars SelectRange(BarDataRange dataRangeRq) { DateTime startDate = DateTime.MinValue; DateTime endDate = DateTime.MaxValue; dataRangeRq.FillStartEndDate(out startDate, out endDate); if (startDate == DateTime.MinValue && endDate == DateTime.MaxValue && dataRangeRq.RecentBars == 0) return this; string start = (startDate == DateTime.MinValue) ? "MIN" : startDate.ToString("dd-MMM-yyyy"); string end = (endDate == DateTime.MaxValue) ? "MAX" : endDate.ToString("dd-MMM-yyyy"); Bars ret = this.CloneNoBars(this.ReasonToExist + " [" + dataRangeRq.ToString() + "]", this.ScaleInterval); for (int i=0; i<this.Count; i++) { if (dataRangeRq.RecentBars > 0 && i >= dataRangeRq.RecentBars) break; Bar barAdding = this[i]; bool skipThisBar = false; if (startDate > DateTime.MinValue && barAdding.DateTimeOpen < startDate) skipThisBar = true; if (endDate < DateTime.MaxValue && barAdding.DateTimeOpen > endDate) skipThisBar = true; if (skipThisBar) continue; ret.BarAppendBindStatic(barAdding.CloneDetached()); } return ret; }