Новая версия платформы MetaTrader 4 build 1170 - страница 12

 
tabacmaker:

если я компилирую с метатрейдера когда Эксперт находится уже в каталоге- то он работает.

А если я компилирую в какой угодно другой папке, а после вставляю в каталог мета трейдера - то при тесте нет открытых позиций .

Подскажите в чем проблема?

Вы в журнал смотрели, может там есть какие записи с ошибкой?

 
Dikons:
Благодарствую за совет, подумаю над этим надосуге... А по претензионной (по непонятной мне причине) новой МТ вопрос решён - поставлю её на ноут  - поддержка х64 у него есть - вот и воткну ему Win 8 х64 сразу, что бы на следующем бзике , что нибудь вроде:  "Следующая версия МТ будет только на х64 архитектуре - меняйте железо загодя, да понаворотистее, а то ведь для новой МТ нужно ресурсов не меньше, чем для самых накрученных 3D шутеров..." - что б меня этот гемор не достал вновь (переход с х32 на х64 в данном случае). Ну а ХРюша на ПК пока, что и дальше будет меня радовать...

Я бы ставил win7 или win10 упустив при этом win8

 
Vitaly Muzichenko:

Вы в журнал смотрели, может там есть какие записи с ошибкой?

Смотрел, нет никаких записей об ошибках.

Только сделок нет, нет и все

 
Dikons:

Про десятку массово пишут сырая, а семёрке майкрософт кислород перекроет в следующем годе. Соответственно, как понимаю, некоторые производители софта дружно откажутся от семёрки, и МТ судя по всему..., будет в этой же дружной компании...

Семёрка еще будет жить не меньше, чем жило ХР с 2012 года

Да и семёрка ядром от десятки вроде ничем не отличается, если будет софт работать на десятке, то он будет работать и на семёрке
 
Есть следующая проблема с вертикальными линиями в графике: выставляешь вертикальную линию на М1 по времени ( к примеру возьмем 19:28); время идет, рынок двигается, но вялый, некоторые бары М1 отсутствуют (т.е. был 10:36 потом сразу 10:39); подходим ближе к нашей линии 19:28 и видим что она стоит фактически на 19:32, в свойствах линии при этом стоит как и было задано 19:28.   Таким образом получается ошибка в привязке графического объекта к координате времени.
 
Vitaly Muzichenko:

Я бы ставил win7 или win10 упустив при этом win8

10-ку опробировал на досуге (версия Pro x64) - косяк у неё - не дружит она с модемами USB 4G - не подключается к интернету через USB модем.

Пробежка по интернету подтвердила, что это не у меня одного..., типо руки кривые...

Поэтому поставил 8.1 х64. Да и ресурсов железа она кушает в два раза меньше 10-ки - сам всё проверил, сравнил...

 
Dikons:

10-ку опробировал на досуге (версия Pro x64) - косяк у неё - не дружит она с модемами USB 4G - не подключается к интернету через USB модем.

драйвера нужно искать, я в прошлом месяце кинулся перепрошить Андроид ТВ-Бокс такая же засада была, но на 4пда сумел найти драйвера от другого девайса

ЗЫ: в теории можно виртуальную машину Oracle VM VirtualBox настроить чтобы USB-порты  напрямую в нее поступали, но пока нет интереса, все и так работает

 

Код вызывает ошибку доступа к памяти в обоих терминалах (вылет по Access violation):

#property  strict

#define ARRAY_RESERVE_SIZE 100

struct MyStruct
{
   datetime dtTime;
   double   fPrice;   
   MyStruct(const datetime _dtTime = 0, const double _fPrice = 0.0)
   {
      dtTime = _dtTime;
      fPrice = _fPrice;
   }
};

MyStruct g_arrstStruct[];

//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
//| Добавление нового элемента в массив                                                                                                                                                               |
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
template<typename T>
bool AddElementToArray(T& arrT[], const T& tElement)
{
   int nTotal = ArraySize(arrT);
   if (ArrayResize(arrT, nTotal + 1, ARRAY_RESERVE_SIZE) != nTotal + 1)
   {
      Alert(MQLInfoString(MQL_PROGRAM_NAME), ": error while adding the element to array of ", typename(T), " type.");
      return false;
   }
   
   arrT[nTotal] = tElement;
   return true;
}

bool ProcessElement(MyStruct &stStruct)
{
   MyStruct stNewStruct;
   if (!AddElementToArray(g_arrstStruct, stNewStruct))
      return false;
   
   stStruct.dtTime = 0;
   return true;
} 

void OnStart()
{
   int nTotal = int(fmin(iBars(NULL, PERIOD_CURRENT), 100000));
   for (int i = 0; i < nTotal; ++i)
   {
      MyStruct stStruct(iTime(NULL, PERIOD_CURRENT, i), iClose(NULL, PERIOD_CURRENT, i));
      if (!AddElementToArray(g_arrstStruct, stStruct))
         return;
   }

   Alert("Добавлено ", nTotal, " элементов.");

   for (int k = 0; k < 50000; ++k)
      ProcessElement(g_arrstStruct[ArraySize(g_arrstStruct) - 1]);
      
   Alert("Успешно");
}

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

Продублировал сообщение в тему по МТ5.

 
Мелочь, но надо бы откорректировать описание в справке: при отсутствии файла dll выдается ошибка "Cannot load 'FX.dll' [126]". Справочник содержит описание: Ошибки компиляции "126   Имя переменной слишком длинное (>250 символов)".
 
bobsxxxx:
Мелочь, но надо бы откорректировать описание в справке: при отсутствии файла dll выдается ошибка "Cannot load 'FX.dll' [126]". Справочник содержит описание: Ошибки компиляции "126   Имя переменной слишком длинное (>250 символов)".

[126] - это код возвращаемый WinAPI функцией GetLastError

ERROR_MOD_NOT_FOUND

126 (0x7E)

The specified module could not be found.

System Error Codes (0-499) - Windows applications
  • 2018.05.31
  • GrantMeStrength
  • docs.microsoft.com
The System Error Codes are very broad.
Причина обращения: