Отрисовка стопов без вертикальных линий
Добрый день! Скажите пожалуйста как можно отрисовать стопы без вертикальных линий? Дело в том что когда позиция переворачивается то линия стопа переносится на противоположную сторону, и этот перенос соединяется неразрывной линией.
Может в рендере нужно использовать какие то классы реализующие IChartElement или в свойство Style устанавливать какое значение?
Индикатор такой:
Code
public class StopLossIndicator : BaseIndicator
{
protected override IIndicatorValue OnProcess(IIndicatorValue input)
{
var value = input.GetValue<decimal>();
IsFormed = value != 0;
return new DecimalIndicatorValue(this, value);
}
}
Рендер такой:
Codepublic class StopLossPainter : BaseChartIndicatorPainter
{
[Display(Name = "Стоп-Лосс", Description = "Область графика для отрисовки стопа")]
public ChartLineElement StopLossLine { get; }
public StopLossPainter()
{
StopLossLine = new ChartLineElement()
{
Style = ChartIndicatorDrawStyles.Line, StrokeThickness = 2, Color = Colors.Red
};
AddChildElement(StopLossLine);
}
protected override bool OnDraw()
{
var ind = (StopLossIndicator)Indicator;
var result = false;
result |= DrawValues(ind, StopLossLine);
return result;
}
}
Отрисовка как:
Code
.....
StopLoss = new StopLossIndicator();
.....
private void OnCandleSeriesProcessing(CandleSeries candleSeries, Candle candle)
{
var chartDrawData = new ChartDrawData();
var chartDrawDataItem = chartDrawData.Group(candle.OpenTime);
chartDrawDataItem.Add(ChartCandleElement, candle);
var dataStop = StopLoss.Process(StopPriсe, candle.State == CandleStates.Finished);
chartDrawDataItem.Add(StopLossElement, dataStop);
Chart.Draw(chartDrawData);
}