DreamWorks Опубликовано 27 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 декабря, 2016 Вы когда это компилируете, оно компилируется без ошибок? У Вас 100% неправильно заданы аргументы функции iCustom(). Зачем у Alert() аргументом задан shift? Вы хотите видеть его значение в окне алертов? Похоже Вы совсем не разобрались с iCustom(). Вы уверены, что то, что необходимо получить из индикатора находится в первом буфере? Может индикатор вообще рисует эти стрелочки, не сохраняя эти данные в каком-либо буфере.... Тут много нюансов. Ссылка на сообщение Поделиться на другие сайты More sharing options...
scherbakovss Опубликовано 27 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 декабря, 2016 Мне не стрелочки индикатора нужны,а значения цены.Да я уверен,что в sell buffersell priceBuy buffer buy priceвот их и хочу считать.Помогите,напишите как правильно это делать. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Дмитрий_2008 Опубликовано 27 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 декабря, 2016 По Домашнему Заданию, к последнему уроку (паттерны Price Action).Начал накапливать статистику и заметил неприятное расхождение в результатах. Анализ делаю на рабочем счете Alpari-Pro.ECN. Автор использовал Alpari-ECN1. За 2000-й год, пара GBPUSD, в первом случае: 5-ть сделок и все отрицательные, во втором: 7-мь и именно две пропущенные радикально меняют результат. Дмитрий, скажите пожалуйста, как правильнее продолжить анализ. Хотелось бы представить результаты с учетом мувинга и уровней.Спасибо. GBPUSD_СРАВНЕНИЕ.jpg Ссылка на сообщение Поделиться на другие сайты More sharing options...
SilverKZ Опубликовано 27 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 декабря, 2016 Индикатор нужно увидеть. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
SilverKZ Опубликовано 27 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 декабря, 2016 Слушай сейчас начал наносить зоны для тех анализа и заметил такую штуку.Ценовые метки рисуются только один раз,то есть только для одной зоны.Если нанести вторую,меток нету. Индикатор нужно увидеть или функцию DrawZone (полностью). Ссылка на сообщение Поделиться на другие сайты More sharing options...
l33trade Опубликовано 27 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 декабря, 2016 Скинул полный код в ЛС) Ссылка на сообщение Поделиться на другие сайты More sharing options...
DreamWorks Опубликовано 28 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2016 Индикатор нужно увидеть. Абсолютно верно. Без кода индикатора невозможно ответить Вам что-то вразумительное. Ссылка на сообщение Поделиться на другие сайты More sharing options...
DreamWorks Опубликовано 28 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2016 Заработало!!! Спасибо!!!На решение меня навело имя объекта, которое присваивается каждый день новое. Рад, что натолкнул Вас на решение. Да, это частая ошибка при работе с графическими объектами. По описанным Вами симптомам я сразу подумал, что проблема именно где-то здесь. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Silentspec Опубликовано 28 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2016 По Домашнему Заданию, к последнему уроку (паттерны Price Action).Начал накапливать статистику и заметил неприятное расхождение в результатах. Анализ делаю на рабочем счете Alpari-Pro.ECN. Автор использовал Alpari-ECN1. За 2000-й год, пара GBPUSD, в первом случае: 5-ть сделок и все отрицательные, во втором: 7-мь и именно две пропущенные радикально меняют результат. Дмитрий, скажите пожалуйста, как правильнее продолжить анализ. Хотелось бы представить результаты с учетом мувинга и уровней.Спасибо. Скорее всего ответ кроется в котировках. Возможно, где то в котировках не хватает свечей. вообще у Альпари с 1999 до 2003 примерно года котировки кошмарные. А может просто не все закачались. Попробуйте удалить котировки, а потом заново скачать. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Дмитрий_2008 Опубликовано 28 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2016 Спасибо. Изменено 29 декабря, 2016 пользователем Дмитрий_2008 Ссылка на сообщение Поделиться на другие сайты More sharing options...
scherbakovss Опубликовано 28 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2016 Я ж писал,что это ех4,нет исходника иначе проблем ьы не бы. Ссылка на сообщение Поделиться на другие сайты More sharing options...
DreamWorks Опубликовано 28 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2016 Я ж писал,что это ех4,нет исходника иначе проблем ьы не бы. Я не поленился и перечитал Ваши три поста выше. Вы нигде не указывали, что нет исходника индикатора. Да он собственно и не нужен. Это раз.Второе. Вам же, по всей видимости, не то что внимательно и вдумчиво прочитать документацию, на которую я давал Вам ссыль, а собственные посты перечитывать лень или очень некогда. Вот выдержка из той статьи справки:[in] input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию. У Вас входных параметров индикатора 100500 штук. Их нужно указывать по порядку от первого до последнего, либо не указывать вообще. А Вы что указали? Ссылка на сообщение Поделиться на другие сайты More sharing options...
scherbakovss Опубликовано 28 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2016 Вы никак абсолютно не помогли.Сюда пишут,когда тех документацию прочел в первую очередь и не сработало.для умников привожу правильный код.Да храни вас Аллах. double result=0; double result1=0;//Проверка сигнала на селл на указаную дату и время eurusd m15 // IndicatorShortName("CandleType"); //вычисляем смещение для сигнала на селл // datetime some_time=D'2016.12.23 18:30'; // int shift=iBarShift(Symbol(), Period(),some_time); // Alert(shift); // сигнал на вход селы,буфер 1 result = iCustom(Symbol(),0,"PivotPointReversal_x2_1_49",1,0); Alert(result); // сигнал на вход баи,буфер 0 result1 = iCustom(Symbol(),0,"PivotPointReversal_x2_1_49",0,0); Alert(result1); Ссылка на сообщение Поделиться на другие сайты More sharing options...
DreamWorks Опубликовано 28 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2016 Цитата Вы никак абсолютно не помогли. Сюда пишут,когда тех документацию прочел в первую очередь и не сработало. Ну так если Вы смотрите в книгу, а видите фигу. Когда человек прочел документацию (именно прочел), а не впопыхах пробежался глазами и что-то там накалякал, то все срабатывает. В документации указано как раз то, о чем я написал в моем предыдущем посте: Цитата Их нужно указывать по порядку от первого до последнего, ЛИБО НЕ УКАЗЫВАТЬ ВООБЩЕ. Теперь Вы тычете меня в этот ваш "правильный вариант" кода без указания входных параметров и называете меня умником вместо спасибо? Изменено 29 декабря, 2016 пользователем DreamWorks Ссылка на сообщение Поделиться на другие сайты More sharing options...
EDI Опубликовано 28 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 декабря, 2016 Как можно посчитать количество свечей от текущей до определенного места, конкретно до того, на котором открывается первая свечка, на разделители периодов H4, D1, W1. Спойлер Ссылка на сообщение Поделиться на другие сайты More sharing options...
DreamWorks Опубликовано 29 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 декабря, 2016 Как можно посчитать количество свечей от текущей до определенного места, конкретно до того, на котором открывается первая свечка, на разделители периодов H4, D1, W1. Ну вообще, чтобы понять сколько свечей от текущей до той, что Вам нужна, необходимо получить индекс искомой свечи. Индекс, это ее порядковый номер от текущей. Текущая свеча имеет индекс 0, последняя закрытая имеет индекс 1 и т.д. вглубь истории. В Вашем случае искомая свеча имеет индекс 18. Чтобы получить этот индекс используется функция iBarShift(). Одним из параметров этой функции является время. Функция сравнивает заданное время со временем свечи. Функция вернет индекс той свечи, на которую придется заданное время. Если Вы зададите 26 декабря 2016 года 0:00, то функция вернет индекс требуемой свечи №18. Но у Вас задача получать индекс именно свечи, которая стоит на разделителе периодов. Периоды делятся по разным признакам. Вот у Вас на скрине периоды делятся по неделям. Соответственно задача получить индекс бара, имеющего время 0:00 и день недели - понедельник. Пишем такую незамысловатую функцию, которая будет возвращать индекс первой свечки текущей недели:int FirstBarOfWeek() { int index=0; for(int i=0;i { if(TimeDayOfWeek(Time)==1&&TimeHour(Time)==0&&TimeMinute(Time)==0) { index=iBarShift(Symbol(),0,Time); break; } } return(index); } Изменено 29 декабря, 2016 пользователем DreamWorks 4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Дмитрий_2008 Опубликовано 29 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 декабря, 2016 Переустановил терминал Изменено 29 декабря, 2016 пользователем Дмитрий_2008 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Дмитрий_2008 Опубликовано 30 декабря, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 декабря, 2016 Нашел в чем была проблема. Была искажена формула. #:-sДмитрий, хотел узнать - графики доходности вы строили с каким-то постоянным соотношением стопа к профиту? или для каждого паттерна/пары/таймфрейма отдельно? Ссылка на сообщение Поделиться на другие сайты More sharing options...
jadd Опубликовано 2 января, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 января, 2017 Подскажите как можно реализовать закрепление за уровнем. К примеру для бычьего движения.Одно дело когда это касается простого закрепления: импульс - откат (медвежий бар) - импульс и вход на пробитии пикаЦена пробивает уровень и делает откат. Лоу отката должен быть >= цены уровня. Цитата Low_BearBar >= Price_Level; Открывать покупку на уровне максимального значения цены за уровнем закрепления + 10 пунктов.Однако бывают более сложные закрепленияЕсли цена опускается ниже цены уровня закрепления при откате, то не считать данный откат, а ждать новый бычий бар и новый откат от него, который будет соответствовать требованию указанному выше Цитата Low_BearBar >= Price_Level; и также входить на уровне максимального значения цены за уровнем закрепления + 10 пунктов при наличии ПОСЛЕДНЕГО МЕДВЕЖЬЕГО БАРА, у которого Цитата Low_BearBar >= Price_Level; Есть мысль заносить в массив максимальную цену выше уровня закрепления, чтобы потом извлечь максимальную для покупки Цитата OrderSend(NULL,OP_BUY,Lots,High_Price+0.0010,....) Как можно проверить соблюдение ПОСЛЕДНИМ МЕДВЕЖИМ БАРОМ условия, что его лоу не заходит за уровень закрепления?Может немного скомкано объяснено, но логика довольно простая, однако уже пару недель ломаю голову над логикой. Ссылка на сообщение Поделиться на другие сайты More sharing options...
AndreyGold Опубликовано 3 января, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 января, 2017 Не совсем понятна тема - (например для бычьего движения) есть уровень, поставленный от руки, вопрос как понять, что лоу последнего из именно медвежьих баров выше чем этот уровень ? Ссылка на сообщение Поделиться на другие сайты More sharing options...
jadd Опубликовано 3 января, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 января, 2017 Осенило как максимально проще всё представить.Вместо всего сложного изложения выше достаточно выполнения всего 2-х условий:1) наличие отката в виде медвежьего бара (для бычьего движения), у которого лоу не заходит за уровень закрепления;Low[BearBar] > PriceLevel2) определение максимального значения цены у баров, которые зашли за уровень закрепления.1-ое условие я реализовал, а вот над 2-м думаю как проще.Думаю нужно определить индексы баров, от 1-го до последнего, для расчета максимальной цены.Т.е. нужно рассмотреть диапазон баров: для 1-го это грубо говоря 10:00 утра, а последнее - текущее значение. Пытаюсь реализовать таким образом Цитата datetime tb = "9:00"; int f1 = StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb); int f2 = StrToTime(TimeToStr(dt, TIME_DATE)+" "+ TimeCurrent()); datetime B1 = iBarShift(NULL, 0, f1); datetime B2 = iBarShift(NULL, 0, f2); p1=High[iHighest(NULL, 0, MODE_HIGH, B1-B2+1, B2)]; p2=Low[iLowest (NULL, 0, MODE_LOW , B1-B2+1, B2)]; Командой Comment вывожу значения f1 и f2, но там ерунда в виде 1463007600 Ссылка на сообщение Поделиться на другие сайты More sharing options...
AndreyGold Опубликовано 3 января, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 января, 2017 Я так понимаю Вам возвращается количество секунд, прошедших с 01.01.1970.Вы значения f1(f2), которое из функции StrToTime получает тип datetime преобразовываете в int зачем-то.(int f1 = StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb); И проверьте чтобы в начале программы стояла директива #property strictА что за переменная dt - в ней что ? 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
jadd Опубликовано 4 января, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 января, 2017 Действительно с типом данных напортачил, что для f1, f2, что для индексов B1, B2. Уже куда лучше. Спасибо!dt - дата торгового дня, которая используется для индикатора, с целью прорисовки для предыдущих дней. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Паша Опубликовано 4 января, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 января, 2017 Здравствуйте! Помогите, пожалуйста, добавить трейлинг-стоп в советник, если кому не трудно. eamacd4_5.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Alexandrkas Опубликовано 5 января, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 января, 2017 Курс по MQL4, смотри 5 урок. В нем подробно разбирается как написать трейлинг стоп.http://tradelikeapro.ru/programmirovanie-na-mql-kurs/ Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти