dermitay Опубликовано 6 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 мая, 2016 vitek01, я бы еще вот это Lot/2 нормализовал бы, иначе нарвешься на ошибку "неверный лот". Что то я не нашел NormalizeLots, видать это уже старые функций, компилятор их не видит. уважаемый dermitay, а как правильно это делать, можете строчку строчной строкой настрочить? лот ордера имеет тип double поэтому и юзать надо NormaliseDouble(... , 2) 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Александр 1939 Опубликовано 6 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 мая, 2016 (BufferOC_CP = ( ( Open+Close ) / 2 + BufferOC_CP[i+1] * (x_period -1) ) / x_period ;)не получается???увы Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 6 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 мая, 2016 (BufferOC_CP = ( ( Open+Close ) / 2 + BufferOC_CP[i+1] * (x_period -1) ) / x_period ;)не получается???увы а к BufferOC_CP, Open и Close добавили [ i ] ? а что думали получить? я же задавал вопросы... Изменено 7 мая, 2016 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ronnnnn Опубликовано 7 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 7 мая, 2016 Всем привет.Я написал советника по видео "Как написать форекс советник на мартингейле". Но он начинает открывать кучу ордеров в секунду, как будто он не проверяет что ордера уже открыты и циклично их открывает. У меня брокер Альпари, 5 знаков. Помогите пожалуйста разобраться в чем дело, очень хочется освоить этот метод. (советник во вложении) Мартин.mq4Безымянный.jpg Изменено 7 мая, 2016 пользователем Ronnnnn Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 7 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 7 мая, 2016 Всем привет.Я написал советника по видео "Как написать форекс советник на мартингейле". Но он начинает открывать кучу ордеров в секунду, как будто он не проверяет что ордера уже открыты и циклично их открывает. У меня брокер Альпари, 5 знаков. Помогите пожалуйста разобраться в чем дело, очень хочется освоить этот метод. (советник во вложении) Держите, посмотрел, немного исправил, сейчас работает. с else как то заморачиваетесь, внимательннее нужно быть.Просто посмотрел что могут мартышки, никогда ими не интересовался, стандартные настройки!Чем меньше тейк профит, тем он живуч. Поставил ТР=10 пунктов, шаг =50 пунктов, почти в два раза увеличил депо и слил все. Вывод; Такими стратегиями лучше подтиратся.Мартин.mq4StrategyTester.gifТЕЙК_ПРОФИТ_10_ПУНКТОВ.gif Изменено 7 мая, 2016 пользователем vitek01 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ronnnnn Опубликовано 7 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 7 мая, 2016 Спасибо за помощь))) Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 7 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 7 мая, 2016 господа гусары! категорически поздравляю всех с наступающим! \M/вопрос по существу: занимаюсь оптимизацией кода. в частности, мне удалось перенести всю логику стандартного всем нам известного ТМА на лыжи советника. конечно же, скорость тестирования/оптимизации возросла эдак раз в 20-30. здесь я имею ввиду, что я не использую больше тормозной iCustom(), а эмулирую все 4 буфера(да, их там 4, а не 3, в исходном коде) стандартными динамическими массивами. к тому де, в оригинале создатель индикатора зачем-то делает зацикленный вызов сам себя, перезаписывая все массивы-буферы, когда это можно сделать тупо тем же самым перезаписыванием значений элементов массива. логика абсолютно та же, зато скорость исполнения падает огого как.а кто-нибудь заморачивался над этим вопросом исполнения кода на более глубоком фундаментальном уровне? я имею ввиду, а что если, вместо использования всяких iMA и iATR писать истинную логику - то есть вместо использования стандартных mql-функций писать свои, математические обоснованные, ведь формулы-то все в свободном доступе есть. или это не имеет смысла вобще по сути? Изменено 7 мая, 2016 пользователем dermitay 5 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 8 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 мая, 2016 я имею ввиду, а что если, вместо использования всяких iMA и iATR писать истинную логику - то есть вместо использования стандартных mql-функций писать свои, математические обоснованные, ведь формулы-то все в свободном доступе есть. Я в своих ботах МА и простые индюки сам рассчитываю, если индюк получается сложный, то подключаю через Кастом - но в крайних случаях, в основном для проверки идеи. ТМА как-то крутил... если вылечить от перерисовки - хрень, а работать с перерисовкой - тоже. Выбросил я его.Рекурсивный вызов ( сам-себя ) именно для получения сглаженного вида - т.е. пересчитывает по 30 раз... 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Старик Опубликовано 8 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 мая, 2016 0ll, ну нельзя же так сапогами в душу...ТМА на форуме чуть ли не в половине ТС есть, твой мод даже у меня на большинстве графиков болтается! :d Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 8 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 мая, 2016 да вопрос-то не в ТМА, а в возможном коварном заговоре разрабов mql4. вдруг рукописная математическая функция исполняется быстрее чем iMA(...)? :dкстати, ТМА очень даже не плох, если брать анализ не одного ТФ а трех сразу, нужный ТФ+старший+еще более старший. так же многое зависит от выбранного АТРмультиплайера. чем меньше - тем больше ложных сигналов, чем больше, тем сигналы реже но на порядок качественнее. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 9 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 мая, 2016 вдруг рукописная математическая функция исполняется быстрее чем iMA(...)? :dконечно быстрее. я вообще в шоке от устройства МТ... если представить, что творится в оперативе - жуть.на графике висит эксперт, использующий индюки и те-же самые индюки висят на графике для визуализации - получается, что по одному экземпляру индюков висит и исполняется в процессе терминала, а по 2-му экз. в процессе советника со всеми буферами и всем хозяйством ( типа рекурсии ТМА )...Вопрос: сколько ты анализируешь значений из индикаторного буфера в сове? в большинстве случаев 2-3 бара и всё! ну и нахрен всё это хозяйство в оперативу вешать? 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 9 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 мая, 2016 Вопрос: сколько ты анализируешь значений из индикаторного буфера в сове? в большинстве случаев 2-3 бара и всё! ну и нахрен всё это хозяйство в оперативу вешать? ты вот прям в яблочко задал вопрос. сначала когда я переносил логику то ограничивал в массивах - эмуляторах буферов количество элементов в 1000. потом решил ограничить в 100. сейчас ограничил вообще размер всех массивов до 5ти, и ... логика абсолютно не изменилась, ничего не поломалось, эмуляторы-буферы показывают абсолютно те же значения что и оригинальный ТМА. поэтому у меня такой же вопрос - а на кой хер в самом индюке идет анализ всех баров, да еще и с рекурсией, это же жесть для терминала-то по сути.а, не так понял вопрос - мне вобще по барабану что там было на предыдущем баре, я анализирую текущий, нулевой бар. логика идет по поводу отбоя от верха/низа текущего ТФ + закрытие на серединной линии старшего ТФ(+ построение сетки на отбой от верх/ниж линии этого старшего ТФ если предыдущий ордер еще жив) + как фильтр тренда срединная линия еще более старшего ТФ(+построение сетки если предыдущие два ордера от предыдущих младших ТФ до сих пор живы). Изменено 9 мая, 2016 пользователем dermitay 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 9 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 мая, 2016 Я имел в виду среднее кол-во анализируемых баров, например пересечение машек или 1, 2 производную той-же машки... а так-то да бывает и последнего значения достаточно. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 9 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 мая, 2016 Есть ли такая возможность, у нахожу уровень советником "А" в тестере стратегий, и вручную вписываю его в советник "А" на реальном графике. Но если уровней много? Можно ли как то переносить данные в советник "А", с тестера стратегий в советник "А" на реальном графике. Ссылка на сообщение Поделиться на другие сайты More sharing options...
deathmurder Опубликовано 9 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 мая, 2016 Здравствуйте, Сергей!Планируется ли запустить курс на MQL 5? У языка значительно больше возможностей. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2016 Есть ли такая возможность, у нахожу уровень советником "А" в тестере стратегий, и вручную вписываю его в советник "А" на реальном графике. Но если уровней много? Можно ли как то переносить данные в советник "А", с тестера стратегий в советник "А" на реальном графике.через файл, но там проблемка будет - тестер в один каталог пишет, а сова с реального графика в другой каталог лезет читать, но это преодолимо. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
VANEK_V_ Опубликовано 10 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2016 Подскажите пожалуйста как в MQL 4 (Meta Editor Version: 5.00 build 1218 26 Nov 2015) прописать условие, чтобы советник проверял динамику рынка в определенный промежуток времени (например, нахождение точек экстремума только в период с 01:00 до 13:00 каждого дня, а не за весь день)?Точнее, чтобы можно было найти экстремум за определенное время а открывать ордера в любое (основываясь на полученные данные). Если можно пропишите кодом.Заранее спасибо. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2016 VANEK_V_ логика такая:- сова торгует круглосуточно по старым уровням, если их нет ( уровень - при наступлении времени анализа сова ищет новый экстремум, если находит - старый перезаписываетвот код анализатора периода: Спойлер //+--------------------------------------------------------------------+input string SET_Work_Time = "==== value format: hh.mmss ====";input double dtStart = 7.45; // Старт = 7:45:00input double dtEnd = 17.2; // Финиш = 17:20:00bool isWorkTime( datetime check_time ){ MqlDateTime dt; TimeToStruct ( check_time, dt ); double dtB = dt.hour + dt.min/100 + dt.sec/10000; if ( dtStart = dtStart && dtB = dtStart || dtB return(true); return(false);}//+--------------------------------------------------------------------+ Использовать в коде так: if ( isWorkTime( TimeCurrent ( ) ) func_Analis(); 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Дмитрий_2008 Опубликовано 11 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 мая, 2016 kocunyc не просто подсказать что изменить, если нет кода. сам новичок, в своих индикаторах когда заполняю "буфер стрелочек" отступ регулирую так: в анализируемой свече "i" к High или Low добавляю или отнимаю какое-то количество пунктов( +-100*Point) Изменено 11 мая, 2016 пользователем Дмитрий_2008 Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 12 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 мая, 2016 Есть ли такая возможность, у нахожу уровень советником "А" в тестере стратегий, и вручную вписываю его в советник "А" на реальном графике. Но если уровней много? Можно ли как то переносить данные в советник "А", с тестера стратегий в советник "А" на реальном графике.через файл, но там проблемка будет - тестер в один каталог пишет, а сова с реального графика в другой каталог лезет читать, но это преодолимо. Спасибо! Я уже разобрался, через цикл for по историй катком прошелся и нашел таки нужные уровни. По моему мнению, в MQL4 можно какую угодно стратегию закодировать, здесь только проблема в фантазий, не что, а как. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Kozubus Опубликовано 12 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 мая, 2016 Друзья, подскажите где мне лучше сохранить значение double переменной, чтобы можно было извлечь после изменения таймфрейма. Спасибо! Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 12 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 мая, 2016 Как привести double k int, int R= ( iHigh(...) - iLow(.....)) много вариантов попробовал, всегда ноль показывает или много много цифр. Привести к пунктам?если делать так double R=( iHigh(...) - iLow(.....)) *Point;то еще более менее, но после запятой много лишнего, нормализация не помогает, 0.0 показывает? Изменено 12 мая, 2016 пользователем vitek01 Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 12 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 мая, 2016 коллеги, а зачем вам приводить дабл к инту? а что делать с котировками ну например аудиюсд, где цена ниже порогового значения самого инта?Kozubus, уже обсуждалось.1. объявляешь глобально переменную.2. присваиваешь ей значение в ините или онтике/онтаймере(не обнуляя и не переинициализируя)3. .... 4. Profit!!!111 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 12 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 мая, 2016 коллеги, а зачем вам приводить дабл к инту? а что делать с котировками ну например аудиюсд, где цена ниже порогового значения самого инта?Kozubus, уже обсуждалось.1. объявляешь глобально переменную.2. присваиваешь ей значение в ините или онтике/онтаймере(не обнуляя и не переинициализируя)3. .... 4. Profit!!!111 Вывод информаций на график о ширине флэтового канала, не надо вручную смотреть,экономия времени!проблемы нужно решать по мере их поступления, на этой паре не сижу, все ведь не предусмотришь! Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 12 мая, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 мая, 2016 Друзья, подскажите где мне лучше сохранить значение double переменной, чтобы можно было извлечь после изменения таймфрейма. Спасибо!Напишу чуть подробнее. Переключение ТФ не вызывает перезаписи глобальных переменных, вот пример (сохрани как советник):double d=0;void OnTick(){ if ( _Period == PERIOD_M5 ) d = 44; Comment("}void OnDeinit(const int reason){ Comment(""); }Запусти на М5, а потом переключай ТФ и смотри комментарий.Если у Вас такие-же глобальные переменные меняются, то значит они пересчитываются...vitek01 делай так: int R = (int) ( ( High[ 0 ] - Low[ 0 ] ) / _Point ); Изменено 12 мая, 2016 пользователем 0ll 4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти