Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 837

 
Alexander Layzerevich:

Исправил в МТ5 коде передачу данных Индикатору:

Но ошибка та-же. 

Откажитесь от подглядывания в дерьмокод написанный на mql4 и у вас быстрей получится.

 
Igor Makanu:

свойства проекта в Visual Studio смотрите, там должна быть настройка под какую платформу компилировать dll - в МТ4 нужно 32-х разрядный код

PS: гуглом найдите настройку VS

Пробовал искать такую настройку поисковик выдаёт ответы что типа наоборот с 32 на 64 и в общем так и не понял как эту настройку делать. Если я немного понял то вот у меня оно по умолчанию 32 стоит 

А вот нашёл какое-то меню с настройкой 

Так что не знаю если оно то тут стоит по умолчанию 32.

 

Подскажите пожалуйста, почему один и тот же код работает в МТ4, но не работает в МТ5? В МТ5 переменная strNum всегда =1, а в МТ4 счетчик ++ работает как надо и strNum = количеству строчных элементов в файле.

int strNum;
void OnStart()
  {
 FileNum();
 Alert1();
  } 

  void FileNum()
{
      int handle=FileOpen("File.csv",FILE_CSV|FILE_READ,';');
      strNum=0; 
      while(!FileIsEnding(handle))
{
      FileReadString(handle);
      strNum++;
      if(FileIsEnding(handle)==true)
      break;
}
      FileClose(handle);
}

      void Alert1()
{
      Alert (strNum);
}
 
Seric29:

Пробовал искать такую настройку поисковик выдаёт ответы что типа наоборот с 32 на 64 и в общем так и не понял как эту настройку делать. Если я немного понял то вот у меня оно по умолчанию 32 стоит 

А вот нашёл какое-то меню с настройкой 

Так что не знаю если оно то тут стоит по умолчанию 32.

ещё и с библиотеками есть заморока /MT или /MD, я их постоянно путаю :-) Это тоже где-то в дебрях user-friendly студии

покажите весь проект, включая всё что вы там натворили в С++ и Mql. Не думаю что там лютый копирайт :-)
по полному коду подскажем что не так, а иначе вы долго будете всех напрягать на телепатию


 
Maxim Kuznetsov:

ещё и с библиотеками есть заморока /MT или /MD, я их постоянно путаю :-) Это тоже где-то в дебрях user-friendly студии

покажите весь проект, включая всё что вы там натворили в С++ и Mql. Не думаю что там лютый копирайт :-)
по полному коду подскажем что не так, а иначе вы долго будете всех напрягать на телепатию


Файл с расширением .def

Файл с расширением .cpp

в mql4 просто файл перетянул из папки терминала Libraries

#import "dllmt42.dll"
 int _add(int a=0, int b=0);
#import

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

 
Seric29:

Файл с расширением .def

Файл с расширением .cpp

в mql4 просто файл перетянул из папки терминала Libraries

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

зачем вы к add добавляете __чёрточку ? уберите её нафик

все идентификаторы во всех файлах должны быть строго идентичны, без фантазий про век underscore :-)

 
Alexey Viktorov:

Откажитесь от подглядывания в дерьмокод написанный на mql4 и у вас быстрей получится.

Весь, как вы выразились "дерьмокод" написан согласно справке основ языка. https://www.mql5.com/ru/docs/basis/function/call

Так же там указано " Функция не может быть объявлена внутри другой функции."

У меня как раз так написано. Собственно поэтому и не работает.

Вот и пытаюсь узнать у знатоков, как же всё таки сделать вызов функции (Deviation(Kanal)) Когда она зависит от вызова функции Индикатора (double Envelopes(...))

upd: Вопрос частично решен.
 
Maxim Kuznetsov:

зачем вы к add добавляете __чёрточку ? уберите её нафик

все идентификаторы во всех файлах должны быть строго идентичны, без фантазий про век underscore :-)

Ну так по инструкции все делали и я так сделал, сейчас уберу посмотрю. В общем помогло вернуло 18. Благодарю буду экспериментировать дальше.

 
Alexander Layzerevich:

Весь, как вы выразились "дерьмокод" написан согласно справке основ языка. https://www.mql5.com/ru/docs/basis/function/call

Так же там указано " Функция не может быть объявлена внутри другой функции."

У меня как раз так написано. Собственно поэтому и не работает.

Вот и пытаюсь узнать у знатоков, как же всё таки сделать вызов функции (Deviation(Kanal)) Когда она зависит от вызова функции Индикатора (double Envelopes(...))

upd: Вопрос частично решен.

Вы уже вызвали, и передаёте в функцию   Envelopes(........)значение, возвращаемое функцией Deviation(Kanal)

и в самой функции Envelopes(........последний параметр, объявляете переменную которая и примет это значение


как то так

double Envelopes(string symb, ENUM_TIMEFRAMES tf, int period, int shift, int method, int price, int buff, double Dev)
{
  double buf[1];
  int handle=iEnvelopes(Symbol(), tf, period, shift, method, price, Dev);
   if(handle<0)
   {
    Print("Failed to create handle ATR, Error: ",GetLastError());
    return(WRONG_VALUE);
   } else
   {
    if(CopyBuffer(handle,buff,0,1,buf)<0)
    {
     Print("Failed to copy data from the indicator ATR, Error: ",GetLastError());
     return(WRONG_VALUE);
    }
   }
   return(buf[0]);
}
 
KrasAleks:

Приветствую всех. Удачи в жизни и профита в работе.

Обращаюсь с просьбой помочь(неожидано, да? :) )

...................................................

И вот тут то я и встал :). Что использовать вместо GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic) . По идее надо Уровень_просадки(Symbol(),OP_BUY,Magic) заюзать, а вот как его получить...


Помогите плииз, будьте другами. 
З.Ы. Если будете советовать, очень прошу, учитывайте, что я пока нубяра еще тот, не поленитесь чуток подробнее направить меня, ну типа если: ЛЕС ТАМ, то не забудьте направление указать <------ || ------>.

Спс за внимание:). 

Доброго утра,дня,вечера,ночи(нужное подчеркнуть).

Не сочтите за наглость, подниму вопрос. Обдумывал свою запарку.... мне по идее нужен последний OP_BUY && OP_SELL, его Магик || тикет || open_price..... Я прав? Если я найду последний ордер, я по идее могу высчитать дистанцию от него до текущей ask\bid. Скачал тут пару "усреднителей", имхо там должно быть что то подобное, если не идентичное, ..... вот только понять бы, что я нашел  то, что искал..... :)

Если никто не против :), продолжу надеяться на вашу помощь советом, хотя бы отсылкой к источнику нужной мне информации(если это не книга Ковалёва, я с неё начал 3 дня назад).

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