evgven Опубликовано 16 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 сентября, 2015 Здравствуйте! С чего начать, что бы советник после взятия профита больше не открывал позиции в текущем дне. Какую функцию использовать? Только начал учиться писать советники. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rever27 Опубликовано 16 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 сентября, 2015 Здравствуйте! С чего начать, что бы советник после взятия профита больше не открывал позиции в текущем дне. Какую функцию использовать? Только начал учиться писать советники. http://tlap.com/forum/ugolok-programmista/13/obuchenie-yazyku-mql4-pod-metatrader-4/4034/?do=findComment&comment=229399где Period() это временной интервал, равный размеру текущей свечи. Можно указать хоть день, хоть год Ссылка на сообщение Поделиться на другие сайты More sharing options...
igid Опубликовано 16 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 сентября, 2015 Подскажите в каких случаях в советниках на MQL4 используется False, FALSE, True, TRUE? Сейчас копаюсь в коде одного советника. Я думал что язык чувствителен к регистру. Но компилятор не ругается. То есть вот эти значения присвоены булевым переменным и они же подсвечены синим цветом Ссылка на сообщение Поделиться на другие сайты More sharing options...
JR Опубликовано 16 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 сентября, 2015 К регистру чувствительны имена переменных, значения FALSE и false равнозначны. 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kempo Опубликовано 18 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2015 Добрый день уважаемые программисты!! Подскажите, как закрывать несработавшие отложки по истечении когото времени...копаюсь в готовой сове, хочу врезать туда отложки, но как их удалять...??? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 18 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2015 Добрый день уважаемые программисты!! Подскажите, как закрывать несработавшие отложки по истечении когото времени...копаюсь в готовой сове, хочу врезать туда отложки, но как их удалять...???OrderDelete(); 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kempo Опубликовано 18 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2015 Допустим, у меня есть ф-ция CloseBuy() ... я могу просто добавить условие, по которому будут удаляться отложка, и поменять OrderClose на OrderDelete???void CloseBuy() { for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { if (OrderMagicNumber() == Magic && OrderType() == OP_BUYSTOP) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Green); } } }} Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 18 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2015 kempo можете. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kempo Опубликовано 18 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2015 уважаемый Oll, прошу помощи... в общем написал функцию, но она не пашет... if(условие) { OpenBuyOrder(); // открываем ордер на покупку expiration = TimeCurrent() + 60*LifeTimeMinutes; }void DeleteOrderSell() { for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { if (OrderMagicNumber() == Magic && OrderType() == OP_SELLSTOP) { int time = TimeCurrent(); if(expiration { OrderDelete(OrderTicket(), Green); } } } }} Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 18 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2015 kempo ну я-бы проверку времени удаления вынес в основной блок программы, а функцию удаления оставил в чистом виде.Других замечаний нет. По коду не видно где она запускается... 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
igid Опубликовано 22 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 сентября, 2015 Подскажите как на MQL5 для пользовательской функции передать данные типа enum? Например функция GetLastLot (int ltpop, int y, double x, ) через переменную ltpop хочу передать тип ордера (ORDER_TYPE_BUY или ORDER_TYPE_SELL....)я даже не знаю как её (эту переменную ltpop)в пользовательской функции объявить. В данном случае компилятор ругается - 'ltpop' - cannot convert enum. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 22 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 сентября, 2015 Подскажите как на MQL5 для пользовательской функции передать данные типа enum? Например функция GetLastLot (int ltpop, int y, double x, ) через переменную ltpop хочу передать тип ордера (ORDER_TYPE_BUY или ORDER_TYPE_SELL....)я даже не знаю как её (эту переменную ltpop)в пользовательской функции объявить. В данном случае компилятор ругается - 'ltpop' - cannot convert enum. Читать здесьОбъявлять так:ENUM_ORDER_TYPE ltpopПередать в функцию, можно так: bool f_OrderSend ( ENUM_ORDER_TYPE ltpop, double lot, ....,...,....,... ){ // ... здесь код функции} 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sany2912 Опубликовано 23 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 сентября, 2015 Друзья, здравствуйте :) !!! Помогите, пожалуйста, как определить максимальный фрактал из всех, за последние 50 баров??? Заранее, благодарю. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 23 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 сентября, 2015 Друзья, здравствуйте :) !!! Помогите, пожалуйста, как определить максимальный фрактал из всех, за последние 50 баров???По количеству свеч до и после или по количеству пунктов между пред и след. фракталом? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sany2912 Опубликовано 23 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 сентября, 2015 Друзья, здравствуйте :) !!! Помогите, пожалуйста, как определить максимальный фрактал из всех, за последние 50 баров???По количеству свеч до и после или по количеству пунктов между пред и след. фракталом? нет, проблема вот в чем: за период в 50 последних свечей, необходимо определить какой фрактал из всех сформированных имеет максимальную цену. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 24 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 сентября, 2015 Sany2912 - подумайте, ведь локальный максимум обязательно принадлежит фракталу! нафиг перебирать фракталы - ищи максимум и всё. с помощью ф-ции: double H50 = High [ iHighest ( NULL, 0, MODE_HIGH, 50, 1 ) ]; Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sany2912 Опубликовано 24 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 сентября, 2015 Sany2912 - подумайте, ведь локальный максимум обязательно принадлежит фракталу! нафиг перебирать фракталы - ищи максимум и всё. с помощью ф-ции: double H50 = High [ iHighest ( NULL, 0, MODE_HIGH, 50, 1 ) ]; да, но цель именно в переборе фракталов! потому что будут нужны и фракталы, которые есть между локальными максимумами. Вы знаете этот способ перебора фракталов? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Kiman Опубликовано 24 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 сентября, 2015 Уважаемые знатоки MQL начинаю программировать и не получается у меня связать индикатор с разрабатываемым советником. :-s Помогите пожалуйста, в долгу не останусь. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 сентября, 2015 Sany2912 создаётся массив куда пишутся данные фракталов. в 1 размерность пишется цена хая и после заполнения массива сортируется по цене. В итоге Вы получаете данные всех фракталов за период в отсортированном по цене виде. Есть другой путь - каждый раз проводить поиск максимума с ограничением, т.е. ищем максимум цены, но менее чем цена такая-то...Kiman выложите индюк, а я дам Вам строку подключения (получения данных из буфера) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sany2912 Опубликовано 25 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 сентября, 2015 Sany2912 создаётся массив куда пишутся данные фракталов. в 1 размерность пишется цена хая и после заполнения массива сортируется по цене. В итоге Вы получаете данные всех фракталов за период в отсортированном по цене виде. 0ll, можно хотя бы маленький кусочек кода, как заполнить массив данными фракталов? Пожалуйста... :-s Добавлено: 25-09-2015 10:02:110ll, можно хотя бы маленький кусочек кода, как заполнить массив данными фракталов? Пожалуйста... :-s Изменено 25 сентября, 2015 пользователем Sany2912 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 сентября, 2015 0ll, можно хотя бы маленький кусочек кода, как заполнить массив данными фракталов? Пожалуйста... :-sА какие данные нужны-то?В общем картина такая:- объявляете массив double arFR[15][2]; // 15 - предполагаемый максимум фракталов в диапазоне, если бар=50, а фрактал = 3 барам, то 50 / 3 = 17 - максимум. [2] - это поля для данных фрактала 1- цена, 2 - время (например) и т.д. кстати время надо привести к типу дабл.- заполняете массив там, где ищите фракталы в неком цикле.- после цикла поиска сортируете в любом порядке. Я предпочитаю по убыванию - тогда нули незаполненных ячеек массива будут в конце. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sany2912 Опубликовано 28 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 сентября, 2015 В общем картина такая:- объявляете массив double arFR[15][2]; // 15 - предполагаемый максимум фракталов в диапазоне, если бар=50, а фрактал = 3 барам, то 50 / 3 = 17 - максимум. [2] - это поля для данных фрактала 1- цена, 2 - время (например) и т.д. кстати время надо привести к типу дабл.- заполняете массив там, где ищите фракталы в неком цикле.- после цикла поиска сортируете в любом порядке. Я предпочитаю по убыванию - тогда нули незаполненных ячеек массива будут в конце.Oll, спасибо за ответ! Только он мне совсем не понятен ~x( . Я могу найти только ближайший фрактал, но у меня так и не получается сравнить: какой же из них имеет максимальную цену?! Помогите, пожалуйста разобраться... Отправляю код.Добавлено: 28-09-2015 12:50:48Oll, я смог разобраться!!! Только вот теперь не могу понять, почему переменная "min" обнуляется?for(int n = 0; n { if(iFractals(NULL, 0, MODE_UPPER, n) != NULL) fractal_up = n + 1;//индекс бара ближайшего фрактала up if(iFractals(NULL, 0, MODE_LOWER, n) != NULL) fractal_low = n + 1; } for(int i = 0; i { price_up = iHigh(NULL, 0, fractal_up - i); price_low = iLow(NULL, 0, fractal_low - i);//заполнение массива мин.ценами } int index_max_price = ArrayMaximum(price_up, WHOLE_ARRAY, 0); int index_min_price = ArrayMinimum(price_low, WHOLE_ARRAY, 0); double max = price_up[index_max_price]; double min = price_low[index_min_price];//присвоение переменной мин.цену Comment("max: ", max, ", min: ", min);//в комментариях переменная min иногда равна нулю, из за чего?Oll_help_please.mq4 Изменено 28 сентября, 2015 пользователем Sany2912 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 29 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 сентября, 2015 Sany2912 Ваш код не рабочий. совсем. Имейте в виду, что на исследуемом участке фракталов может и не быть.Можно решить проблему в лоб, без массива, если анализ максимума делать в цикле поиска фрактала, типа:- нашли фрактал- сравниваем его хай с максимальным хаем, если больше, то пишем в макс., иначе следующий. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sany2912 Опубликовано 30 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 сентября, 2015 Здравствуйте, уважаемые программисты! Помогите советом как написать код, что бы отложенные ордера удалялись по одному, последовательно? Например, есть три отложенных ордера, при появлении четвертого, самый первый должен удалиться, при появлении пятого, удаляется второй и т.д... Ссылка на сообщение Поделиться на другие сайты More sharing options...
JR Опубликовано 30 сентября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 сентября, 2015 Sany2912, смотря как вы устанавливаете отложки. Если это сетка, то можно искать с наименьшей (наибольшей) ценой и удалять. Т.е. если, ордеров больше чем макс_ордер, то ищем среди наших отложек самый первый по низшей-высшей цене и удаляем. Ну это как один из вариантов, можно комментировать и по комменту искать, можно и по другому, смотря какая у вас задача. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти