• Demo счет NinjaTrader, регистрируется в брокерской компании NinjaTrader Brokerage . NinjaTrader™, LLC
    Ссылка на демо счет NinjaTrader
    Фид на соединении Continuum/CQG.
    Для справки: Continuum - это брэнд CQG, и ни чем они не отличаются друг от друга.
    Обратите внимание, что в настоящее время CQG не высылает логин и пароль на электронные адреса от mail.ru, bk.ru, list.ru, inbox.ru, поэтому необходимо повторить регистрацию с электронного адреса от другого домейна (yahoo, gmail, и тд).
  • NinjaTrader с зарекомендовавшим себя брокерским сервисом предоставляет наилучшие условия для фьючерсной торговли, включая:
    • Низкие комиссии: Экономьте на торгах через низкие и понятные комиссии
    • Низкая маржа: Всего $50 для микро контрактов
    • Низкие минимумы: Откройте счет от $400
    • Бесплатная платформа: Включает весь необходимый функционал для торговли в реале
  • Уважаемые посетители форума!
    При регистрации на форуме отправляется письмо подтверждения на ваш почтовый ящик, если письмо не пришло, просьба проверить папку "спам" вашего почтового ящика, возможно письмо попало туда.
  • Сколько я реально плачу комиссии?
    Подробнее по ссылке

NinjaTrader 8 Куда правильно поставить функцию OnRender

alexmar12

New Member
NinjaTrader
#1
Помогите пожалуйста

Хочу поставить функцию
Код:
protected override void OnRender(ChartControl chartControl, ChartScale chartScale)
        {
              if (ChartBars != null)
              {
                // loop through all of the viewable range of the chart
                base.OnRender(chartControl, chartScale);
                
                RendCumTypicalVolume = 0;
                RendCumVolume = 0;
                for (int barIndex = ChartBars.FromIndex; barIndex <= ChartBars.ToIndex; barIndex++)
                   {
                    if(Bars.IsFirstBarOfSessionByIndex(barIndex))
                    {
                        break;
                    }
                    else
                    {
                        RendCumVolume = RendCumVolume + Bars.GetVolume(barIndex);
                        RendCumTypicalVolume = RendCumTypicalVolume + (Bars.GetVolume(barIndex) * ((Bars.GetHigh(barIndex) + Bars.GetLow(barIndex) + Bars.GetClose(barIndex)) / 3));
                    }
                }
                
                RendVwap = RendCumTypicalVolume/RendCumVolume;
              }
        }
Куда его правильнее поставить?
Перед protected override void OnBarUpdate()

Мне нужно чтоб в функции OnBarUpdate() уже были готовые результаты
 

alexmar12

New Member
NinjaTrader
#3
А как же мне сделать чтоб эта функция срабатывала перед OnBarUpdate()
А то как я ни делаю у меня OnBarUpdate() срабатывает сначала а потом OnRender
В результате я не могу отфильтровывать данные
 

NT8

Well-Known Member
NinjaTrader
#4
Эти функции вызываются независимо друг от друга.

Можно вызвать принудительную перерисовку (OnRender)
ChartControl.InvalidateVisual();
 
Вверх Снизу