0ll Опубликовано 28 февраля, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 февраля, 2015 AndreyGold ааа, я понял к чему Вы вопросы задаёте... Да к сожалению статистика портится, в утешение могу сказать, что если "чисто гипотетически" закрывать ровно в 0, то стата останется кривой - МТ "0" считает за +. 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
77павел Опубликовано 28 февраля, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 февраля, 2015 Подскажите кто может пожалуйста прописал условие по пересечению МАСД всё нормально но не хватает функции контроля закрытия текущего бара нашол вот такую if (timepref == Time[0])return(0); но она не применима в старте может быть кто не будь знает как её изменить или как другую прописать timepref = Time[0]; Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 28 февраля, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 февраля, 2015 77павел пробуй так: static datetime new_Bar; if (new_Bar == Time[1]) return(false); //Если бар не закрыт - выход new_Bar = Time[1];и далее Ваш код. Он будет исполняться 1 раз на открытии текущего бара 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
77павел Опубликовано 28 февраля, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 февраля, 2015 Спасибо большое второй раз выручаете меня))) Добавлено: 01-03-2015 06:16:43И снова я с просьбой к Вам вдохновлённый тем что получилось прописать условия входов по масд прописать трал бу и даже процент от депо решил прикрутить фильтр в виде стохастика на более младшем тайм фрейме решил что возможно это сделать как масд вот таким способом Snox1 = iStochastic(NULL,TPeriod,5,3,3,MODE_SMA,0,MODE_MAIN,0); Snox2 = iStochastic(NULL,TPeriod,5,3,3,MODE_SMA,0,MODE_SIGNAL,0); Snox3 = iStochastic(NULL,TPeriod,5,3,3,MODE_SMA,0,MODE_MAIN,1); Snox4 = iStochastic(NULL,TPeriod,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);и всё работает но вот вопрос как прописать зоны перекупленности 20 и 80 в справке не на шол на форуме мт 4 в учебнике подобное на шол моему а вот про зоны не слово нет помогите кто может до утра искал не как :-s Изменено 1 марта, 2015 пользователем 77павел 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 1 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 марта, 2015 77павел, Вы пытаетесь найти сложности там, где их нет...Задайте внешние переменные типа: input int StohLevelH = 80;Далее в коде проверяйте if (Snox1 >StohLevelH) ... 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
77павел Опубликовано 1 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 марта, 2015 Логику понял сейчас попробую))) Ссылка на сообщение Поделиться на другие сайты More sharing options...
tuner Опубликовано 1 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 марта, 2015 постараюсь вкратце объяснить. придумал кое какой подход к торговле, который нужно автоматизировать.Так как легких путей не бывает ,решил изучить mql. Начал вот с этих ресурсов: _http://book.mql4.com/ru _http://tlap.com/forum/ugolok-programmista/13/obuchenie-yazyku-mql4-pod-metatrader-4/4034Столкнулся с проблемой,я не могу выполнять задания и примеры описанные там. Как я понял ,описания в книгах и видеоуроках к mql4 подходящие к metaeditor старых билдов. После 600 билда что то изменилось, но не могу понять что . Даже готовые операторы и примеры с книг не компилируюца . Подскажите ,может есть где то информация подробная что изменилось, или учебники под новые билды. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Virtikus Опубликовано 1 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 марта, 2015 Скачай старый билд 509, компилируй в нем пока. _http://tradelikeapro.ru/metatrader-4-build-604/Ссылки внизу Изменено 1 марта, 2015 пользователем Virtikus 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
tuner Опубликовано 2 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 марта, 2015 Спасибо большое . Скомпилированные программы будут же работать в новых билдах?ps.я походу учебы буду всякие вопросы нубские задавать, можно ж тут ,или есть специальный раздел? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Virtikus Опубликовано 3 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 марта, 2015 Да будут. Переноси ex4 или оба. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Kocty Опубликовано 3 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 марта, 2015 Скомпилированные программы будут же работать в новых билдах? Не продолжительное время, на форуме mql4 уже писали, что в скором времени отключат поддержку всего ПО написанного до 600 билда.На сколько помню первые даты озвученные модератами ресурса ~ 1 год после релиза 600 билда, это связано с тем, что бы юзеры смогли спокойно адаптировать старые наработки под новую версию.Поэтому сразу пиши под новой версией, тем более что там ничего сложного нет. 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
dslone Опубликовано 3 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 марта, 2015 Накидал себе простенький индикатор, который мне выводит на экран рабочий лот в зависимости от заданного стоплосса в пунктах. Расчет лота для последующего вывода произвожу такworkLot = DoubleToString(slInMoney/(slInPoints*pointValue), 2);и проблема в том, что лот выводится не с точностью два знака, а 16ну например 0,8100000000000001причем при изменении денежного баланса, начинает выводить как положено, с точностью до двух знаков, потом баланс поменялся, опять выводит 16 знаков Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 3 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 марта, 2015 dslone где-то в коде ошибка. ищите или код давайте. Ссылка на сообщение Поделиться на другие сайты More sharing options...
dslone Опубликовано 3 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 марта, 2015 Да, похоже, что была ошибка в типах при конвертации числа в строку, привел все переменные к нужному типу, стало нормально. Ссылка на сообщение Поделиться на другие сайты More sharing options...
koleber Опубликовано 4 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 марта, 2015 Доброго времени суток! помогите пожалуйста советом как можно передать структуру в функцию? и вообще возможно ли это в mql4 Добавлено: 04-03-2015 09:30:43пробовал как на сиstruct mystruct{double first_arr[10];int second_arr[10];};void myfunc (struct mystruct STRUCTURA){тело функции} выдает ошибку: 'mystruct' - struct can't be defined in parameters list Изменено 4 марта, 2015 пользователем koleber Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 4 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 марта, 2015 Вам надо определить переменную с типом структуры и её передавать в функцию. В описании функции слово struct писать не надоstruct mystruct{double first_arr[10];int second_arr[10];};mystruct MYS1;myfunc (MYS1);void myfunc (mystruct STRUCTURA){тело функции} Ссылка на сообщение Поделиться на другие сайты More sharing options...
koleber Опубликовано 4 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 марта, 2015 А если я уже определил структурой массив array[] как мне его передать в функцию ссылкой ? struct mystruct{double first_arr[10];int second_arr[10];};mystruct array[];...??? Добавлено: 04-03-2015 10:59:00И еще в описании функции нам нужно указать тип, а если это структура то что за тип тогда?struct mystruct{double first_arr[10];int second_arr[10];};mystruct MYS1;void myfunc (MYS1){}выдает ошибку: 'MYS1' - declaration without type Изменено 4 марта, 2015 пользователем koleber Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 4 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 марта, 2015 koleber ???Я-ж написал... Вы определяете пользовательский тип (структура) с названием типа - mystruct.Ещё раз с поправкой на Вашу ситуацию: (может Вам с чего попроще начинать изучать мкл?)struct mystruct{double first_arr[10];int second_arr[10];};mystruct array[]; // я-бы не использовал зарезервированные слова в виде названий переменных...myfunc (array);void myfunc (mystruct STRUCTURA[]){тело функцииSTRUCTURA[1].first_arr[2] = ...} Ссылка на сообщение Поделиться на другие сайты More sharing options...
koleber Опубликовано 5 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 марта, 2015 использовав то что вы написали:struct mystruct{double first_arr[10];int second_arr[10];};mystruct array[]; // я-бы не использовал зарезервированные слова в виде названий переменных...myfunc (array);void myfunc (mystruct STRUCTURA[]){тело функцииSTRUCTURA[1].first_arr[2] = ...}получил такие ошибки:'myfunc' - declaration without type'mystruct' - objects are passed by reference onlyчто я делаю не так? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 5 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 марта, 2015 koleber надо передавать по ссылке и определять длину Ваших массивов.void myfunc (mystruct &STRUCTURA[])Вот скрипт, который передаёт в функцию структуру, похожую на Вашу (только я её определил).Prob_struct.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
koleber Опубликовано 5 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 марта, 2015 Спасибо за ответ! теперь понял 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
77павел Опубликовано 5 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 марта, 2015 Вопрос есть по функции закрытия позиций по прасадке от депо в процентах ,риск скажем пять процентов берётся от текущего депо постоянно поэтому работая постоянным лотом и имея + по депо мой риск в пять процентов увеличивается по сумме я так понимаю так вот сам вопрос как изменить расчёт не от текущего а от первоначального хотя бы или пусть когда минус по депо он делает перерасчёт от уменьшенного депо надеюсь понятно суть изложил спасибо всем Ссылка на сообщение Поделиться на другие сайты More sharing options...
dslone Опубликовано 5 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 марта, 2015 Накидал себе простенький индикатор, который мне выводит на экран рабочий лот в зависимости от заданного стоплосса в пунктах. с предыдущей проблемой разобрался, осталась такая:Когда я первый раз накидываю индикатор на экран, потом провожу сделки, соответственно меняется баланс, то и лот на экране меняется. После того как я закрыл-открыл терминал по новой (с открытым окном с индикатором), то после изменения баланса лот уже не меняется. Код прикрепляю.LotCalc.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kempo Опубликовано 5 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 марта, 2015 Доброго времени суток ув. программисты...возникла проблема...пытаюсь написать сеточник, но при тестировании выдает ошибку 4108 при закрытии всех ордеров...знаю что связано с тикетом, но как решить эту проблему не знаю...кусок кода:bool Close_Orders(int mag, int otype) { bool error = false; int _OR_err = GetLastError(); for (int i = OrdersTotal() - 1; i >= 0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == mag && OrderType() == otype) { if(otype == OP_BUY || otype == OP_SELL) { if (otype == OP_BUY) RefreshRates(); if(!OrderClose(OrderTicket(), OrderLots(), MarketInfo(Symbol(),MODE_BID), Slippage, clrBlue)) error = true; else Print("Ошибка закрытия ордера "+IntegerToString(_OR_err)); if (otype == OP_SELL) RefreshRates(); if(!OrderClose(OrderTicket(), OrderLots(), MarketInfo(Symbol(),MODE_ASK), Slippage, clrRed)) error = true; else Print("Ошибка закрытия ордера "+IntegerToString(_OR_err)); } } Sleep(500); } } return(false);} Ссылка на сообщение Поделиться на другие сайты More sharing options...
oleguitar Опубликовано 5 марта, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 марта, 2015 Привет всем, а подскажите плиз, как сделать, чтобы при выполнении заданных условий, свеча выделялась на графике (стрелочной, например)? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти