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

 
Nikolai Semko:

Да, установил на другой терминал - работает тоже в релизе. 

Баг только с чтением. Никак не прочитать.

 
fxsaber:
#define protected public
  #include <Canvas\Canvas.mqh>
#undef protected
 
fxsaber:

Баг только с чтением. Никак не прочитать.

Да. Это уже понял. Печалька. 
Думаете MQ будет с этим заморачиваться ? 
Сомневаюсь однако. 

Жаль конечно, придется отказаться от идеи переписать некоторые коды с МТ5 на МТ4. Все же основная тусовка до сих пор на 4- ке сидит. Загадка природы...

 
fxsaber:

 Думаю, Вы просто не читали раньше канвас, а только делали записи туда.

Я вспомнил сейчас, что не мог понять пару лет назад, почему на 5-ке работал код, а на 4-ке нет. Но тогда не стал копать причину.  Теперь понимаю, что причина была имено в нерабочем чтением из ресурса.

 

Представим себе переворотную ТС на неттинге. Там все сделки будут DEAL_ENTRY_INOUT-типа.

Чтобы по истории узнать, какого размера стала позиция на момент совершения сделки, нужно каждый раз бежать по PositionID, вычисляя лот. Либо создавать какое-то кеширование, чтобы работало без сильных тормозов.

Сделали сотню переворотов - будете бежать в цикле эту сотню каждый раз, с соответствующей не быстрой HistorySelectByPosition.


Если правильно понимаю, то другого метода определить данное значение нет.


Или, например, совершаете много DEAL_ENTRY_IN и DEAL_ENTRY_OUT, не закрывая позицию. И определить объем исторической позиции возможно опять же только по соответствующей пробежке на истории.


Возможно ли ввести DEAL_POSITION_VOLUME - размер позиции после совершения сделки?

 

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

""80% прироста сделано за 16 дней. Это 4% от общего срока жизни сигнала 376 дней.""


Как это может быть? или я что-то не так понимаю?

сигнал

 
Ошибка в логике операторов
int f( int x )
{
    while ( true ) {
        /*   ...*/
        /*if ...*/ continue;
        /*if ...*/ return 1;
        /*if ...*/ continue;
        /*   ...*/
    }
} //Error: '}' - not all control paths return a value
 
A100:
Ошибка в логике операторов

Это не серьезно.

 
fxsaber:

Это не серьезно.

Если бы было не серьезно, то Разработчики здесь и здесь ...  не стали бы исправлять. Поверьте там не дураки сидят и могут отличить серьёзное
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2016.11.02
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

У графических объектов отсутствует свойство, определяющее их порядок наложения (Z-Order).   Имеющееся свойство OBJPROP_ZORDER не имеет отношения к этому, хотя почему-то имеет сходное название.

Раньше я думал, что порядок наложения определяется датой создания объекта.  Однако если для любого объекта сделать так:

ObjectSetInteger(chartid, objectname, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS);
ObjectSetInteger(chartid, objectname, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS);

то этот объект помещается сверху над остальными.  Никакие свойства у него при этом не меняются.  Соответственно определить программно, какой объект находится выше или ниже, невозможно.  Однако ж МТ хранит где-то эту информацию.  Поэтому хотелось бы иметь соответствующее свойство в ObjectGetInteger.

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