свойства проекта в Visual Studio смотрите, там должна быть настройка под какую платформу компилировать dll - в МТ4 нужно 32-х разрядный код
PS: гуглом найдите настройку VS
Пробовал искать такую настройку поисковик выдаёт ответы что типа наоборот с 32 на 64 и в общем так и не понял как эту настройку делать. Если я немного понял то вот у меня оно по умолчанию 32 стоит
А вот нашёл какое-то меню с настройкой
Так что не знаю если оно то тут стоит по умолчанию 32.
Подскажите пожалуйста, почему один и тот же код работает в МТ4, но не работает в МТ5? В МТ5 переменная strNum всегда =1, а в МТ4 счетчик ++ работает как надо и strNum = количеству строчных элементов в файле.
Пробовал искать такую настройку поисковик выдаёт ответы что типа наоборот с 32 на 64 и в общем так и не понял как эту настройку делать. Если я немного понял то вот у меня оно по умолчанию 32 стоит
А вот нашёл какое-то меню с настройкой
Так что не знаю если оно то тут стоит по умолчанию 32.
ещё и с библиотеками есть заморока /MT или /MD, я их постоянно путаю :-) Это тоже где-то в дебрях user-friendly студии
покажите весь проект, включая всё что вы там натворили в С++ и Mql. Не думаю что там лютый копирайт :-) по полному коду подскажем что не так, а иначе вы долго будете всех напрягать на телепатию
ещё и с библиотеками есть заморока /MT или /MD, я их постоянно путаю :-) Это тоже где-то в дебрях user-friendly студии
покажите весь проект, включая всё что вы там натворили в С++ и Mql. Не думаю что там лютый копирайт :-) по полному коду подскажем что не так, а иначе вы долго будете всех напрягать на телепатию
Файл с расширением .def
Файл с расширением .cpp
в mql4 просто файл перетянул из папки терминала Libraries
#import "dllmt42.dll"int _add(int a=0, int b=0);
#import
Ну а потом тупо вызвал функцию, он просто возвращает 18 и больше ничего не делает, это же как эксперимент чтоб понять работает или нет.
Так же там указано "Функция не может быть объявлена внутри другой функции."
У меня как раз так написано. Собственно поэтому и не работает.
Вот и пытаюсь узнать у знатоков, как же всё таки сделать вызов функции (Deviation(Kanal)) Когда она зависит от вызова функции Индикатора (double Envelopes(...))
Так же там указано "Функция не может быть объявлена внутри другой функции."
У меня как раз так написано. Собственно поэтому и не работает.
Вот и пытаюсь узнать у знатоков, как же всё таки сделать вызов функции (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]);
}
И вот тут то я и встал :). Что использовать вместо GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic) . По идее надо Уровень_просадки(Symbol(),OP_BUY,Magic) заюзать, а вот как его получить...
Помогите плииз, будьте другами. З.Ы. Если будете советовать, очень прошу, учитывайте, что я пока нубяра еще тот, не поленитесь чуток подробнее направить меня, ну типа если: ЛЕС ТАМ, то не забудьте направление указать <------ || ------>.
Спс за внимание:).
Доброго утра,дня,вечера,ночи(нужное подчеркнуть).
Не сочтите за наглость, подниму вопрос. Обдумывал свою запарку.... мне по идее нужен последний OP_BUY && OP_SELL, его Магик || тикет || open_price..... Я прав? Если я найду последний ордер, я по идее могу высчитать дистанцию от него до текущей ask\bid. Скачал тут пару "усреднителей", имхо там должно быть что то подобное, если не идентичное, ..... вот только понять бы, что я нашел то, что искал..... :)
Если никто не против :), продолжу надеяться на вашу помощь советом, хотя бы отсылкой к источнику нужной мне информации(если это не книга Ковалёва, я с неё начал 3 дня назад).
Исправил в МТ5 коде передачу данных Индикатору:
Но ошибка та-же.
Откажитесь от подглядывания в дерьмокод написанный на mql4 и у вас быстрей получится.
свойства проекта в Visual Studio смотрите, там должна быть настройка под какую платформу компилировать dll - в МТ4 нужно 32-х разрядный код
PS: гуглом найдите настройку VS
Пробовал искать такую настройку поисковик выдаёт ответы что типа наоборот с 32 на 64 и в общем так и не понял как эту настройку делать. Если я немного понял то вот у меня оно по умолчанию 32 стоит
А вот нашёл какое-то меню с настройкой
Так что не знаю если оно то тут стоит по умолчанию 32.
Подскажите пожалуйста, почему один и тот же код работает в МТ4, но не работает в МТ5? В МТ5 переменная strNum всегда =1, а в МТ4 счетчик ++ работает как надо и strNum = количеству строчных элементов в файле.
Пробовал искать такую настройку поисковик выдаёт ответы что типа наоборот с 32 на 64 и в общем так и не понял как эту настройку делать. Если я немного понял то вот у меня оно по умолчанию 32 стоит
А вот нашёл какое-то меню с настройкой
Так что не знаю если оно то тут стоит по умолчанию 32.
ещё и с библиотеками есть заморока /MT или /MD, я их постоянно путаю :-) Это тоже где-то в дебрях user-friendly студии
покажите весь проект, включая всё что вы там натворили в С++ и Mql. Не думаю что там лютый копирайт :-)
по полному коду подскажем что не так, а иначе вы долго будете всех напрягать на телепатию
ещё и с библиотеками есть заморока /MT или /MD, я их постоянно путаю :-) Это тоже где-то в дебрях user-friendly студии
покажите весь проект, включая всё что вы там натворили в С++ и Mql. Не думаю что там лютый копирайт :-)
по полному коду подскажем что не так, а иначе вы долго будете всех напрягать на телепатию
Файл с расширением .def
Файл с расширением .cpp
в mql4 просто файл перетянул из папки терминала Libraries
Ну а потом тупо вызвал функцию, он просто возвращает 18 и больше ничего не делает, это же как эксперимент чтоб понять работает или нет.
Файл с расширением .def
Файл с расширением .cpp
в mql4 просто файл перетянул из папки терминала Libraries
Ну а потом тупо вызвал функцию, он просто возвращает 18 и больше ничего не делает, это же как эксперимент чтоб понять работает или нет.
зачем вы к add добавляете __чёрточку ? уберите её нафик
все идентификаторы во всех файлах должны быть строго идентичны, без фантазий про век underscore :-)
Откажитесь от подглядывания в дерьмокод написанный на mql4 и у вас быстрей получится.
Весь, как вы выразились "дерьмокод" написан согласно справке основ языка. https://www.mql5.com/ru/docs/basis/function/call
Так же там указано " Функция не может быть объявлена внутри другой функции."
У меня как раз так написано. Собственно поэтому и не работает.
Вот и пытаюсь узнать у знатоков, как же всё таки сделать вызов функции (Deviation(Kanal)) Когда она зависит от вызова функции Индикатора (double Envelopes(...))
upd: Вопрос частично решен.зачем вы к add добавляете __чёрточку ? уберите её нафик
все идентификаторы во всех файлах должны быть строго идентичны, без фантазий про век underscore :-)
Ну так по инструкции все делали и я так сделал, сейчас уберу посмотрю. В общем помогло вернуло 18. Благодарю буду экспериментировать дальше.
Весь, как вы выразились "дерьмокод" написан согласно справке основ языка. https://www.mql5.com/ru/docs/basis/function/call
Так же там указано " Функция не может быть объявлена внутри другой функции."
У меня как раз так написано. Собственно поэтому и не работает.
Вот и пытаюсь узнать у знатоков, как же всё таки сделать вызов функции (Deviation(Kanal)) Когда она зависит от вызова функции Индикатора (double Envelopes(...))
upd: Вопрос частично решен.Вы уже вызвали, и передаёте в функцию Envelopes(........)значение, возвращаемое функцией Deviation(Kanal)
и в самой функции Envelopes(........) последний параметр, объявляете переменную которая и примет это значение
как то так
Приветствую всех. Удачи в жизни и профита в работе.
Обращаюсь с просьбой помочь(неожидано, да? :) )
...................................................
И вот тут то я и встал :). Что использовать вместо GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic) . По идее надо Уровень_просадки(Symbol(),OP_BUY,Magic) заюзать, а вот как его получить...
Помогите плииз, будьте другами.
З.Ы. Если будете советовать, очень прошу, учитывайте, что я пока нубяра еще тот, не поленитесь чуток подробнее направить меня, ну типа если: ЛЕС ТАМ, то не забудьте направление указать <------ || ------>.
Спс за внимание:).
Доброго утра,дня,вечера,ночи(нужное подчеркнуть).
Не сочтите за наглость, подниму вопрос. Обдумывал свою запарку.... мне по идее нужен последний OP_BUY && OP_SELL, его Магик || тикет || open_price..... Я прав? Если я найду последний ордер, я по идее могу высчитать дистанцию от него до текущей ask\bid. Скачал тут пару "усреднителей", имхо там должно быть что то подобное, если не идентичное, ..... вот только понять бы, что я нашел то, что искал..... :)
Если никто не против :), продолжу надеяться на вашу помощь советом, хотя бы отсылкой к источнику нужной мне информации(если это не книга Ковалёва, я с неё начал 3 дня назад).