dermitay Опубликовано 26 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 мая, 2021 10 минут назад, Lexa000 сказал: Вот такой Советник iSmart.mq4 21 \u043a\u0411 · 0 загрузок очевидно же в блоке Drawdown if(Close[1]>Open[1]) if(iPointOrderStepLoss>0 && b>0 && (BuyPriceMin-Ask)>iPointOrderStepLoss*Point()) if(OrderSend(Symbol(),OP_BUY,NormalizeDouble(iStartLots,2),NormalizeDouble(Ask,Digits()),iSlippage,0,0,"iSmart",iMagicNumber,0,clrGreen)<0) Print("OrderSend error #",GetLastError()); if(Close[1]<Open[1]) if(iPointOrderStepLoss>0 && s>0 && (Bid-SelPriceMax)>iPointOrderStepLoss*Point()) if(OrderSend(Symbol(),OP_SELL,NormalizeDouble(SelLot,2),NormalizeDouble(Bid,Digits()),iSlippage,0,0,"iSmart",iMagicNumber,0,clrGreen)<0) Print("OrderSend error #",GetLastError()); надо вот так if(Close[1]>Open[1]) if(iPointOrderStepLoss>0 && b>0 && (BuyPriceMin-Ask)>iPointOrderStepLoss*Point()) if(OrderSend(Symbol(),OP_BUY,NormalizeDouble(BuyLot,2),NormalizeDouble(Ask,Digits()),iSlippage,0,0,"iSmart",iMagicNumber,0,clrGreen)<0) Print("OrderSend error #",GetLastError()); if(Close[1]<Open[1]) if(iPointOrderStepLoss>0 && s>0 && (Bid-SelPriceMax)>iPointOrderStepLoss*Point()) if(OrderSend(Symbol(),OP_SELL,NormalizeDouble(SelLot,2),NormalizeDouble(Bid,Digits()),iSlippage,0,0,"iSmart",iMagicNumber,0,clrGreen)<0) Print("OrderSend error #",GetLastError()); скорее всего Изменено 26 мая, 2021 пользователем dermitay Ссылка на сообщение Поделиться на другие сайты More sharing options...
Lexa000 Опубликовано 27 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 мая, 2021 6 часов назад, dermitay сказал: очевидно же в блоке Drawdown if(Close[1]>Open[1]) if(iPointOrderStepLoss>0 && b>0 && (BuyPriceMin-Ask)>iPointOrderStepLoss*Point()) if(OrderSend(Symbol(),OP_BUY,NormalizeDouble(iStartLots,2),NormalizeDouble(Ask,Digits()),iSlippage,0,0,"iSmart",iMagicNumber,0,clrGreen)<0) Print("OrderSend error #",GetLastError()); if(Close[1]<Open[1]) if(iPointOrderStepLoss>0 && s>0 && (Bid-SelPriceMax)>iPointOrderStepLoss*Point()) if(OrderSend(Symbol(),OP_SELL,NormalizeDouble(SelLot,2),NormalizeDouble(Bid,Digits()),iSlippage,0,0,"iSmart",iMagicNumber,0,clrGreen)<0) Print("OrderSend error #",GetLastError()); надо вот так if(Close[1]>Open[1]) if(iPointOrderStepLoss>0 && b>0 && (BuyPriceMin-Ask)>iPointOrderStepLoss*Point()) if(OrderSend(Symbol(),OP_BUY,NormalizeDouble(BuyLot,2),NormalizeDouble(Ask,Digits()),iSlippage,0,0,"iSmart",iMagicNumber,0,clrGreen)<0) Print("OrderSend error #",GetLastError()); if(Close[1]<Open[1]) if(iPointOrderStepLoss>0 && s>0 && (Bid-SelPriceMax)>iPointOrderStepLoss*Point()) if(OrderSend(Symbol(),OP_SELL,NormalizeDouble(SelLot,2),NormalizeDouble(Bid,Digits()),iSlippage,0,0,"iSmart",iMagicNumber,0,clrGreen)<0) Print("OrderSend error #",GetLastError()); скорее всего Да, перепутал. Если использовать AccountBalance к этому советнику, то можно сделать так как я спрашивал? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Lexa000 Опубликовано 27 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 мая, 2021 Я про создание правила, против сетки ордеров 0.10 открытие стартового лота составляло лот 0.02, против сетки 0.20 в продажу составляло стартовый лот 0.03. Вот так Ссылка на сообщение Поделиться на другие сайты More sharing options...
Lexa000 Опубликовано 27 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 мая, 2021 Или остановку убыточной сетки, открывая сделки в одном направлении потихоньку закрывая убыток Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 27 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 мая, 2021 18 минут назад, Lexa000 сказал: Или остановку убыточной сетки, открывая сделки в одном направлении потихоньку закрывая убыток с точки зрения математики и торговой логики это будет правильнее. Локирование вообще тупиковое направление- дешевле сразу закрывать убыточный ордер и открывать встречный Ссылка на сообщение Поделиться на другие сайты More sharing options...
Lexa000 Опубликовано 27 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 мая, 2021 7 минут назад, usver73 сказал: с точки зрения математики и торговой логики это будет правильнее. Локирование вообще тупиковое направление- дешевле сразу закрывать убыточный ордер и открывать встречный Да, я знаю, это долгий процесс, хотелось бы найти золотую середину Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 27 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 мая, 2021 14 минут назад, Lexa000 сказал: Да, я знаю, это долгий процесс, хотелось бы найти золотую середину нет золотой середины. Либо сетка без локирования, либо один ордер в рынке Ссылка на сообщение Поделиться на другие сайты More sharing options...
Lexa000 Опубликовано 27 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 мая, 2021 15 минут назад, usver73 сказал: нет золотой середины. Либо сетка без локирования, либо один ордер в рынке Сетка без локирование может оказаться убыточной, поэтому и задал такой вопрос Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 27 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 мая, 2021 10 минут назад, Lexa000 сказал: Сетка без локирование может оказаться убыточной, поэтому и задал такой вопрос Точнее, она может привести к сливу. Можно сетку стопить при определенном уровне убытка. И в этот момент открывать встречный ордер. Тогда это будет осмысленно. Но это вопрос ММ и в этой ветке оффтоп.. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Lexa000 Опубликовано 27 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 мая, 2021 https://www.mql5.com/ru/articles/5596 Нашёл статью. Мне нужно понять как создать такую стратегию в советнике при достижении массива сетки в сумме 0.15 открывать противоположную с 0.02, либо при достижении массива сетки в сумме 0.15 останавливать частично закрывая прибыльным лотом. Что-то подобное Ссылка на сообщение Поделиться на другие сайты More sharing options...
Al2ex3 Опубликовано 30 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2021 Прохожу обучение, есть вопрос: Как запретить открытие ордеров в торговом советнике mql4 определённых валютных пар? Пары буду указывать в F7 через точку с запятой. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Al2ex3 Опубликовано 30 мая, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2021 Второй вопрос: как в советнике реализовать привязку лотности к вручную указанному значению в F7? Не к балансу счёта, а именно к цифре, желательно через F7. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Александр I Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 Отчаянно всех приветствую! Господа!... и дамы разумеется. В девятом уроке базового курса упоминается некий урок, в котором разбирались массивы. Я прям очень внимательно смотрел все предыдущие восемь, но про массивы там ни слова. Может найдется добрая душа и подскажет где можно найти урок по массивам автора курса. В продвинутых уроках есть видео другого автора, но хотелось бы посмотреть именно Сергея. Спасибо всем не равнодушным к проблеме страждущего знаний, тройных профитов и +100500 к карме! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rever27 Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 2 часа назад, Александр I сказал: Спасибо всем не равнодушным к проблеме страждущего знаний, тройных профитов и +100500 к карме! https://mql.su/mql4/dimensions/ http://mql.su/wp-content/uploads/2017/09/Studmed.ru_kovalev-mql4.pdf страница 230 Буду ждать карму. Изменено 2 июня, 2021 пользователем Rever27 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
diodio Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 Всем доброго времени. Вопрос такой, мне нужно изначально в параметрах советника прописать флаги для торговли, допустим уже идет продажа но она возможно заканчивается и советнику необходимо сразу поставить флаг на покупку, т.к. в продажу уже не успели. Для этого я прописываю в шапке параметры: input bool trade_flag_buy = true; input bool trade_flag_sell = false; Теперь когда закончилась продажа, советник зашел в покупку, после закрыл ордер покупки и вот здесь мне нужно чтоб флаги переключились, т.е. нельзя писать так: trade_flag_buy = false; trade_flag_sell = true; Для этого я так понимаю нужно завести еще пару булевых переменных и приравнять их к тем переменным в шапке: bool flag_buy = trade_flag_buy; bool flag_sell = trade_flag_sell; И собственно сам вопрос, в каком месте советника это написать, чтобы код работал уже со свежими значениями переменных flag_buy и flag_sell ? Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 @diodio Приветствую! Я не пойму зачем столько переменных, если можно обойтись всего одной. input bool trade_flag = true; Если есть торговля на продажу или покупку это всего два режима. Эти два режима может вместить всего одна переменная. покупка trade_flag = true равнозначно и бессмысленно trade_flag_buy = true; trade_flag_sell = false; следовательно равнозначно и бессмысленно flag_buy = trade_flag_buy;flag_sell = trade_flag_sell; продажа trade_flag=false; равнозначно и бессмысленно trade_flag_buy = false; trade_flag_sell = true; следовательно равнозначно и бессмысленно flag_buy = trade_flag_buy; flag_sell = trade_flag_sell; 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
diodio Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 8 минут назад, MikR0ReR сказал: Приветствую! Я не пойму зачем столько переменных, если можно обойтись всего одной. input bool trade_flag = true; Если есть торговля на продажу или покупку это всего два режима. Эти два режима может вместить всего одна переменная. Хорошо, спорить не буду, так как ее переключить потом после того как я первый раз введу ее в шапке? Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 1 минуту назад, diodio сказал: Хорошо, спорить не буду, так как ее переключить потом после того как я первый раз введу ее в шапке? не въезжаю зачем руками делать такие пляски. если условие переключения "режимов" бай и селл можно описательны и формализованы, то можно это все закодить. Ссылка на сообщение Поделиться на другие сайты More sharing options...
diodio Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 Только что, dermitay сказал: не въезжаю зачем руками делать такие пляски. если условие переключения "режимов" бай и селл можно описательны и формализованы, то можно это все закодить. Я первый раз не успел к примеру зайти в продажу, буду заходить после продажи в покупку, для этого я ставлю флаг в советнике один раз, далее хотелось бы чтоб советник переключал самостоятельно и я уже руками не лез, вот в чем вопрос) Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 @diodio в том месте где ты считаешь что пора там и меняешь значение переменной. Ссылка на сообщение Поделиться на другие сайты More sharing options...
diodio Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 Только что, MikR0ReR сказал: в том месте где ты считаешь что пора там и меняешь значение переменной. Это у меня вызвало ошибку, значение именно этой переменной что прописана в шапке изначально нельзя менять! Поэтому или надо создавать новую переменную, или прописывать в какое-то событие чтоб код сверху - донизу читался уже со свежим значением переменной. Я просто хочу понять как грамотно это сделать. Ссылка на сообщение Поделиться на другие сайты More sharing options...
diodio Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 К примеру код: input bool trade_flag = true; ........................................................ void OnTick() { if(trade_flag == true) { открываем покупку trade_flag = false; } else if(trade_flag == false) { открываем продажу trade_flag = true; } } Вот в таком виде не переключается и вызывает ошибку. Как переключить? Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 2 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 июня, 2021 @diodio input поменяй на extern. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Gamakiv Опубликовано 3 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 июня, 2021 Доброго времени суток, Господа! Подскажите, каким образом и вообще возможно ли узнать, что ордер закрыл человек, а не советник? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Владимир Стариков Опубликовано 9 июня, 2021 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 июня, 2021 Добрый день! Кто-нибудь, подскажите пожалуйста, как можно узнать точное время (в формате ч:м:сек) пересечения цены и индикатора, например скользящей средней? Спасибо! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти