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

 
snookeredman:

Добрый день!

Помогите пожалуйста разобраться ....

void OnStart()
  {
    int h;
    int    m_integer  = 23;
    string m_string   = "EURUSD";
    double m_double   = 1.2345678;    
    
    h=FileOpen("TEST_CSV_FILE.CSV",FILE_CSV|FILE_WRITE,";");
    FileWrite(h,  
              m_integer, 
              m_string, 
              DoubleToString(NormalizeDouble(m_double,5),5));
    FileWrite(h,  
              m_integer, 
              m_string, 
              DoubleToString(NormalizeDouble(m_double,5),5));
    FileClose(h);
  }

Соответственно размер файла в 2 раза больше, чем предполагается.

Попробуйте так :

void OnStart()
  {
    int h;
    int    m_integer  = 23;
    string m_string   = "EURUSD";
    double m_double   = 1.2345678;    
    
    h=FileOpen("TEST_CSV_FILE.CSV",FILE_CSV|FILE_WRITE|FILE_ANSI,";");                     // Добавлен флаг FILE_ANSI
    FileWrite(h, m_integer, m_string, DoubleToString(NormalizeDouble(m_double,5),5));
    FileWrite(h, m_integer, m_string, DoubleToString(NormalizeDouble(m_double,5),5));
    FileClose(h);
  }
Я думаю это именно то, чего Вы добивались.
 
Что происходит? Долго эти дисконнекты и пропадания серверов еще будут происходить?  Сейчас вот сайт появился после трехдневного простоя но сервера снова в дауне и терминал не коннектится
 
Bene_Nota:

Что происходит? Долго эти дисконнекты и пропадания серверов еще будут происходить?  Сейчас вот сайт появился после трехдневного простоя но сервера снова в дауне и терминал не коннектится
У  меня терминал приконнектился со вчерашнего вечера. Access Point: USA, Europe, Hong Kong
 

Спасибо TheXpert, MetaDriver за помощь.

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

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5
 

Господа, как в С++ узнать общее количество элементов на форме??

 

Добрый день, хотел бы обратиться к разработчикам, но вначале небольшая предыстория...

Т.к. держать несколько позиций теперь невозможно, самый разумный для себы выход вижу в установки отложек. Но тут есть проблема ордера устанавливаются по одному. А утановить нужно три ордера ( один немедленного исполнения и две отложки вместо TP и SL). И если случится так что я выставлю один а два поставить не смогу? Вдруг в ДЦ все уйдут на обед? Моему депозиту это может очень не понравиться. Бывает сложным выставить один ордер, а тут целых три. Не планируете ли сделать возможным устанавливать несколько ордеров (либо все, либо ничего)?

 
220Volt:

Не планируете ли сделать возможным устанавливать несколько ордеров (либо все, либо ничего)?

К сожалению, нет.

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

 

Пытаюсь запросить дату начала истории получаю нули.

Тест в режиме визуализации, на Н1 все тики.

Код проверочного теста

int DS[];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int total=SymbolsTotal(false);
   ArrayResize(DS,total);
   for(int i=0;i<total;i++)
   {
    DS[i]=0;
    string symbol=SymbolName(i,false);
    
    while(!SymbolIsSynchronized(symbol)) 
    {
     DS[i]=(int)SeriesInfoInteger(symbol,0,SERIES_SERVER_FIRSTDATE);
     Sleep(30);
    }
    DS[i]=(int)SeriesInfoInteger(symbol,0,SERIES_SERVER_FIRSTDATE);
    Print("История по символу ",symbol," Синхронизирована. дата начала истории ",TimeToString(DS[i])," = ",DS[i]);
   }
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+

лог во вложении.

 

Есть ли у оптимизатора кода ограничения на объем объектного дерева?

При увеличении количества объектов получаю ошибку "tree optimization error" на этапе компиляции.

P.S. В режиме отладки компиляция проходит.

 
sergey1294:

Пытаюсь запросить дату начала истории получаю нули.

Тест в режиме визуализации, на Н1 все тики.

Код проверочного теста

лог во вложении.

   Во-первых, какой смысл принудительно закачивать историю в тестере ? Тестер сам загрузит необходимую и доступную историю с сервера, если к ней будут запросы в коде или торговые операции, по необходимым инструментам. Так как у Вас код пустой, то тестеру нет необходимости моделировать тики по другим инструментам, кроме того символа, на котором происходит тестирование. Его то историю тестер и загрузил. А раз нет истории (в тестере), то и получаете в итоге 0.

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