Ошибки, баги, вопросы - страница 1512

 
Alexey Kozitsyn:
Рад слышать! Спасибо, что прислушиваетесь к конструктивной критике.
Не факт, что поведение поменяем
[Удален]  
Slawa:
Не факт, что поведение поменяем
Это я понял. Рад тому, что услышали.
 

Замечания в справке к мт 4

в справке

Выбирает символ в окне MarketWatch (Обзор рынка) или убирает символ из этого окна.

bool  SymbolSelect(
   string  name,       // имя символа
   bool    select      // включить или выключить
   );


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

Правильно было бы написать  Добавляет символ в окно MarketWatch (Обзор рынка) или убирает символ из этого окна.

Тогда не будет двойных интерпретаций.


SYMBOL_SELECT

Признак того, что символ выбран в Market Watch.

 

Некоторые символы могут не отображаться в Market Watch, но при этом быть выбранными.

bool


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

Правильное описание Признак того, что символ добавлен/виден в Market Watch.

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

 

1. Почему не сохраняется скрин?

2016.02.18 21:50:09.043    Screenshot: cannot save temp file

2. И уже не первый раз замечаю, что индикатор не отображает данные, а растягивается по нулевому уровню! Почему?

В одном окне около 20 индикаторов. Было гораздо больше и все было нормально. Индикатор прикрепил.

Во время установки индикатора, во вкладке "эксперты" выдает сообщение:

2016.02.18 21:59:40.295    EquityHedgeGraph4 EURUSD,H1: initialized
2016.02.18 21:59:40.285    EquityHedgeGraph4 EURUSD,H1: uninit reason 5

а когда нормально отображается, то:

2016.02.18 21:43:39.483    Custom indicator EquityHedgeGraph4 EURUSD,H1: loaded successfully

win 7/64 mt4/950

Файлы:
 

есть 3 вопроса/пожелания:

1. Глюк с окнами (на всех моих компьютерах): при развертывании встроенных окон, справа появляется "дырка" между границей окна и границей оболочки (в терминале и редакторе)

 

 

2. Злополучный стакан...

№1 - помимо его общего неудобства, он по-прежнему влипает в терминал откуда его не вытянуть, т.к. сохраняется последнее местоположение... чтоб его извлечь приходится уменьшать терминал, и "выбрасывать" стакан на рабочий стол... и это в моменты волатильности рынка! Великолепно!... А влипает стакан в терминал потому что пытаешься растянуть стакан на весь экран, чтобы видеть хоть немного больше цен, т.к. невозможность регулировать размер шрифта и межстрочные интервалы  в стакане приводит к тому, что на экранах 1366х768 видно всего около 10 уровней вниз и вверх, чего явно недостаточно

№2 - положение окна запоминается, а последние настройки стакана - нет... в частности, при открытии стакана постоянно приходится жать "уменьшение" до конца 

 

 

3. CopyTicks()

я так понимаю, проблема не решена до сих пор (это после анонсирования новых функций 8 месяцев назад) ? ... Данные приходят противоречивые (Реал, Брокер "Открытие"): отфонарные флаги, задваиваются (и затраиваюваются) тики, миллисекунд нет вообще (т.е. данные такие: 20:01:00.000, 20:05:36.000 и т.д.)! Наличие миллисекунд - это важно!  К тому же отсутствует реакция на проверку флагов BUY/SELL...

И еще отсутствует возможность получения ID сделки (если добавить в функционал, то отпадет необходимость проверки тиков на соответствие определенному периоду выборки).

Пример:

есть время тиков на бирже (сек.мсек=объем): 03.100=5, 03.150=5, 03.300=5, 03.400=10... я тяну тики за весь день по 2000 (ограничение) и часть какого-то пакета захватывает первых два с возвращаемым временем 03.000 сек... как же мне без ID сделки знать на каком тике я остановился? с какого мне начинать если все они якобы в 03.000 ???? Добавьте ID с биржи

вот сравнивалка (просто получаю 200 последних тиков и вывожу данные из цикла):

 

________________

ах да, вот данные о системе:

 

[Удален]  
Ivan:

есть 3 вопроса/пожелания:

