Перейти к содержанию

Обучение языку MQL4 под MetaTrader 4


Рекомендуемые сообщения

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Вы когда это компилируете, оно компилируется без ошибок? У Вас 100% неправильно заданы аргументы функции iCustom(). Зачем у Alert() аргументом задан shift? Вы хотите видеть его значение в окне алертов? Похоже Вы совсем не разобрались с iCustom(). Вы уверены, что то, что необходимо получить из индикатора находится в первом буфере? Может индикатор вообще рисует эти стрелочки, не сохраняя эти данные в каком-либо буфере.... Тут много нюансов.

Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 6,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Смотрим видео-уроки, изучаем MQL:       Скачать видеокурс «MQL программирование. Как самому написать форекс советник/ индикатор/ скрипт»   P.S. Тема про Обучение MQ

Перейти

Циклы цикл for Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. К примеру, мы хотим проанализировать последние 10 баров и выяснить наименьшую цен

Перейти

Речь идет о том, что не будет значимых нововведений. А только баги периодически будут править. А вот все новое мол - в МТ5. Когда они вживую сказали то же самое на конференции в Москве, я уточнил: "То

Перейти
Обучение языку MQL4 под MetaTrader 4 Опубликовано

Мне не стрелочки индикатора нужны,а значения цены.Да я уверен,что в sell buffer
sell price
Buy buffer buy price
вот их и хочу считать.
Помогите,напишите как правильно это делать.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

По Домашнему Заданию, к последнему уроку (паттерны Price Action).
Начал накапливать статистику и заметил неприятное расхождение в результатах. Анализ делаю на рабочем счете Alpari-Pro.ECN. Автор использовал Alpari-ECN1. За 2000-й год, пара GBPUSD, в первом случае: 5-ть сделок и все отрицательные, во втором: 7-мь и именно две пропущенные радикально меняют результат. Дмитрий, скажите пожалуйста, как правильнее продолжить анализ. Хотелось бы представить результаты с учетом мувинга и уровней.
Спасибо.

GBPUSD_СРАВНЕНИЕ.jpg

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Слушай сейчас начал наносить зоны для тех анализа и заметил такую штуку.Ценовые метки рисуются только один раз,то есть только для одной зоны.Если нанести вторую,меток нету.


Индикатор нужно увидеть или функцию DrawZone (полностью).
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Индикатор нужно увидеть.


Абсолютно верно. Без кода индикатора невозможно ответить Вам что-то вразумительное.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Заработало!!! Спасибо!!!

На решение меня навело имя объекта, которое присваивается каждый день новое.


Рад, что натолкнул Вас на решение. Да, это частая ошибка при работе с графическими объектами. По описанным Вами симптомам я сразу подумал, что проблема именно где-то здесь.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


По Домашнему Заданию, к последнему уроку (паттерны Price Action).
Начал накапливать статистику и заметил неприятное расхождение в результатах. Анализ делаю на рабочем счете Alpari-Pro.ECN. Автор использовал Alpari-ECN1. За 2000-й год, пара GBPUSD, в первом случае: 5-ть сделок и все отрицательные, во втором: 7-мь и именно две пропущенные радикально меняют результат. Дмитрий, скажите пожалуйста, как правильнее продолжить анализ. Хотелось бы представить результаты с учетом мувинга и уровней.
Спасибо.


Скорее всего ответ кроется в котировках. Возможно, где то в котировках не хватает свечей. вообще у Альпари с 1999 до 2003 примерно года котировки кошмарные. А может просто не все закачались. Попробуйте удалить котировки, а потом заново скачать.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Я ж писал,что это ех4,нет исходника иначе проблем ьы не бы.



Я не поленился и перечитал Ваши три поста выше. Вы нигде не указывали, что нет исходника индикатора. Да он собственно и не нужен. Это раз.
Второе. Вам же, по всей видимости, не то что внимательно и вдумчиво прочитать документацию, на которую я давал Вам ссыль, а собственные посты перечитывать лень или очень некогда. Вот выдержка из той статьи справки:

[in] input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.

У Вас входных параметров индикатора 100500 штук. Их нужно указывать по порядку от первого до последнего, либо не указывать вообще.
А Вы что указали?
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Вы никак абсолютно не помогли.Сюда пишут,когда тех документацию прочел в первую очередь и не сработало.

