Гриб Опубликовано 21 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 февраля, 2016 Я так и не понял как мне сделать то что я хочу , решил через стоповые и лимитные ордера сделать открытие позиций.Мне понятно как их посчитать =) Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 21 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 февраля, 2016 Написал свой первый серьезный эксперт, может кому понадобится.Две линий, зеленая задаем уровень выше цены, при достижений срабатывает селл, этакий селл лимитный ордер. Красный на покупку, уровень должен быть ниже цены. можно задавать стопы. отступ отвечает за пробуксовку, если срабатывает стоп например на покупку, то пока цена не пройдет выше уровня на заданное количество пункта отступа, уровень на покупку не активируется.есть звук при активаций ордеров, но в тестере вроде не звучит!может есть какие грубые ошибки, так работает как часики! спасибо за внимание! line_Orders.mq4 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
serpent989 Опубликовано 21 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 февраля, 2016 serpent989, попробуй два цикла. один вложен в другой. главный перебирает окна открытых графиков, а второй перебирает подокна выбранного графика. и почитай про вот эту функциюhttps://docs.mql4.com/ru/chart_operations/windowfindзадачу так и не понял до конца. если тебе надо кидать вместе с совой и индикатор на этот же график - так еще проще, прям в ините ну или однократно выполняемая функция, в которой будет подгружаться заранее подготовленный темплейт с совой и индикатором. но, это какой-то геморой получается. проще кинуть на график сову и нужный индкиатор, сохранить как темплейт и применять уже этот темлпейт к любому окну - и сова и индюк будут автоматом подсасываться. и не надо шаманить с кодом и творить танцы с бубном, которые легко обходятся вне кода.Гриб, я, конечно, понимаю что не бывает глупых вопросов, бывают глупые ответы. но я десять раз перечитал твои посты и так и не понял собстно а что тебе надо и чего не устраивает в тобой же приведенном коде. тебе надо функцию для селл чтоли расписать код? :)) dermitay, "если тебе надо кидать вместе с совой и индикатор на этот же график" - да именно, система работает по индикатору, хотелось бы , чтобы с совой на графике появлялся и этот индикатор с параметрами указанными в сове. Но подгружать уже готовый темплейт не подходит, так как тогда придётся этот файл с темплейтом закидывать во все терминалы, где сов будет использоваться. А хотелось одним файлом. Ну короче, так сделать нельзя, я вроде как норм погуглил. А Гриб походу имел ввиду, что если у него, к примеру, два ордера BUY открыты по разной цене, то как ему их различить, т.е. выбрать нужный. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 21 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 февраля, 2016 serpent989 чтобы у тебя это было одним файлом и все корректно отрисовывалось - тебе нужно полностью переносить логику индикатора в сову, и не через iCustom а полностью логику практически с нуля переписывать. я бы подкинул и подсказал бы что да как, но боюсь, у тебя пока что опыта маловато для этих действий, так как данный труд очень такой вот сильный и мощный интеллектуальный труд. смотря какой индикатор ты используешь, смотря в каком виде есть у тебя его исходники(декомпил на 1000+ строк даже не стоит рассматривать, у тебя внуки появятся пока ты воткнешь во всю суть), смотря насколько ты вобще знаешь фундаментальные отличия работы совы и индикаторов. а их там вагон и маленькая тележка.короче говоря, слишком много "если", и ты, на данном этапе, вряд ли потянешь, так как это работа не одного дня и даже возможно не одной недели, и самое главное - скорее всего оно не стоит того, трудозатраты и человекочасы не окупят эффективность кода, поэтому самый оптимальный выход в данном твоём вопросе - это шаблон, не более. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
SVS696 Опубликовано 21 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 февраля, 2016 Запустите этот код как эксперта (сейчас рынок закрыт - алерта не будет - тика нет, но параметры увидите):input double ddd = 10;void OnTick() { Alert("Hello World! ddd =",ddd); } Тики появились, а алерт глух Ссылка на сообщение Поделиться на другие сайты More sharing options...
Qj Опубликовано 21 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 февраля, 2016 Запустите этот код как эксперта (сейчас рынок закрыт - алерта не будет - тика нет, но параметры увидите):input double ddd = 10;void OnTick() { Alert("Hello World! ddd =",ddd); } Тики появились, а алерт глух У вас там эксперт не вылетел? Я конечно не уверен правильно ли вы используете Alert, но попробуйте лучшеinput double ddd = 10;void OnTick() { Alert(StringFormat("Hello world! ddd = %f", ddd)); } 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
SVS696 Опубликовано 21 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 февраля, 2016 Запустите этот код как эксперта (сейчас рынок закрыт - алерта не будет - тика нет, но параметры увидите):input double ddd = 10;void OnTick() { Alert("Hello World! ddd =",ddd); } Тики появились, а алерт глух У вас там эксперт не вылетел? Я конечно не уверен правильно ли вы используете Alert, но попробуйте лучшеinput double ddd = 10;void OnTick() { Alert(StringFormat("Hello world! ddd = %f", ddd)); } Вот ваш сработал) Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 22 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 февраля, 2016 Помогите пожалуйста, сам не осилю,не хватает знаний. Например на таймфреме 30м есть бычья материнская свеча, сдвиг 9 на скрине, и например текущая свеча закрывается выше материнской. Как зделать чтоб теперь она стала материнской свечой? и как обозначать материнскую свечу - например int Mat_Bars =iBars(Symbol(), PERIOD_M30) ? eurusd-m30-alpari-limited-2.png Ссылка на сообщение Поделиться на другие сайты More sharing options...
Surf32 Опубликовано 22 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 февраля, 2016 Большое спасибо. Результат не заставил себя ждать. Только вот с трейлингстопом проблема - пишет что возвращаемое значение должно быть проверено. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 22 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 февраля, 2016 Большое спасибо. Результат не заставил себя ждать. Только вот с трейлингстопом проблема - пишет что возвращаемое значение должно быть проверено.ну так проверьте! самое простое: bool res = ...Добавлено: 22-02-2016 20:16:19Как зделать чтоб теперь она стала материнской свечой? и как обозначать материнскую свечу - например int Mat_Bars =iBars(Symbol(), PERIOD_M30) ?Вы ведёте некие расчёты от параметров бара (материнской свечи), так? если ДА, то надо сохранять те параметры, которые нужны. например объявляем структуру:struct BARS{ int dir, HL, OC; double h,l,c,o; datetime time;}потом регистрируем переменную-структуру:BARS matBar;потом в коде совы, когда находите свечу, заполняете структуру:matBar.h = High[1]; matBar.HL = ( int ) ( ( High[1] - Low[1] ) / _Point ) ; и т.далее...потом находится другая свеча, Вы проверяете выход из диапазона пред. матер.свечи:if ( Open[1] > matBar.c ) ну или как там Вы определяете...и потом переписываете структуру matBar новыми значениями. вроде всё. Изменено 22 февраля, 2016 пользователем 0ll 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 22 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 февраля, 2016 Большое спасибо за помощь. Будем изучать. Все просто и сложно одновремено! У автора топика сергея в видео есть отдельный "документация mql4" где он вбивая слово в указатель получает исчепывающую информацию о неких предопределенных функциях. Я такой искал по инету, не нашел, только на сайте mql4 в разделе документация mql4, но он неудобный и слово не вбить, только через пойсковик. А можно ли такой найти где нить как у xbms, :|, спасибо! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Al.exe.in Опубликовано 23 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 февраля, 2016 Здравствуйте, есть у меня несколько вопросов, касаемо качественного исполнения приказов советником. Буду признателен, если кто-нибудь более опытный даст дельный совет. Пишу вспомогательный советник, точнее трейлинг. Закономерно осознал такую проблему: Задается диапазон и шаг трейлинга, если шаг слишком мал, то запросы на модификацию будут сыпать на ДЦ сервер на каждом тике в направлении прибыли. Отсюда вопрос первый - Как относится ДЦ к таким клиентам, от терминала которых исходит такой поток заявок? Далее, возможна ситуация когда советник пытается модифицировать стоп на слишком близком уровне от цены, ближе чем размер спреда, такое возможно, если трал работает по барам. Допустим производится продажа на пике нулевого бара, в работу включается трейлинг и ищет из тайм серии самый высокий бар, достаточно вероятно, что именно нулевой бар и окажется самым высоким из глубины поиска, в таком случае ДЦ не даст выставить стоп слишком близко к текущей цене, а советник будет упорото долбить OrderModify. Тут назревает второй вопрос - Стоит ли предусматривать в советнике некий минимальный диапазон, в целях - выдерживать минимально допустимый отступ от текущей цены, каким размером должен быть этот диапазон? Может быть это размер спреда + n пунктов * Point? Если принять меры для корректного исполнения и модификации ордеров, взяв в учет разумные отступы от текущей котировки, такой советник не подойдет для скальпинга, при торговле на M1, поскольку в код советника придется вшить некий фиксированный уровень отступа. Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 23 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 февраля, 2016 Al.exe.in, можно просто проверять разницу между текущей ценой(в зависимости от ордера - бид или аск) и ценой стоплосса-тралинга перед модификацией с MarketInfo(Symbol(),MODE_STOPLEVEL), который как раз и показывает уровни стопов брокера по данной паре. Изменено 23 февраля, 2016 пользователем dermitay 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Konstebl Опубликовано 23 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 февраля, 2016 Я так и не понял как мне сделать то что я хочу , решил через стоповые и лимитные ордера сделать открытие позиций.Мне понятно как их посчитать =) Попробуйте присвоить каждой паре свои Магики. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 23 февраля, 2016 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 февраля, 2016 Большое спасибо за помощь. Будем изучать. Все просто и сложно одновремено! У автора топика сергея в видео есть отдельный "документация mql4" где он вбивая слово в указатель получает исчепывающую информацию о неких предопределенных функциях. Я такой искал по инету, не нашел, только на сайте mql4 в разделе документация mql4, но он неудобный и слово не вбить, только через пойсковик. А можно ли такой найти где нить как у xbms, :|, спасибо! День добрый!Это встроенный в MetaEditor справочник.Пишем функцию, например OrderSend, становимся на неё курсором и нажимаем "F1".Далее читаем справку и наслаждаемся полнотой информации :) 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 24 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 февраля, 2016 Урок по внедрению трейлинг-стопа был обновлен под новые билды:http://tradelikeapro.ru/izuchaem-mql-treyling-stop/ 7 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Surf32 Опубликовано 24 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 февраля, 2016 Здравствуйте уважаемые трейдеры. Возникла проблема. Советник позиции SELL открывает, а по Buy не работает. Посмотрите пожалуйста, буду очень признателен. ToMuv.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
SVS696 Опубликовано 26 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 февраля, 2016 Клешни? Спойлер input int StopZerro=10; //Стоп нулевого ордераinput int FollowStop=17; //Стоп основных ордеров (естественно расчет идет от BID при покупке и ASK при продаже)input int Distance=20; //Каждые сколько пунктов открывать новый ордер (Расчет идет от ASK при покупке и BID при продаже)input int MiddleSpread=2; //Его мы приплюсовываем к дистанции//начинаем инициализировать переменные связанные с пунктами, т.к. константы которые вводит пользователь менять нельзя, то к каждому имени нужной переменной добавим"1"int StopZerro1=StopZerro;int FollowStop1=FollowStop;int Distance1=Distance;int MiddleSpread1=MiddleSpread; *** Спойлер if(Broker5x){ // Если правда, то домножаем все, что связано с пунктами на 10 StopZerro1=StopZerro*10; FollowStop1=FollowStop*10; Distance1=Distance*10; MiddleSpread1=MiddleSpread*10; } Изменено 26 февраля, 2016 пользователем Pavel888 Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 26 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 февраля, 2016 SVS696, во-первых переменные должны быть double, во-вторых для приведения пунктов из настроек к пунктам пары надо умножать на Point или MarketInfo(Symbol(), MODE_POINT). 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
SVS696 Опубликовано 26 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 февраля, 2016 SVS696, во-первых переменные должны быть double, во-вторых для приведения пунктов из настроек к пунктам пары надо умножать на Point или MarketInfo(Symbol(), MODE_POINT). Т.е. если 4 знака, то point =1? Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 26 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 февраля, 2016 SVS696, во-первых переменные должны быть double, во-вторых для приведения пунктов из настроек к пунктам пары надо умножать на Point или MarketInfo(Symbol(), MODE_POINT). Т.е. если 4 знака, то point =1? Point'у пофигу на все эти пятизнаки/четырехзнаки. Это по сути десять в минусовой степени. он приводит твою цифру к удобоваримой для конкретной запрашиваемой пары. например 10 пунктов. пара "А" имеет Bid 1,0001. для такой пары +10пп будет равно Bid+10*Point = 1.0011.пара "Б" имеет Bid 170.001. для такой пары + 10пп будет равно Bid+ 10*Point = 170.011.пара "С" имеет Bid 10000.0. для такой пары + 10пп будет равно Bid+ 10*Point = 10010,0.Чтобы постоянно не заморачиваться а сколько же там знаков и на какую цифру надо умножать и придуман Point. это предопределенная константа самого языка.Чтобы твои пункты корректно прям автоматом подстраивались под пятизнак и четырехзнак - то надо писать код по сути для каждой группы пар, запрашивать Digits и так далее и тому подобное.А вобще если так сильно озаботился такой задачей - спроси у Rever27. у него в коде в одной из его сов вроде как есть этот "автомат", но опять же, это по сути "справочник", заранее заполненный, в котором отражается сколько знаков после запятой у каждой пары, и прописаны правила что делать если после запятой 7 знаков, а что делать если 6. грубо говоря ты можешь сам его прописать, логику я уже тебе описал. Изменено 26 февраля, 2016 пользователем dermitay 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Surf32 Опубликовано 27 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 февраля, 2016 Наверно придется все делать самому.(((((((( Ссылка на сообщение Поделиться на другие сайты More sharing options...
Qj Опубликовано 27 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 февраля, 2016 Наверно придется все делать самому.(((((((( Сделайте вывод через Print переменных MAQ и MAL после чего смотрите возникает ли событие на открытие длинных позиций. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 27 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 февраля, 2016 Скорее всего короткая машка возвращает 0 на 0-баре. трудно сказать ведь шифт Ссылка на сообщение Поделиться на другие сайты More sharing options...
Surf32 Опубликовано 27 февраля, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 февраля, 2016 Скорее всего короткая машка возвращает 0 на 0-баре. трудно сказать ведь шифт Думаете нужно проскальзывание? Но SELL позиции открывает ровно по сигналу.Добавлено: 27-02-2016 12:14:00Вот ошибки из журнала - 2016.02.27 13:37:36.189 TestGenerator: unmatched data error (low value 0.67050 at 2016.02.04 16:00 is not reached from the least timeframe, low price 0.67170 mismatches)2016.02.27 13:37:36.144 TestGenerator: unmatched data error (high value 0.67420 at 2016.01.05 08:00 is not reached from the least timeframe, high price 0.67380 mismatches)Только их значение я не понимаю. Было бы знать что исправлять - компилятор ошибок не выдает. Изменено 27 февраля, 2016 пользователем Surf32 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти