Пользовательские символы. Ошибки, баги, вопросы, предложения. - страница 41

 
Aleksandr Slavskii #:

О как, сработало!!! 

Я в в шоке. столько времени убил. Флаги тоже пробовал менять, но согда копировал тики  COPY_TICKS_ALL, так как там были лишние.

Сейчас при копировании тиков  COPY_TICKS_TRAD, сделал флаги равными нулю и всё заработало!!!


Ну спасибо за наводку. Просто огромное, преогромное спасибо!!!

Отлично! Пожалуйста)
 

Завтра, на открытом рынке ещё проверю.

А то как показывает практика, при работе с тиками, есть  разница между открытым рынком и закрытым.

Ну а сейчас можно идти спать счастливым)))

 
Aleksandr Slavskii #:

Флаги тоже пробовал менять

Всегда флаги задаю самостоятельно.
  static int Correct( MqlTick &Ticks[] )
  {
    int Res = 0;
    const int Size = ::ArraySize(Ticks);

    if (Size)
    {
      Ticks[0].flags = TICK_FLAG_BID | TICK_FLAG_ASK;

      for (int i = 1; _CS(i < Size); i++)
      {
        Ticks[i].flags = ((Ticks[i].bid == Ticks[i - 1].bid) ? 0 : TICK_FLAG_BID) |
                         ((Ticks[i].ask == Ticks[i - 1].ask) ? 0 : TICK_FLAG_ASK) |
                         ((Ticks[i].last == Ticks[i - 1].last) ? 0 : TICK_FLAG_LAST);

        if (Ticks[i].time_msc < Ticks[i - 1].time_msc)
        {
          Ticks[i].time_msc = Ticks[i - 1].time_msc;
          Ticks[i].time = Ticks[i - 1].time;

          Res++;
        }
      }
    }

    return(Res);
  }
 

А кто-нибудь пробовал записывать разные

volume и  volume_real?


Ticks[n].volume=(ulong)b;
Ticks[n].volume_real=(double)a;

Я записал разные, но чтение из созданного символа выдает

volume_real=  volume


2017.01.03 01:00:00 1.04945 16 16.0
2017.01.03 01:00:00 1.0495 5 5.0
 2017.01.03 01:00:00 1.04955 8 8.0
2017.01.03 01:00:00 1.04965 41 41.0

Есть способ сохранить туда разные значения?

 
Forester #:

А кто-нибудь пробовал записывать разные

volume и  volume_real?

Есть способ сохранить туда разные значения?

Речь про бары.
 
fxsaber #:
Речь про бары.
Я про тики. Думал может сэкономить на размерах файлов, записав аск и бид объемы в одной строке.
Ну да ладно... 2 строки тоже сойдет.
 
Forester #:
Я про тики. Думал может сэкономить на размерах файлов, записав аск и бид объемы в одной строке.
Ну да ладно... 2 строки тоже сойдет.

А какое отношение объёмы имеют к аскам и бидам? Или вы имели ввиду бай/селл?

Я думаю, что разные значения присвоить можно, но только в дробной части объёмов повышенной точности.

Скорее всего эти объёмы добавлены для брокеров, которые разрешают торговать дробным лотом. Счета типа мини и микро.

 
Aleksandr Slavskii #:

Сейчас при копировании тиков  COPY_TICKS_TRAD, сделал флаги равными нулю и всё заработало!!!

Сегодня посмотрел тики в тетере за несколько дней. В общем биды с асками то появляются, то исчезают.

Делать флаги равными нулю, плохой вариант.

Флаги нужно задавать явно и вероятнее всего без флагов  TICKS_FLAG_BUY  и   TICKS_FLAG_SELL.

fxsaber показал пример кода , спасибо.  Сегодня не успел переделать его под свои нужды.

Но нашёл временное решение, которое впрочем даёт желаемый результат. Все флаги тиков делаю = 30. 

На графике в терминале всё красиво и в тестере тоже всё есть и биды и аски и объёмы. Дельты объёмов нет (откуда ей взяться без флагов бай и селл), но мне она пока не нужна.

 
Aleksandr Slavskii #:

А какое отношение объёмы имеют к аскам и бидам? Или вы имели ввиду бай/селл?

Я думаю, что разные значения присвоить можно, но только в дробной части объёмов повышенной точности.

Скорее всего эти объёмы добавлены для брокеров, которые разрешают торговать дробным лотом. Счета типа мини и микро.

У меня там свои задумки. Думаю лучше оставить как есть.
 
Ivan Titov #:

Как в пользовательском символе сделать доступной таблицу всех сделок?


При добавлении функцией CustomTicksReplace тика сделки с флагами TICK_FLAG_LAST | TICK_FLAG_VOLUME | TICK_FLAG_BUY(TICK_FLAG_SELL) почему-то отбрасывает флаг TICK_FLAG_LAST. Цена last и объемы в передаваемом в функцию тике заполнены, bid и ask - нули. В результате в базу тиков пишется только объем сделки и направление, а цена сделки - нет.

Подозреваю, что из-за этого таблица всех сделок недоступна, а на тиковом графике сделки не видны.

Уважаемые разработчики терминала, просьба исправить. А также поясните, плз, почему в функции CustomTicksAdd запретили добавление флагов TICK_FLAG_BUY и TICK_FLAG_SELL.

Не хотелось бы из-за такой мелочи городить свою базу истории сделок. Да и индикаторы многие завязаны на CopyTicks() с флагом COPY_TICKS_TRADE.

Причина обращения: