/// <summary> /// построить дивергенции /// </summary> private void BuildDivers(MultyTimeframeIndexSettings src, Dictionary <int, List <DiverMarker> > signs) { // получить диверы var divers = src.DiverType == IndicatorDiver.DivergenceType.Классические ? FindDivergencePointsClassic(src) : FindDivergencePointsQuasi(src); // добавить их в словарь foreach (var diver in divers) { // пересчитать индекс свечки var index = diver.end; if (src.seriesDest is StockSeries) { var time = ((StockSeries)src.seriesDest).GetCandleOpenTimeByIndex(index); index = owner.StockSeries.GetIndexByCandleOpen(time); } // создать для свечки список маркеров или добавить готовый var marker = new DiverMarker(src.InverseDivergency ? -diver.sign : diver.sign, src.TimeframeAndSymbol); List <DiverMarker> markers; signs.TryGetValue(index, out markers); if (markers == null) { markers = new List <DiverMarker> { marker }; signs.Add(index, markers); } else { markers.Add(marker); } } }
/// <summary> /// построить дивергенции /// </summary> private void BuildDivers(MultyTimeframeIndexSettings src, Dictionary<int, List<DiverMarker>> signs) { // получить диверы var divers = src.DiverType == IndicatorDiver.DivergenceType.Классические ? FindDivergencePointsClassic(src) : FindDivergencePointsQuasi(src); // добавить их в словарь foreach (var diver in divers) { // пересчитать индекс свечки var index = diver.end; if (src.seriesDest is StockSeries) { var time = ((StockSeries) src.seriesDest).GetCandleOpenTimeByIndex(index); index = owner.StockSeries.GetIndexByCandleOpen(time); } // создать для свечки список маркеров или добавить готовый var marker = new DiverMarker(src.InverseDivergency ? -diver.sign : diver.sign, src.TimeframeAndSymbol); List<DiverMarker> markers; signs.TryGetValue(index, out markers); if (markers == null) { markers = new List<DiverMarker> { marker }; signs.Add(index, markers); } else markers.Add(marker); } }