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

 

Из лога тестера

FR      0       16:47:53.493    Core 1  initial deposit 100000.00 RUR, leverage 1:0

Да, это не описка. Плечо 1:0 по какой-то причине.

Пробую с таким плечом делать отладку в тестере. Выдает только одну строку

2016.09.02 17:00:02     Tester  Leverage 1:0 set error
 
pavlick_:
Можно ли во время компиляции выяснить размер указателя за пределами МКЛ?
Я ничего не понял )
 

Это только у меня такая огромная пауза в 2-3 секунды при запуске прогона?

MR      0       16:47:50.960    Tester  RTS-9.16: ticks data begins from 2016.08.01 00:00
LE      0       16:47:50.963    Core 1  agent process started
CE      0       16:47:51.473    Core 1  connecting to 127.0.0.1:3000
NR      0       16:47:52.736    Core 1  connected
DJ      0       16:47:52.741    Core 1  authorized (agent build 1401)
Куда каждый раз утекает время в локалке?!
 
pavlick_:
Можно ли во время компиляции выяснить размер указателя за пределами МКЛ?
Нет, код MQL может работать в "режиме" x86 и x64, поэтому размер "внешнего" указателя не является константой в момент компиляции.

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

Пример использования можно посмотреть в этой статье.
 
Ilyas:
Спасибо.
 

Если создать файл с расширением txt и нажать добавить в сторадж то файл добавляется и фиксируется, но если попытаться добавить целую папку с несколькими txt файлами то это не получается ((((

Вообще разрешено ли в сторадж хранить файлы типа txt ? Спрашиваю что бы не наколоться. 

 
Vladimir Pastushak:

Если создать файл с расширением txt и нажать добавить в сторадж то файл добавляется и фиксируется, но если попытаться добавить целую папку с несколькими txt файлами то это не получается ((((

Вообще разрешено ли в сторадж хранить файлы типа txt ? Спрашиваю что бы не наколоться. 

Хоть справка явно не указывает на txt:

  • Хранилище MQL5 Storage работает только с файлами следующих типов: mq4, mq5, mqh, cpp, h, bmp, wav. Остальные типы файлов невозможно добавить в хранилище.
  • В хранилище нельзя добавить файлы размером более 64 МБ.

но по сути файл, mq* файлы - это текстовые файлы.

 

В общем проверил - файл *.txt добавился в Хранилище. 

 

Баг это или вопрос, но что-то непонятное... происходит и в тестере и дебаге... на EURUSD всё нормально, а на USDJPY вот такая проблема...

Часть кода

void funArrPositionTicket(ulong & arrBuy[], int & buySize, ulong & arrSell[], int & sellSize)
{
 double bp, sp;
  buyProfit = 0; sellProfit = 0; buyVolume = 0; sellVolume = 0;
   int i, total = PositionsTotal();
    for(i = 0; i < total; i++)
     {
      if(PositionGetTicket(i) > 0 && PositionGetString(POSITION_SYMBOL) == _Symbol)
       {
        if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
         {
          buySize = ArraySize(arrBuy);
           ArrayResize(arrBuy, buySize+1);
            arrBuy[buySize] = (int)PositionGetInteger(POSITION_TICKET);
           buyProfit += PositionGetDouble(POSITION_PROFIT);
          buyVolume += PositionGetDouble(POSITION_VOLUME);
         }
        if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL)
         {
          sellSize = ArraySize(arrSell);
           ArrayResize(arrSell, sellSize+1);
            arrSell[sellSize] = (int)PositionGetInteger(POSITION_TICKET);
           sp = PositionGetDouble(POSITION_PROFIT);
           sellProfit += sp;
          sellVolume += PositionGetDouble(POSITION_VOLUME);
         }
       }
     }
}/*******************************************************************/

Что из кода интересует, понятно из скринов... в коде выделено.

Есть ОДИН ордер Sell с убытком 7.39 но код выдаёт убыток всего 0.93


Зелёная стрелка на следующем скрине говорит о том, что дебаг остановлен на этой строке...



То-есть переменной sl уже присвоено значение PositionGetDouble(POSITION_PROFIT)


ВОПРОС: Почему так происходит??? Это баг или закономерность, особые свойства тестера\дебагера mql5???

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

 
Alexey Viktorov:

Баг это или вопрос, но что-то непонятное... происходит и в тестере и дебаге... на EURUSD всё нормально, а на USDJPY вот такая проблема...

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

Попробуйте сравнить  PositionGetDouble(POSITION_PROFIT) на следующем тике. Если будет совпадать с тем, что показывал визуализатор до него - проблема в этом. Slawa давал разъяснения и обещал поправить.

Если нет - очередной баг тогда. 

 
fxsaber:

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

Попробуйте сравнить  PositionGetDouble(POSITION_PROFIT) на следующем тике. Если будет совпадать с тем, что показывал визуализатор до него - проблема в этом. Slawa давал разъяснения и обещал поправить.

Если нет - очередной баг тогда. 

Возможно и так, но код не предусматривает проверку на следующем тике. Только один раз в момент открытия нового бара. И какие гарантии что это значения со следующего тика??? Да никаких... Запустил ещё раз, убыток показал 2.55, а в дебагере по прежнему 0.93.

Зато, пальцы в растопырку... тестер 5 на порядок лучше тестера 4... Одни глюки и неадекватная работа... Как можно отладить советник при таких заморочках??? Как ещё люди занимаются оптимизацией??? По сути оптимизация уже самообман, а с такими заморочками, самообман в степени лежачей 8.

Придётся проверять на демке... не одну неделю...