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

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


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

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


Подскажите, а модифицировать отложки (установка сл - тп) лучше, если они становятся рыночными? Просто у меня при установки отложек и последующей модификации, в тестере вылазит ошибка OrderModify error 130. Причем через раз - первый запуск - ошибка, второй - нет ошибки...


130 ошибка стопа, значит не верно считается:)
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Перейти

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

Перейти

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

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

Еще вопрос - OrderProfit() возвращает значение убытка для закрытых ордеров? И как его получать, с помощью MODE_HISTORY ?

Еще очень хотелось бы, чтобы уважаемый xbms сделал урок по обработке советником ошибок, с которыми мы можем и будем сталкиваться в реальном рынке, а не только в тестере. Хотя бы самое основное - какие ошибки и бяки могут возникнуть со стороны брокера, как это корректно обрабатывать. Думаю, без этого полноценного эксперта не напишешь.

З.Ы. Еще раз спасибо и респект за видеоуроки, надеюсь, что их будет больше.

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

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


Еще вопрос - OrderProfit() возвращает значение убытка для закрытых ордеров? И как его получать, с помощью MODE_HISTORY ?

Еще очень хотелось бы, чтобы уважаемый xbms сделал урок по обработке советником ошибок, с которыми мы можем и будем сталкиваться в реальном рынке, а не только в тестере. Хотя бы самое основное - какие ошибки и бяки могут возникнуть со стороны брокера, как это корректно обрабатывать. Думаю, без этого полноценного эксперта не напишешь.

З.Ы. Еще раз спасибо и респект за видеоуроки, надеюсь, что их будет больше.



OrderProfit() возвращает текущий профит в волюте! OrderTakeProfit() возвращает профит закрытого ордера! Посмотри документацию F1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
elruso, ты бы сам сначала документацию посмотрел, прежде чем отвечать. Цитирую дословно:
Цитата

double OrderTakeProfit()
Возвращает значение цены закрытия позиции при достижении уровня прибыльности (take profit) для текущего выбранного ордера

double OrderProfit()
Возвращает значение чистой прибыли (без учёта свопов и комиссий) для выбранного ордера. Для открытых позиций это - текущая нереализованная прибыль. Для закрытых ордеров - зафиксированная прибыль.

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

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


Еще вопрос - OrderProfit() возвращает значение убытка для закрытых ордеров? И как его получать, с помощью MODE_HISTORY ?



1. Да. (отрицательный профит)
2. Здесь сложнее.
Если знаем тикет, то просто:
if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY))
profit = OrderProfit();


Если последний закрытый ордер, то так:
if (OrderSelect(1, SELECT_BY_POS, MODE_HISTORY))
profit = OrderProfit();


А, если нужно более серьёзно ковыряться в истории, то перелопачивать OrdersHistoryTotal(), сортировать по инструменту - OrderSymbol(), по времени закрытия - OrderCloseTime() и т.д.
Ссылка на сообщение
Поделиться на другие сайты

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

Последний урок, уж очень похож на урок по мартингейлу.

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

Обучение языку MQL4 под MetaTrader 4 Опубликовано
Vorchunozavr, спасибо за подсказки.
Вобщем у меня вот такая получилась функция возврата значения профита (убытка) последнего закрытого ордера (может кому пригодится):

double LastOrderProfit()   
{
for (int i = OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
return (OrderProfit());
}
}

return (0);
}
Ссылка на сообщение
Поделиться на другие сайты

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


Вот, вроде всё правильно написал.
Только второе задание не понял как делать.



Ну так а какой смысл в копировании советника с видео?
Цель - именно разобраться и выполнить задания...
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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

Переписал, протестил на демо. Тп у всей сетки изменяется, если в настройках поменять тэйкпрофит.
Среднюю цену вывел в функцию avgTP()

setka.mq4

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

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

Кто может объяснить, почему, когда RSI(7) на графике направлен вниз, советник делает покупки?
Только ли из-за того, что, (будем говорить так,) после неудачной покупки, цена пошла не в нашу сторону?

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

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


Кто может объяснить, почему, когда RSI(7) на графике направлен вниз, советник делает покупки?
Только ли из-за того, что, (будем говорить так,) после неудачной покупки, цена пошла не в нашу сторону?


телепаты и предсказатели, сегодня работают в другой ветке.

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

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


Я, так понимаю, тут обсуждают советника из последнего урока, Setka, или я дверь перепутал?


Здесь обсуждают конкретные вопросы, по конкретным темам с уклоном в mql4.
В том числе и последний урок, но не все его смотрели. Если спрашиваете что-то, вопрос должен быть конкретным желательно с картинками и кодом. >:dТогда есть большой шанс, что Вас поймут, и Вам ответят.
Ссылка на сообщение
Поделиться на другие сайты

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

Уважаемый "Финансовый махинатор"!!!
Поведайте "внуку лейтенанта Шмидта" вот о чём.
Как избавиться от проблемы зависания счетчика закрытых ордеров? Именно закрытых, с текущими проблем нет. Что в "тестере", что в "жизни" одна хрень - в какой-то момент счетчик просто висит со своими "дурацкими цифрами", бывает, до нескольких суток. А потом Бац!.... и отлипает......вот конь....
Конечно смена ТФ или релоад помогают, НО, хотелось-то чтоб он сам, так сказать, думал чё делает.
Отбор ордеров идет по двум параметрам: дата открытия (ну, мне просто надо это) и, естественно, дата закрытия в пуле MODE_HISTORY.
Ничё хитрого нет. Но виснет, козел.... Я нормально протестировать не могу.
Пробовал применять RefreshRates() на смене дат - не помогает.
Я в тумане.
Буду премного благодарен за прояснение ситуации, а может моих мозгов :))))

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

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

Еще вопросик по округлениям лотов перед отправкой ордеров.
При расчете лота с множителем, например в мартине, если не делать NormalizeDouble, то лот как то странно округляется, по крайней мере в тестере: например при значении 0.0195 открывается лот 0.01.
Т.е. нужно ли в мартинах после расчета ордера применять NormalizeDouble?

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

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

Подскажите пожалуйста, как правильно записать такую функцию:
"Каждый раз, когда сработал любой отложенный ордер, произвести подсчет общего объема открытых buy ордеров"

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

Обучение языку MQL4 под MetaTrader 4 Опубликовано
Ricedeni, в видеоуроках не раз писалась функция типа CountTrades, с помощью которой можно считать ордера. Проверь с помощью нее, нет ли твоих лимиток в рынке, эту же функцию нетрудно модифицировать для подсчета объема ордеров нужного типа с помощью OrderLots(). Если не справишься, напишу, но лучше попытайся потренироваться сам.
Ссылка на сообщение
Поделиться на другие сайты

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


Ricedeni, в видеоуроках не раз писалась функция типа CountTrades, с помощью которой можно считать ордера. Проверь с помощью нее, нет ли твоих лимиток в рынке, эту же функцию нетрудно модифицировать для подсчета объема ордеров нужного типа с помощью OrderLots(). Если не справишься, напишу, но лучше попытайся потренироваться сам.



ok

Добавлено: 25-11-2013 17:10:07

Попытался написать функцию сам, и на этапе планирования алгоритма впал с ступор. Помогите пожалуйста.
Мне нужно, что бы действие выполнялось после того, как ордер из отложенного, стал рыночным.
В учебном видео, говорилось о том, что это можно сделать используя тикет ордера.

Казалось бы, все просто:
1. берем переменную.
2. записываем в нее последний тикет.
3. потом, проверяем не появился ли на рынке более новый тикет, чем тот, что указан в переменной.

Но, что произойдет, после перезагрузки компа? Значение последнего тикета в переменной сотрется.

p.s. Буквально сегодня получил письмо, что на моем vps, на выходных произойдет перезагрузка.
p.p.s. Так и не понял, за что мне минус поставили, вопрос вроде не тривиальный. Изменено пользователем Ricedeni
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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

Помогите разобраться с вызовом пользовательского индикатора. Во внешних настройках индикатора стоит следующее:

extern int A_Period = 20;
extern int A_PriceType = 0;
extern int A_Method = 3;
extern bool Norm = TRUE;
extern int Digits = 2;

Как передать параметры, указанные в 4 и 5 строках, "extern bool Norm" и "extern int Digits"?

A1=iCustom(Symbol(),0,"A induk",new_Period,0,3,?х,?х,1,0);



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

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


Уважаемый "Финансовый махинатор"!!!
Поведайте "внуку лейтенанта Шмидта" вот о чём.
Как избавиться от проблемы зависания счетчика закрытых ордеров? Именно закрытых, с текущими проблем нет. Что в "тестере", что в "жизни" одна хрень - в какой-то момент счетчик просто висит со своими "дурацкими цифрами", бывает, до нескольких суток. А потом Бац!.... и отлипает......вот конь....
Конечно смена ТФ или релоад помогают, НО, хотелось-то чтоб он сам, так сказать, думал чё делает.
Отбор ордеров идет по двум параметрам: дата открытия (ну, мне просто надо это) и, естественно, дата закрытия в пуле MODE_HISTORY.
Ничё хитрого нет. Но виснет, козел.... Я нормально протестировать не могу.
Пробовал применять RefreshRates() на смене дат - не помогает.
Я в тумане.
Буду премного благодарен за прояснение ситуации, а может моих мозгов :))))



Предъявите код, для начала... посмотрим....

Добавлено: 26-11-2013 03:54:00


Помогите разобраться с вызовом пользовательского индикатора. Во внешних настройках индикатора стоит следующее:

extern int A_Period = 20;
extern int A_PriceType = 0;
extern int A_Method = 3;
extern bool Norm = TRUE;
extern int Digits = 2;

Как передать параметры, указанные в 4 и 5 строках, "extern bool Norm" и "extern int Digits"?
A1=iCustom(Symbol(),0,"A induk",new_Period,0,3,?х,?х,1,0);



Параметры в индикатор передаются в порядке их объявления в индикаторе... Соответственно порядок будет такой:
A1=iCustom(Symbol(), 0, "A induk", new_Period, 0, 3, TRUE, 2, 1, 0);
Ссылка на сообщение
Поделиться на другие сайты

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

Упростений язик програмирования торговских систем под MT4

Simple language allow trader to shift focus from technical details to trading logic. Generally, traders are not programmers and will never be. The attempt is to create a handy tool for building automated trading strategies.

RGT49.zip
Introduction.pdf
Engine_options.pdf
Example1.zip
Buffers.pdf

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

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

Подскажите пожалуйста хорошую библиотеку функций. Мне понравилась вот эта (http://codebase.mql4.com/ru/source/20166) много полезных функций, к сожалению, она кривовато работает :(

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

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

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

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

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

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

Войти

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

Войти

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


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

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