Ошибка отображения сделок на графике

Значок открытия позиции отрисовывается на одну свечку раньше

  1. RealZuy

    Регистрация:
    18.03.20
    Сообщения:
    8
    Был на сайте:
    15.04.21

    График - счечки Volume. Проблема в том, что для некоторых позиций крестик открытия позииции ставится на предыдущую свечку. Актуально только для графиков Volume, на стандартном свечном графике такой проблемы я не вижу.

    На скриншоте тестера видно открытые позиции, нужную подчернул красным. Соответствующую ей свечку выделил стрелками на чарте.

    В самой позиции и свечке  дата/время корректны - 13:17:39 (в логе позиций и  данных по свечке это видно).

    У самой свечки дата/время тоже корректны (свечка выделена на чарте, ее параметры отображаются в левом верхнем углу), на скриншоте не отобразилось перекрестие почему-то, но выделена правильная свечка.

     

     

    RealZuy
    08.04.2020 20:23
    #1
  2. RealZuy

    Регистрация:
    18.03.20
    Сообщения:
    8
    Был на сайте:
    15.04.21

    Разобрался вчера. Проблема актуальна для графиков, свечки которых не привязаны к фиксированному промежутку времени.

    Проблема в функции ChartCandlePainter.MagicSearch() в финальной проверке

    if ((_timeFrameIsActivate &&candles[i].TimeStart.Add(_timeFrameSpan) > time))

    {return i;}

    _timeFrameSpan  по факту в классе заполняется значением даже у графиков типа Volume.

    Решение использовал такое  - протащил в класс значение CandleCreateMethodType и последнюю проверку обогатил условием 

    if (_CandleCreateMethodType == CandleCreateMethodType.Simple && ....

    Более правильная альтернатива - корректно заполнять _timeFrameSpan, но на него что-то много по коду всего завязано, возможно полезут хвосты.

    Вопрос решен.

    RealZuy
    09.04.2020 14:17
    #2