для умников привожу правильный код.Да храни вас Аллах.
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);

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
Цитата

Вы никак абсолютно не помогли. Сюда пишут,когда тех документацию прочел в первую очередь и не сработало.



Ну так если Вы смотрите в книгу, а видите фигу. Когда человек прочел документацию (именно прочел), а не впопыхах пробежался глазами и что-то там накалякал, то все срабатывает. В документации указано как раз то, о чем я написал в моем предыдущем посте:

Цитата

Их нужно указывать по порядку от первого до последнего, ЛИБО НЕ УКАЗЫВАТЬ ВООБЩЕ.



Теперь Вы тычете меня в этот ваш "правильный вариант" кода без указания входных параметров и называете меня умником вместо спасибо?
Изменено пользователем DreamWorks
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Как можно посчитать количество свечей от текущей до определенного места, конкретно до того, на котором открывается первая свечка, на разделители периодов H4, D1, W1.

Спойлер

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Как можно посчитать количество свечей от текущей до определенного места, конкретно до того, на котором открывается первая свечка, на разделители периодов 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);
}

Изменено пользователем DreamWorks
  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Нашел в чем была проблема. Была искажена формула. #:-s
Дмитрий, хотел узнать - графики доходности вы строили с каким-то постоянным соотношением стопа к профиту? или для каждого паттерна/пары/таймфрейма отдельно?

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Подскажите как можно реализовать закрепление за уровнем. К примеру для бычьего движения.
Одно дело когда это касается простого закрепления: импульс - откат (медвежий бар) - импульс и вход на пробитии пика

Цена пробивает уровень и делает откат. Лоу отката должен быть >= цены уровня.

Цитата

Low_BearBar >= Price_Level;


Открывать покупку на уровне максимального значения цены за уровнем закрепления + 10 пунктов.


Однако бывают более сложные закрепления


Если цена опускается ниже цены уровня закрепления при откате, то не считать данный откат, а ждать новый бычий бар и новый откат от него, который будет соответствовать требованию указанному выше
Цитата

Low_BearBar >= Price_Level;


и также входить на уровне максимального значения цены за уровнем закрепления + 10 пунктов при наличии ПОСЛЕДНЕГО МЕДВЕЖЬЕГО БАРА, у которого
Цитата

Low_BearBar >= Price_Level;




Есть мысль заносить в массив максимальную цену выше уровня закрепления, чтобы потом извлечь максимальную для покупки
Цитата

OrderSend(NULL,OP_BUY,Lots,High_Price+0.0010,....)



Как можно проверить соблюдение ПОСЛЕДНИМ МЕДВЕЖИМ БАРОМ условия, что его лоу не заходит за уровень закрепления?


Может немного скомкано объяснено, но логика довольно простая, однако уже пару недель ломаю голову над логикой.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Не совсем понятна тема - (например для бычьего движения) есть уровень, поставленный от руки, вопрос как понять, что лоу последнего из именно медвежьих баров выше чем этот уровень ?

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Осенило как максимально проще всё представить.

Вместо всего сложного изложения выше достаточно выполнения всего 2-х условий:
1) наличие отката в виде медвежьего бара (для бычьего движения), у которого лоу не заходит за уровень закрепления;
Low[BearBar] > PriceLevel
2) определение максимального значения цены у баров, которые зашли за уровень закрепления.

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
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Я так понимаю Вам возвращается количество секунд, прошедших с 01.01.1970.
Вы значения f1(f2), которое из функции StrToTime получает тип datetime преобразовываете в int зачем-то.
(int f1 = StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb);
И проверьте чтобы в начале программы стояла директива #property strict
А что за переменная dt - в ней что ?

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Действительно с типом данных напортачил, что для f1, f2, что для индексов B1, B2. Уже куда лучше. Спасибо!

dt - дата торгового дня, которая используется для индикатора, с целью прорисовки для предыдущих дней.



Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Курс по MQL4, смотри 5 урок. В нем подробно разбирается как написать трейлинг стоп.
http://tradelikeapro.ru/programmirovanie-na-mql-kurs/

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...