usver73 Опубликовано 20 мая, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 мая, 2019 Поэтому я каждый ордер оборачиваю в класс и на каждом тике контролирую его состояние (есть ли он физически и не поменялись ли его параметры). При этом контролируется только ордера с которыми работает советник. Простите, а каким образом Вы их контролируете? Не OrderSelect-ом? 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 21 мая, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 мая, 2019 Новый урокhttp://tlap.com/mql4-metod-webrequest/ 4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
vikneo Опубликовано 30 мая, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2019 Здравствуйте! Пожалста, можно создать видеоурок на создание инфо панели для mql4? Заранее буду очень благодарен!!! ... И думаю не только я... )) Изменено 1 июня, 2019 пользователем vikneo Ссылка на сообщение Поделиться на другие сайты More sharing options...
ZloyZam Опубликовано 30 мая, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 мая, 2019 Основная ошибка начинающих в работе с ордерами - это тупо каждый раз искать его среди открытых по Magic, OrderSelect достаточно "дорогая" функцияВам встречалось частичное закрытие? Сейчас модно закрыть часть ордера, а другая часть может висеть в рынке с другим тикетом, имхо здесь без цикла с OrderSelect не обойтись. Новичков лучше не сбивать - пусть по старинке через цикл ордера контролируют, тем более 90% не слышали о классах вообще ничего. Конечно встречалась и даже сам как-то реализовывал (редкий надо сказать зверь, да и не все ДЦ поддерживают).Решается примерно так (общий смысл):bool COrder::Closing(double mCloseLot=0.0){ if (cFlag>ORDER_MUST_CLOSE) return true; cFlag=ORDER_MUST_CLOSE; if (!OrderSelect(cTicket,SELECT_BY_TICKET)) return false; if (OrderCloseTime()) {CheckPartialClose(); return true;} if (!mCloseLot||mCloseLot>cLot) mCloseLot=cLot; bool isPartial=NormalizeDouble(mCloseLot-cLot,cLotDigits)!=0.0; if (!OrderClose(cTicket,mCloseLot,0.0,SHORT_MAX)) return false; if (isPartial){ ReInitValues(); cFlag=ORDER_DEAL;} else cFlag=ORDER_CLOSED; return true;} Изменено 31 мая, 2019 пользователем ZloyZam 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
nelenaby Опубликовано 3 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 июня, 2019 Здравствуйте. Учусь писать советников. Подскажите плиз, что не так в нем. Это первая попытка :( советник.txt Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 3 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 июня, 2019 Подскажите плиз, что не так в нем А что Вы от него ожидаете?Что в нем не так ? :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
nelenaby Опубликовано 3 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 июня, 2019 Подскажите плиз, что не так в нем А что Вы от него ожидаете?Что в нем не так ? :) Ошибки в тестере выдает (OrderModify error 1, OrderModify error 130) и закрывает как-то не так. По плану было: Сначала выставляются отложенники байстоп и селлстоп на величину стопа(например 40п). Дальше, если цена открывается бай, выставляется новый байстоп и подтягивается селстоп. Ну и в обратную сторону также. Изменено 3 июня, 2019 пользователем nelenaby Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 3 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 июня, 2019 Ошибки в тестере выдает (OrderModify error 1, OrderModify error 130) и закрывает как-то не так. Блин, в журнал не посмотрел :) else { //если есть байстоп модифицируем if (CountBuy()>=1)//и есть открытые бай { price_buystop = NormalizeDouble(price_buy+StopLoss*Point,Digits); TP= NormalizeDouble(price_buystop + TakeProfit*Point,Digits); SL= NormalizeDouble(price_buystop - StopLoss*Point,Digits); bool res = OrderModify(OrderTicket(),price_buystop,SL,TP,0,Blue); if(!res) Print("Ошибка модификации ордера buystop1. Код ошибки=",GetLastError()); else Print("ордер buystop1 успешно модифицирован."); } if (CountSell()>=1)//и есть открытые и селл { price_buystop = NormalizeDouble(price_sell+StopLoss*Point,Digits); TP= NormalizeDouble(price_buystop + TakeProfit*Point,Digits); SL= NormalizeDouble(price_buystop - StopLoss*Point,Digits); bool res = OrderModify(OrderTicket(),price_buystop,SL,TP,0,Blue); if(!res) Print("Ошибка модификации ордера buystop2. Код ошибки=",GetLastError()); else Print("ордер buystop2 успешно модифицирован."); } } Я не нашел- где выбирается OrderTicket(), который Вы пытаетесь модифицировать...И перед тем, как модифицировать ордер, нужно проверить- новые ТП/СЛ не совпадают с уже установленными ТП/СЛ ордера 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
ZloyZam Опубликовано 3 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 июня, 2019 Подскажите плиз, что не так в нем А что Вы от него ожидаете?Что в нем не так ? :) Ошибки в тестере выдает (OrderModify error 1, OrderModify error 130) и закрывает как-то не так. По плану было: Сначала выставляются отложенники байстоп и селлстоп на величину стопа(например 40п). Дальше, если цена открывается бай, выставляется новый байстоп и подтягивается селстоп. Ну и в обратную сторону также. Если судить по кодам ошибок, то:1 - это когда вы даете команду на изменение ордера, но при этом все его параметры повторяете.130 - неправильные стопы, сюда же относятся цены открытия отложек. Либо цена невалидна (например для buystop Ссылка на сообщение Поделиться на другие сайты More sharing options...
Mcdos Опубликовано 5 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 июня, 2019 Вопрос - а в MT4 есть команды позволяющие выгружать данные в Эксель?Было бы интересно выявлять характерные свойства Убыточных ордеров тех или иных советников.Может есть урок на эту тему? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 5 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 июня, 2019 Вопрос - а в MT4 есть команды позволяющие выгружать данные в Эксель?Создайте текстовый файл с разметкой .CSVего можно открыть и анализировать в ехеле. Ссылка на сообщение Поделиться на другие сайты More sharing options...
nixxer Опубликовано 5 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 июня, 2019 Вопрос - а в MT4 есть команды позволяющие выгружать данные в Эксель? Читайте документацию и проблем не будетhttps://www.metatrader4.com/ru/trading-platform/help/service/dde 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
ZloyZam Опубликовано 5 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 июня, 2019 Вопрос - а в MT4 есть команды позволяющие выгружать данные в Эксель?Было бы интересно выявлять характерные свойства Убыточных ордеров тех или иных советников.Может есть урок на эту тему? Если из робота организовывать, то примерно такuint Save(string fFileName,int fTicket){ if (!OrderSelect(fTicket,SELECT_BY_TICKET)) return 0; int hndl=FileOpen(fFileName,FILE_CSV|FILE_READ|FILE_WRITE); if (hndl==INVALID_HANDLE) return 0; FileSeek(hndl,0,SEEK_END); uint res=FileWrite(hndl, OrderSymbol(), (string)OrderType(), DoubleToString(OrderOpenPrice(),5), DoubleToString(OrderStopLoss(),5), DoubleToString(OrderTakeProfit(),5) //Что хотите, еще ); FileClose(hndl); return res;} 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
galaxy07 Опубликовано 6 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2019 Подскажите, как можно выбрать программно определенный символ из списка?Список символов, который расположен в тестере стратегий terminal_Fgiboj6c1K.png Ссылка на сообщение Поделиться на другие сайты More sharing options...
ZloyZam Опубликовано 6 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2019 Подскажите, как можно выбрать программно определенный символ из списка?Список символов, который расположен в тестере стратегий Никак. Ссылка на сообщение Поделиться на другие сайты More sharing options...
likepra Опубликовано 6 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2019 Сочинил индикатор с таким алгоритмом он ставит стрелки.diMA11=iMA(NULL,0,MA11,0,MODE_SMA,PRICE_CLOSE,i); diADX0=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_PLUSDI,i); diADX1=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_MINUSDI,i); diADX2=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_MAIN,i); diADX01=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_PLUSDI,i+1); diADX11=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_MINUSDI,i+1); diClose=iClose(NULL,0,i); //купить if(diADX0>diADX1 && diADX01Uroven && diClose>=diMA11) {BufUp=Low-ArrShift;pos=i;if(b);b=b+1;s=0;}} //продать if(diADX0diADX11 && diADX2>Uroven && diClose=High+ArrShift;pos=i;if(s);s=s+1;b=0;}}=======================Вопрос:Как по вершинам +DI его заставить ставить скрелку?Алгоритм такой:Есть вершины 3,2,1. Надо buy = 3>2 && 2Дальше я соображу как сделать полный алгоритм индикатора.Мне нужно знать как правиьно прописать первую вторую и третью вершины.Безымянный3.jpg Ссылка на сообщение Поделиться на другие сайты More sharing options...
ZloyZam Опубликовано 6 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2019 Сочинил индикатор с таким алгоритмом он ставит стрелки.diMA11=iMA(NULL,0,MA11,0,MODE_SMA,PRICE_CLOSE,i); diADX0=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_PLUSDI,i); diADX1=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_MINUSDI,i); diADX2=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_MAIN,i); diADX01=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_PLUSDI,i+1); diADX11=iADX(NULL,0,ADX13,PRICE_CLOSE,MODE_MINUSDI,i+1); diClose=iClose(NULL,0,i); //купить if(diADX0>diADX1 && diADX01Uroven && diClose>=diMA11) {BufUp=Low-ArrShift;pos=i;if(b);b=b+1;s=0;}} //продать if(diADX0diADX11 && diADX2>Uroven && diClose=High+ArrShift;pos=i;if(s);s=s+1;b=0;}}=======================Вопрос:Как по вершинам +DI его заставить ставить скрелку?Алгоритм такой:Есть вершины 3,2,1. Надо buy = 3>2 && 2Дальше я соображу как сделать полный алгоритм индикатора.Мне нужно знать как правиьно прописать первую вторую и третью вершины. Добавь еще два буфера для стрелок Ссылка на сообщение Поделиться на другие сайты More sharing options...
likepra Опубликовано 6 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2019 Добавь еще два буфера для стрелок Я старый алгоритм уберу и пропишу новый.Добавлено: 06-06-2019 16:56:54Мне нужно знать как правиьно прописать первую вторую и третью вершины. Ссылка на сообщение Поделиться на другие сайты More sharing options...
ZloyZam Опубликовано 6 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2019 Добавь еще два буфера для стрелок Я старый алгоритм уберу и пропишу новый.Добавлено: 06-06-2019 16:56:54Мне нужно знать как правиьно прописать первую вторую и третью вершины. Я думал у Вас с mql проблема, а Вы, оказывается, хотите, что бы Вам алгоритм написали, тогда Вам сюда:https://www.mql5.com/ru/job Ссылка на сообщение Поделиться на другие сайты More sharing options...
likepra Опубликовано 6 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 июня, 2019 Я думал у Вас с mql проблема, а Вы, оказывается, хотите, что бы Вам алгоритм написали, тогда Вам сюда: Я сам алгоритм напишу.Мне нужно знать как правиьно прописать первую вторую и третью вершины.Только это и всё. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 7 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 7 июня, 2019 Мне нужно знать как правиьно прописать первую вторую и третью вершины.Если вершины находить умеете, то алгоритм следующий:определяем глобальный массив вершин double V[3] = {0,0,0};при нахождении новой вершины newV и newV > 0:переписываем значения вершин V[2] = V[1]; V[1] = V[0]; V[0] = newV;проверим заполненность массива if ( V[2] > 0 )теперь можно анализировать вершины 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Snajper Опубликовано 13 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 13 июня, 2019 Доброго времени суток!Вопрос такого плана. Можно ли сделать так, что бы советник видел линии, которые наносятся на график в MT4 вручную? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ent Опубликовано 13 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 13 июня, 2019 Доброго времени суток!Вопрос такого плана. Можно ли сделать так, что бы советник видел линии, которые наносятся на график в MT4 вручную? Работа с графическими объектами:https://docs.mql4.com/ru/objects/Чтобы советник нашел объект support_line на графике, нужна функция ObjectFind:https://docs.mql4.com/ru/objects/objectfindПример:if (ObjectFind(0, "support_line") >= 0) {/*если линия есть на графике*/} else {/*если линии на графике нет*/} 4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
vikneo Опубликовано 17 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 июня, 2019 Доброго дня всем!! Возможно ли сделать "Генератор меджика" или добавлять +1 к номеру, на случай забывчивости менять номер на той же валютной паре , но с разным таймфреймом? Есть такой код, но он не работает или в нем что то не так... Он все равно ставит Меджик с одинаковым номером... Помогите разобраться или эта затея гибельна, не стоит того?? файл прекреплен. GenericMagic.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll_ Опубликовано 17 июня, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 июня, 2019 28 минут назад, vikneo сказал: Доброго дня всем!! Возможно ли сделать "Генератор меджика" или добавлять +1 к номеру, на случай забывчивости менять номер на той же валютной паре , но с разным таймфреймом? Есть такой код, но он не работает или в нем что то не так... Он все равно ставит Меджик с одинаковым номером... Помогите разобраться или эта затея гибельна, не стоит того?? Затея не гибельна, сделать можно, просто обычно советник, который работает на одной паре, но на разных ТФ имеет разные сет файлы в которых и указывается уникальный меджик. К меджику достаточно добавить №ТФ в минутах и всё. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти