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

В мт 4 в справке

SYMBOL_TRADE_CALC_MODE

Способ вычисления стоимости контракта

int

И на этом все, гадайте ...


В мт 5 в справке

SYMBOL_TRADE_CALC_MODE

Способ вычисления стоимости контракта

ENUM_SYMBOL_CALC_MODE

Есть описание что есть что


То же мт 4 в справке

SYMBOL_SWAP_MODE

Модель расчета свопа

int

Торговый сервер возвращает
2018.12.10 01:53:54.716 Trades  '1106': failed exchange sell 1.00 BTCUSDT at market, close #13052 buy 1.00 BTCUSDT 3665.0 [Too many trade requests]
Vitaly Muzichenko:

Вопрос:

Есть-ли где-то скрипт, чтоб отсортировать символы в "Обзоре рынка" ?

Думаю, поможет: 

FAQ 18.12.2012 19:13  

Передаете в функцию чистый массив, получаете в нем список символов из панели "обзор рынка"
//+------------------------------------------------------------------+
//|          Description:                                            |
//+------------------------------------------------------------------+
int SymbolsList(string &Symbols[], bool Selected)
{
   string SymbolsFileName;
   int Offset, SymbolsNumber;
   
   if(Selected) SymbolsFileName = "symbols.sel";
   else         SymbolsFileName = "symbols.raw";
   int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ);
   if(hFile < 0) return(-1);
   if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128; Offset = 116;  }
   else         { SymbolsNumber = FileSize(hFile) / 1936;      Offset = 1924; } 
   ArrayResize(Symbols, SymbolsNumber);
   if(Selected) FileSeek(hFile, 4, SEEK_SET);   
   for(int i = 0; i < SymbolsNumber; i++){
      Symbols[i] = FileReadString(hFile, 12);
      FileSeek(hFile, Offset, SEEK_CUR);
   }
   FileClose(hFile);
   return(SymbolsNumber);

Автор - Рустам, XRust

На кастомном символе во время Оптимизации сыпятся
2018.12.10 04:57:27.251 Core 7  failed to send requested data
Как уведомить пользователя об остановке советника?
#property strict

bool f()
{
  int Array[];
  
  Array[0] = 0; // array out of range
  
  return(false);
}

bool PrintError()
{
  Print(GetLastError());
  
  return(true);
}

bool Init = f() || PrintError();

void OnDeinit( const int Reason )
{ 
  Print(Reason);
}


В этом смысле MT4 много мудрее MT5 поступал - вылета из программы не происходило и можно было LastError анализировать.

ERR_RESOURCE_UNSUPPOTED_TYPE

4017

Неподдерживаемый тип ресурса или размер более 16 MB

Ресурсы ограничены этим размером?
fxsaber:
Ресурсы ограничены этим размером?

Значит, тем более, целесообразно уплотнять передаваемые данные.

fxsaber:

В этом смысле MT4 много мудрее MT5 поступал - вылета из программы не происходило и можно было LastError анализировать.

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

Во вторых: после выполнение этого в MetaTrader 4 765x32 дело до PrintError() так и не дошло

В третьих: если убрать strict то дошло, но GetLastError() возвращает 0, соответственно непонятно что там анализировать

fxsaber:
Как уведомить пользователя об остановке советника?

В этом смысле MT4 много мудрее MT5 поступал - вылета из программы не происходило и можно было LastError анализировать.

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

A100:

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

Во вторых: после выполнение этого в MetaTrader 4 765x32 дело до PrintError() так и не дошло

В третьих: если убрать strict то дошло, но GetLastError() возвращает 0, соответственно непонятно что там анализировать

Не было задачи показать, что MT4 лучше MT5. Надо было решить практическую задачу.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: HistoryTicks

fxsaber, 2018.12.10 13:55

получить сообщение, что советник остановился из-за array out of range (не по вине автора советника). Например, из-за нехватки памяти или другого сбоя. Т.е. Вы будете сразу знать, что произошла нештатная остановка советника, а не случайно заметите это через несколько часов.


Неприятно, когда советник остановился, а об этом никак не сообщается.

Georgiy Merts:

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

Не логично.