1. Глюк с окнами (на всех моих компьютерах): при развертывании встроенных окон, справа появляется "дырка" между границей окна и границей оболочки

 

 ...

 

У меня иногда обрезает половину цены справа графика.
 
Ivan:

есть 3 вопроса/пожелания:

1. Глюк с окнами (на всех моих компьютерах): при развертывании встроенных окон, справа появляется "дырка" между границей окна и границей оболочки (в терминале и редакторе)

На Windows 10 x64 никогда не встречал такой ошибки на 1241 билде. После команды "Развернуть" окно графика разворачивается полностью, без дыр:

Окно после того как оно развернуто на всю 

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

Ivan:

...

2. Злополучный стакан...

№1 - помимо его общего неудобства, он по-прежнему влипает в терминал откуда его не вытянуть, т.к. сохраняется последнее местоположение... чтоб его извлечь приходится уменьшать терминал, и "выбрасывать" стакан на рабочий стол... и это в моменты волатильности рынка! Великолепно!... А влипает стакан в терминал потому что пытаешься растянуть стакан на весь экран, чтобы видеть хоть немного больше цен, т.к. невозможность регулировать размер шрифта и межстрочные интервалы  в стакане приводит к тому, что на экранах 1366х768 видно всего около 10 уровней вниз и вверх, чего явно недостаточно

№2 - положение окна запоминается, а последние настройки стакана - нет... в частности, при открытии стакана постоянно приходится жать "уменьшение" до конца 

Когда мышкой тяните стакан понажимайте в этот момент или "Shift" или "Ctrl" или "Alt".

 

Ivan:


3. CopyTicks()

я так понимаю, проблема не решена до сих пор (это после анонсирования новых функций 8 месяцев назад) ? ... Данные приходят противоречивые (Реал, Брокер "Открытие"): отфонарные флаги, задваиваются (и затраиваюваются) тики, миллисекунд нет вообще (т.е. данные такие: 20:01:00.000, 20:05:36.000 и т.д.)! Наличие миллисекунд - это важно!  К тому же отсутствует реакция на проверку флагов BUY/SELL...

 Тут могу посоветовать с подробным описанием, со своим кодом (который показывает тики), со скриншотами составить заявку в СервисДеск.

[Удален]  

Как лучше, с точки зрения производительности, так:

  template <typename T>
  void SetProperty( const int id, const T Value, const int Modifier = 0 ) const
  {
    const string sType = typename(T);

    if (sType == "double")
      ::ObjectSetDouble(this.Chart, this.Name, id, Modifier, (double)Value);
    else if (sType == "string")
      ::ObjectSetString(this.Chart, this.Name, id, Modifier, (string)Value);
    else
      ::ObjectSetInteger(this.Chart, this.Name, id, Modifier, (long)Value);

    return;
  }

или перегрузкой методов?

 
zaskok3:

Как лучше, с точки зрения производительности, так:

или перегрузкой методов?

с точки зрения производительности разницу не увидите - оба решения имеют место быть :)
[Удален]  
coderex:
с точки зрения производительности разницу не увидите - оба решения имеют место быть :)

Спасибо! Еще вопрос:

Какой смысл const-полей в структуре? Такие структуры невозможно даже передать (компилятор ругается или стэк переполняется)?:

#property strict 

struct STRUCT
{
  const int Num;
  
  STRUCT( const int iNum = 0 ) : Num(iNum) // Если затереть " = 0", то будет ошибка компиляции: 'STRUCT' - wrong parameters count 
  {
  }
  
/*
// Так получается обойти ошибки компиляции, но на этапе выполнения: Stack overflow   
  STRUCT operator = ( STRUCT &Struct )
  {
    STRUCT Res(Struct.Num);
    
    return(Res);
  }
*/
};

const STRUCT GetStruct( const int Num = 0 )
{
  STRUCT Struct(Num);
  
  return(Struct); // 'return' - not allowed for objects with protected members or inheritance 
}

void OnStart( void )
{
  Print(GetStruct(1).Num);
  
  return;
}


Перегрузка оператора присваивания для структур фактически невозможна (быссмысленна из-за бесконечной рекурсии). Ну и зачем тогда const-поля в структуре?