ilnur17021992 Опубликовано 12 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 12 февраля, 2017 Подскажите, как можно сделать в коде советника простейшую инфопанель в виде прямоугольника с фоном и в него выводить значения из функции fComments()? Спойлер void fComment() { Comment( "Сделка: "+DirString+"\n"+ "Направление тренда: "+TrendString+"\n"+ (string)fWorkTime() // и прочие, которые меняются в зависимости от цели тестирования } На mql4 это выглядит так, не думаю что на mql5 сильно отличается:extern color BackgroundColor = clrBlack;extern color TextColor = clrWhite;void start(){ ObjectCreate(0, "Fon", OBJ_RECTANGLE_LABEL, 0, 0, 0); // Создание объ. ObjectSetInteger(0, "Fon", OBJPROP_CORNER, 0); // Привязка угол ObjectSetInteger(0, "Fon", OBJPROP_XDISTANCE, 5); // Координата Х ObjectSetInteger(0, "Fon", OBJPROP_YDISTANCE, 35); // Координата Y ObjectSetInteger(0, "Fon", OBJPROP_XSIZE, 200); // Ширина фона ObjectSetInteger(0, "Fon", OBJPROP_YSIZE, 200); // Высота фона ObjectSetInteger(0, "Fon", OBJPROP_BGCOLOR, BackgroundColor); // Цвет фона ObjectCreate("Сделка", OBJ_LABEL, 0, 0, 0); // Создание объ. ObjectSet("Сделка", OBJPROP_CORNER, 0); // Привязка угол ObjectSet("Сделка", OBJPROP_XDISTANCE, 15); // Координата Х ObjectSet("Сделка", OBJPROP_YDISTANCE, 45); // Координата Y ObjectSetText("Сделка",(string)DirString,10,"Arial",TextColor); // Заполняем текст ObjectCreate("Направление тренда", OBJ_LABEL, 0, 0, 0); // Создание объ. ObjectSet("Направление тренда", OBJPROP_CORNER, 0); // Привязка угол ObjectSet("Направление тренда", OBJPROP_XDISTANCE, 15); // Координата Х ObjectSet("Направление тренда", OBJPROP_YDISTANCE, 60); // Координата Y ObjectSetText("Направление тренда",(string)TrendString,10,"Arial",TextColor); // Заполняем текст ObjectCreate("WorkTime", OBJ_LABEL, 0, 0, 0); // Создание объ. ObjectSet("WorkTime", OBJPROP_CORNER, 0); // Привязка угол ObjectSet("WorkTime", OBJPROP_XDISTANCE, 15); // Координата Х ObjectSet("WorkTime", OBJPROP_YDISTANCE, 75); // Координата Y ObjectSetText("WorkTime",(string)fWorkTime() ,10,"Arial",TextColor); // Заполняем текст}void deinit() { //Удаление объектов ObjectDelete("Fon"); ObjectDelete("Сделка"); ObjectDelete("Направление тренда"); ObjectDelete("WorkTime");} 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Иван В Опубликовано 12 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 12 февраля, 2017 Добрый день! Пытаюсь переложить советника с МТ4 в МТ5, с хендлами и динамическими массивами разобрался, затык пока в написании команды на открытия ордера с tp и sl, без условий и риска. Смотрел видео по открытию ордеров через OClass, хочу через него, но ни чего не понятно. Написание советников на МТ4 освоил на ваших вебинарах, очень доступные на понимание. Жду продолжения по МТ5. А сейчас подскажите как написать функцию по открытию ордера или где прочитать. Прилагаю мой старый код из МТ4 по открытию позиции.//----------открытие ордеров---------------------------------- if(CountSell()+CountBuy()==0 && MaFast1 { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"15",Magic,0,Red); if(ticket>0) { SL = NormalizeDouble(Bid + StopLoss*Point, Digits); TP = NormalizeDouble(Bid - TakeProfit*Point, Digits); if(OrderSelect(ticket,SELECT_BY_TICKET)) if(!OrderModify(ticket,OrderOpenPrice(),SL,TP,0)) Print("Ошибка модификации ордера на продажу!"); } else Print("Ошибка открытия ордера на продажу!"); } if(CountSell()+CountBuy()==0 && MaFast1>MaSlow1) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"15",Magic,0,Blue); if(ticket>0) { TP = NormalizeDouble(Ask + TakeProfit*Point, Digits); SL = NormalizeDouble(Ask - StopLoss*Point, Digits); if(OrderSelect(ticket,SELECT_BY_TICKET)) if(!OrderModify(ticket,OrderOpenPrice(),SL,TP,0)) Print("Ошибка модификации ордера на покупку!"); } else Print("Ошибка открытия ордера на покупку!"); } Ссылка на сообщение Поделиться на другие сайты More sharing options...
kofesutra Опубликовано 13 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 13 февраля, 2017 На mql4 это выглядит так Спасибо за советы, камрад! Всё удалось сделать! :) 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
galaxy07 Опубликовано 13 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 13 февраля, 2017 у меня открытие ордера сейчас вот так://это располагаем вверху#include CTrade *trade;//а это непосредственно перед открытием ордераtrade.Sell(0.1,_Symbol,Bid,SL,TP,comment); 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Бешеный хомяк Опубликовано 13 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 13 февраля, 2017 Самое жирное в mt5 это возможность юзать фьючерсные объемы + лента принтов (возможная работа с футпринтом) \M/ Было бы хорошо разобраться в этом направлении ;;) Ссылка на сообщение Поделиться на другие сайты More sharing options...
kofesutra Опубликовано 14 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 14 февраля, 2017 Здравствуйте все!Первый вопрос: подскажите, пожалуйста, по каким признакам можно понять, что позиция была закрыта именно по стоп-лоссу?Это нужно для принятия решения по следующей сделке.Можно не писать для меня код, главное дайте способ :) А то сам не соображу. И второй вопрос: можно ли при закрытии сделки с рынка trade.PositionClose(ticket,slippage) добавить свой comment? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Иван В Опубликовано 14 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 14 февраля, 2017 Всем привет! Помогите разобраться, нашел советник, на мой взгляд хорошая заготовка, в нем есть проверка на уже открытые позиции, но она не работает, если поставить большие SL и TP, то открываются ордера в одном направлении, а если открываются встречные, то они не закрывают первые, а закрываются только по TP или SL. Как я понимаю этого в МТ5 быть не должно. Советник прилагаю. my_first_mql5_.mq5 Ссылка на сообщение Поделиться на другие сайты More sharing options...
ilnur17021992 Опубликовано 15 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 15 февраля, 2017 Здравствуйте все!Первый вопрос: подскажите, пожалуйста, по каким признакам можно понять, что позиция была закрыта именно по стоп-лоссу? Через сравнение цены закрытия позиции с ценой стоп лоса этой позиции...//+----------------------------------------------------------------------------+//| Описание : Возвращает флаг закрытия последней позиции по стопу. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) { datetime t; double ocp, osl; int dg, i, j=-1, k=OrdersHistoryTotal(); if (sy=="0") sy=Symbol(); for (i=0; i if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op if (mn if (t t=OrderCloseTime(); j=i; } } } } } } } if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) { dg=MarketInfo(sy, MODE_DIGITS); if (dg==0) if (StringFind(OrderSymbol(), "JPY") ocp=NormalizeDouble(OrderClosePrice(), dg); osl=NormalizeDouble(OrderStopLoss(), dg); if (ocp==osl) return(True); } return(False);} 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kofesutra Опубликовано 15 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 15 февраля, 2017 Через сравнение цены закрытия позиции с ценой стоп лоса этой позиции Благодарю Вас! Принцип ясен - пойду делать ;) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Romhacker Опубликовано 15 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 15 февраля, 2017 Всем привет! Помогите разобраться, нашел советник, на мой взгляд хорошая заготовка, в нем есть проверка на уже открытые позиции, но она не работает, если поставить большие SL и TP, то открываются ордера в одном направлении, а если открываются встречные, то они не закрывают первые, а закрываются только по TP или SL. Как я понимаю этого в МТ5 быть не должно. Советник прилагаю. Значит, у твоего брокера хеджинговая система учёта позиции, т.е. как в mt4. Это значит, что по одному инструменту можно держать несколько открытых позиций как в одну, так и в другую сторону. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Иван В Опубликовано 20 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 20 февраля, 2017 Значит, у твоего брокера хеджинговая система учёта позиции, т.е. как в mt4. Это значит, что по одному инструменту можно держать несколько открытых позиций как в одну, так и в другую сторону. Спасибо за ответ, хотя я уже разобрался, добавил пару завитушек и стало все в порядке. Теперь советник работает на форексе, а на форсе нееееет. И готовых решений в инете тоже неееет, может кто подскажет, где можно недорого приобрести рабочую заготовку для фортса? Возможно у кого-то был удачный опыт сотрудничества с программистами в данном вопросе, чувствую сам от начала и до конца советник для фортса не осилю. Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 20 февраля, 2017 Автор Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 20 февраля, 2017 В шапку темы добавлено голосование. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Иван В Опубликовано 21 февраля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 21 февраля, 2017 В шапку темы добавлено голосование. Всем привет, особый поклон администратору! Если торговать на форексе, то конечно же достаточно только МТ4.MQL5 (МТ5) это продукт для российской биржи, придет время и все будут перебираться на российскую (реальную) биржу и тогда ваши вебинары будут очень востребованы. На сайте робофорекс есть 8 занятий по МТ5 от 2014 года, но они не так понятны в изложении, как у вас, хотя им то же большое спасибо. По мне, так не надо заморачиваться с советником МТ5 для форекса, на них все равно ни кто не торгует (имхо), а если кому надо, то и сами напишут, я себя чайником считаю в программировании и то за две недели перекинул своего советника с МТ4 на МТ5, советник на МТ4 написал по вашим вебинарам в них информации достаточно.Поэтому перескочите сразу на основу советника по рынку фортс, так как это совершенно другой принцип построения кода (конкретное время торговли, бары, вход в сделки, шаг в разных пунктах и пр.) И ваш сайт от этого только выиграет, т.к. по фортсу в сети ни чего путевого нет, а вы открывайте параллельно платные услуги по созданию советников для фортса. Я бы и сам у вас шаблон заказал, стратегию сам добавлю. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Alex79017 Опубликовано 3 марта, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 3 марта, 2017 Уважаемые программисты!Помогите чайнику!Как правильно подключаться к стандартной библиотеке классов mql5 ?В частности к linalg:- подключил библиотеку по #include- выбрал элемент класса-типы входных параметров функции объявлены как в в объявлении классаПри компиляции выдает ошибку типа входного параметра функции?Возможно что-то упустил при подключении библиотек? ЧТО? Изменено 3 марта, 2017 пользователем Alex79017 Ссылка на сообщение Поделиться на другие сайты More sharing options...
dzennn2 Опубликовано 12 марта, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 12 марта, 2017 Тимур Машнин. Язык программирования MQL5 Mashnin_T_Yazyik_Programmirovaniya_.a4.pdf 7 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kisigal Опубликовано 4 апреля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 4 апреля, 2017 У меня такая же проблема... есть работающий скрипт в TSLab, есть кто перенесет его в МТ5? Ссылка на сообщение Поделиться на другие сайты More sharing options...
kofesutra Опубликовано 5 апреля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 5 апреля, 2017 Здравствуйте, коллеги!Подскажите, можно ли сделать при выборе параметров эксперта выпадающее меню по аналогии с bool, но с фиксированным набором цифр, например от 0 до 3?Вот по такому принципу Ссылка на сообщение Поделиться на другие сайты More sharing options...
edmigo Опубликовано 5 апреля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 5 апреля, 2017 конечно можно, пример кода:enum ELessSession {_1_Order, _2_Orders, _3_Orders, _4_Orders, _5_Orders};extern ELessSession eLessSessionTPAfter = _3_Orders; 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kofesutra Опубликовано 5 апреля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 5 апреля, 2017 конечно можно Замечательно! Спасибо огромное, edmigo! :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
kofesutra Опубликовано 12 апреля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 12 апреля, 2017 Здравствуйте все! Вопрос по MQL5.Мне хочется вставлять комменты в функцию закрытия сделки по тикету.Пока пользовался классом CTrade, но он не даёт такую возможность.То есть надо использовать OrderSend, правильно?Тут я не понимаю: https://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions#trade_action_deal в примере пишется функция OnStart. Или можно прописать всё в пользовательскую функцию и вызывать её при необходимости?Надо ли что-то добавлять в OnInit?И не будет ли конфликтов, если я закрытие напишу через OrderSend, а открытия и модификации оставлю на базе класса CTrade?Спасибо! Добавлено: 13-04-2017 07:14:04Решил вот как:Файл с классом CTrade лежит по пути MQL5/Include/Trade/Trade.mhq Плюс в этой же папке ещё несколько, которые он использует.Я скопировал содержимое всей папки MQL5/Include/Trade/ в свою MQL5/Include/ARG, внёс изменения в файл Trade.mhq, переименовал его и уже его прописал в советник#include Можно, конечно, было подправить пути в Trade.mhq и не копировать папку целиком, но не принципиально.Мало ли, обновления придут и затрут исходный Trade.mhq? А мой в другом месте лежит Изменено 13 апреля, 2017 пользователем kofesutra 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kofesutra Опубликовано 18 апреля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 18 апреля, 2017 Здравствуйте, все! Чего-то я туплю совсем, помогите, друзья!Задача: написать функцию проверки есть ли открытая позиция по инструменту (паре) и мэджику или позиции нет.Предполагается, что на одной паре разные советники (с разными мэджиками) могут открывать не больше одной сделки. Вот так будет верно? bool fPositionPresenceCheck(){bool z=false; if(PositionsTotal()==0) {z=false;} else { string deal_symbol=""; long deal_magic=0; for(int x=PositionsTotal();x>0;x--) { deal_symbol=PositionGetSymbol(x); deal_magic=PositionGetInteger(POSITION_MAGIC); if(deal_symbol==_Symbol && deal_magic==_Magic) {z=true; break;} } }return(z);} Ссылка на сообщение Поделиться на другие сайты More sharing options...
IntellectualAgent01 Опубликовано 22 апреля, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 22 апреля, 2017 Здравствуйте, все! Чего-то я туплю совсем, помогите, друзья!Задача: написать функцию проверки есть ли открытая позиция по инструменту (паре) и мэджику или позиции нет.Предполагается, что на одной паре разные советники (с разными мэджиками) могут открывать не больше одной сделки. Вот так будет верно? bool fPositionPresenceCheck(){bool z=false; if(PositionsTotal()==0) {z=false;} else { string deal_symbol=""; long deal_magic=0; for(int x=PositionsTotal();x>0;x--) { deal_symbol=PositionGetSymbol(x); deal_magic=PositionGetInteger(POSITION_MAGIC); if(deal_symbol==_Symbol && deal_magic==_Magic) {z=true; break;} } }return(z);} Если уверены, что позиций по символу не может быть больше 1, в MQL5 достаточно использовать функцию PositionSelect. _https://www.mql5.com/ru/docs/trading/positionselectСкажем, PositionSelect("EURUSD") вернет true, если по этой паре есть поза (ну и, после успешного выполнения PositionSelect можно запрашивать разные свойства выбранной позиции функциями вроде PositionGetString. Например, проверить тот же magic с помощью PositionGetInteger(POSITION_MAGIC))P. S.: А ваш код некорректен уже потому, что вы пытаетесь получить свойства позиции, не выделив её сначала с помощью функций PositionSelect или PositionSelectByTicket Изменено 23 апреля, 2017 пользователем Pavel888 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Камолиддин Опубликовано 4 мая, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 4 мая, 2017 Уважаемые программисты. Если у кого то появится свободное время и желание помочь ближнему >:dБольшое спасибо. _sx_ClearMethod_MTF.mq4_simplex_ClearMethod.mqhCCFp_mtf_-_alerts_2.03_composite__1.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Mikki Mouse Опубликовано 7 мая, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 7 мая, 2017 Привет MQL5-шникам!Проще всего создать советник через мастер редактора MQL5! Мне понравилась там система весовых коэффициентов для каждого индикатора!К сожалению, нет в списке индикатора Volumes... Кто подскажет, где взять для него сигнальную библиотеку? Заранее спасибо! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Piksil Опубликовано 13 мая, 2017 Поделиться Обучение языку MQL5 под MetaTrader 5 Опубликовано 13 мая, 2017 Доброго всем дня, прошу помочь.Необходимо пометить стрелкой найденный бар, на графике. В справочнике слишком сложный для меня пример. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти