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

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


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

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

/// extern int LevelPunkt = 50;
--------------------------
uptr = MathAbs ( Ask - iCustom(NULL, 0, "Slope Direction Line", period, method, price, 0, n) ) / Point;
И потом я задаю условие,
-------------------------------------
If (LevelPunkt*Point)>uptr //если кол-во заданных пунктов, больше кол-ва пунктов от Slope до Ask, то открываем.

В чем я здесь не прав?
Задача чтобы он не открывал дальше определенного количества пунктов от Slope.

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

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

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

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

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

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

Перейти

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

Перейти

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

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

В чем я здесь не прав?


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

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

Не пойму в чем ошибка(
Проблема, чтобы задать условие, если сигнал дальше N кол-ва пунктов от Slope, то вход запрещен.

SLOPE2.mq4

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

Обучение языку MQL4 под MetaTrader 4 Опубликовано
d1w4m3 последний раз намекаю: чтоб найти ошибку нужно знать что Вы задумали.
N пунктов от Слоп какой? верхней? Вы дистанцию внутрь или наружу считаете? ордер не открывался какой? Бай или Селл?
Больше спрашивать не буду.
Ссылка на сообщение
Поделиться на другие сайты

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

Всем привет!
Может у кого возникнет свежая идея по поводу моей дилеммы с одним алгоритмом.
Есть сайты определенные, которые, клацая на кнопочки, позволяют торговать бинарниками.
Мне нужно получить доступ к торговле через советник мкуэль4.
Суть вот в чем. На некоторых платформах есть параметры в строке адреса, но я их все не знаю наверняка. Теоретически можно подобрать подходящие данные для пост запроса, но это геморно. Или можно негеморно как-то?
Второй вариант - написать библиотеку, в которой будет создаваться браузер как ком обьект и уже через него клацать нужные элементы страницы, обращаясь к ним по айди. Но тут вопрос с авторизацией на сайтах нужных. Как это удобнее сделать.
И третий вариант, сделать просто кликер.
Итого: первый вариант мне кажется геморным из-за подбора правильного запроса плюс не у всех брокеров можно так делать.
Третий вариант предполагает связку один терем-один браузер, причем всегда поверх всех окон.
Второй вариант наиболее перспективный вроде - можно работать с большим количеством брокеров из одного сова и не надо открытым держать браузер.
Возможно, я где то заблуждаюсь, а может есть более простые пути.
Может кто подскажет.

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

Обучение языку MQL4 под MetaTrader 4 Опубликовано
Silentspec я уже писал тебе ранее, делал такую вещь по 2 варианту (правда давно 2005). Вешал на форму браузер (причём не видимый) грузил туда брокера, авторизовался, ждал загрузки основного окна, потом делал там что хотел. Для каждого брока надо выписывать полностью свой алгоритм + дизайн может меняться (на такое тоже попадал). Но в этом варианте нет никаких ограничений.
С кликером проще, но могут быть косяки. Надо самому открывать окна (следить за разрешением рабочей области), потом по очереди делать окна активными и кликать. В принципе настройку кликера можно возложить на пользователя - написать инструкцию и всё! Пользователь сам открывает окна, авторизуется у брокера, потом вносит заголовки окон в настройки кликера и координаты кнопок.
Ссылка на сообщение
Поделиться на другие сайты

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


d1w4m3 последний раз намекаю: чтоб найти ошибку нужно знать что Вы задумали.
N пунктов от Слоп какой? верхней? Вы дистанцию внутрь или наружу считаете? ордер не открывался какой? Бай или Селл?
Больше спрашивать не буду.


ммм... У Slope есть два буфера, проще говоря uptrend и dntrend, соответственно для села я считаю дистанцию от dntrend, а для бая от uptrend
дистанцию измеряю во внутрь, если сигнал в диапазоне от Slope(up или dn) до N пунктов, то вход разрешен
Ссылка на сообщение
Поделиться на другие сайты

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

Oll, видимо я забыл. Ну вобщем предположение о том, что второй вариант лучше всего, похоже, верный. В принципе я так и думал. Про дизайн только вот не было мысли:)
То, что для каждого брокера свой алгоритм, это понятно. Под каждого брокера получается в советнике нужно будет создавать отдельный обьект браузера, верно? То есть для каждого брока надо в библиотеке свой класс, плюс отдельно в сове каждый вызывать, так? Или одна длл - один браузер и один брокер?

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

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

Привет, коллеги!
Странная ситуация: не могу скомпилировать робота. Причем боты, написанные раньше, компилируются без вопросов. А у этого ошибки на пустом месте вылезают...
Подскажите, что не так?

well72_QuBe_1.01.mq4

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

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

Привет, коллеги!
Странная ситуация: не могу скомпилировать робота. Причем боты, написанные раньше, компилируются без вопросов. А у этого ошибки на пустом месте вылезают...
Подскажите, что не так?


В строке 49 в функции Comment() закройте скобку и поставьте точку с запятой... <:-p>

Comment("up: " + DoubleToString(up, 8), "\n",
"down: " + DoubleToString(down, 8), "\n");
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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


Привет, коллеги!
Странная ситуация: не могу скомпилировать робота. Причем боты, написанные раньше, компилируются без вопросов. А у этого ошибки на пустом месте вылезают...
Подскажите, что не так?


В строке 49 в функции Comment() закройте скобку и поставьте точку с запятой... <:-p>

Comment("up: " + DoubleToString(up, 8), "\n",
"down: " + DoubleToString(down, 8), "\n");


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

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

Под каждого брокера получается в советнике нужно будет создавать отдельный обьект браузера, верно? То есть для каждого брока надо в библиотеке свой класс, плюс отдельно в сове каждый вызывать, так? Или одна длл - один браузер и один брокер?

Я бы вынес настройки во внешний файл, сколько строк - столько браузеров. Браузеры в массив объектов. потом коннект, контроль, логин (кстати пароли будешь забивать в файл настроек? небезопасно, можно спрашивать пользователя при запуске, а если связь будет потеряна, можно шифровать...), контроль, загрузка рабочей страницы, контроль загрузки, возврат флага готовности брока. Да... писать и писать...
Может всё-таки через кликер? Пользователь сам входит к броку и потом регает окно в кликере, указывает бай, селл, и выбор лотности, а может броки дадут с клавы торговать? - ещё проще, делаешь окно активным и посылаешь коды клавиш...
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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

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

AccountMargin() возвращает общую сумму залога по всему счету - это я знаю. Но как получить сумму залога в валюте депозита по нужной мне паре отдельно?

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

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

Можно же посмотреть как это происходит в калькуляторе трейдера в Альпари и просто скопировать логику в MQL.

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

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

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

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

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


Вот калькулятор альпари: _alpari.ru/ru/trading/calculator/
Как здесь можно усмотреть хоть какую-то логику, если он просто выдает результат?
Ссылка на сообщение
Поделиться на другие сайты

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

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

Окей. Тогда можно просто схему работы в Екселе накидать и уже перевести в MQL 4

Лот*Объем одного целого лота(100 000)*ЦенаЗакрытия(Ask)/Плечо

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

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


Не пойму в чем ошибка(
Проблема, чтобы задать условие, если сигнал дальше N кол-ва пунктов от Slope, то вход запрещен.

Посмотрел Ваш советник. В условии открытия везде пишите dnPunkt, а upPunkt не используете.
По условиям я бы сделал сначала проверку открытых ордеров и если их нет проверял остальное - так сова будет быстрее работать:
if(CountSell() > 0 || CountBuy() > 0) return;

Далее условие uptr!=dntr - не понял, эти два буфера по идее никогда не равны, но могу ошибаться...
Если они всё-таки пересекаются, то это не важно, условие типа DN_Trend()==true && LastTradeSignal != OP_SELL успешно это нивелируют.

Так что останется это для OP_SELL
if(DN_Trend()==true && LastTradeSignal != OP_SELL && (LevelPunkt*Point)>dnPunkt)
и это для OP_BUY
if(UP_Trend()==true && LastTradeSignal != OP_BUY && (LevelPunkt*Point)>upPunkt)

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

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

Лот*Объем одного целого лота(100 000)*ЦенаЗакрытия(Ask)/Плечо



Логику данной формулы не могли бы прояснить? Причем тут вообще цена закрытия?
Ссылка на сообщение
Поделиться на другие сайты

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

Логику данной формулы не могли бы прояснить? Причем тут вообще цена закрытия?



В формуле ошибка однозначно, там не цена закрытия, а курс на момент открытия позиции. Ответ на Ваш вопрос на том же Альпари - _http://www.alpari.ru/ru/faq/trading_terms/calculating_required_margin/
Ссылка на сообщение
Поделиться на другие сайты

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

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


Leery, под корректировкой лота Вы имеете ввиду его уменьшение? Если так, то воспользуйтесь функцией частичного закрытия ордера.
Ссылка на сообщение
Поделиться на другие сайты

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

Господа программисты, помогите пожалуйста новичку. Как реализовать функцию корректировки лота по риску на депозит в момент срабатывания отложки, причем сработавших отложек может быть несколько и каждую нужно скорректировать. Насколько я понимаю нужно открывать дополнительные ордера, только вот с подсчетом их(ордеров) и чтобы не открывались лишние я запутался
Leery, под корректировкой лота Вы имеете ввиду его уменьшение? Если так, то воспользуйтесь функцией частичного закрытия ордера.



Нет, так как с момента установки отложки до ее активации проходит какое то время, зачастую немалое, баланс(экви) может за это время изменится. Поэтому есть желание выставлять отложку с минимальным лотом, а в момет активации производить его корректировку, я так понимаю открытием дополнительного ордера. Не могу сообразить как выбрать последнюю сработавшую отложку и выставить ОДИН дополнительный ордер с ее параметрами и расчитаным лотом
Ссылка на сообщение
Поделиться на другие сайты

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

Добрый вечер!
Пробую писать бота на внешнем индикаторе, используя его показания с двух таймфреймов. В тестере не торгует и ошибок не пишет. Это нормально?

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

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

Всем привет! пожалуйста имеет ли смысл на первых парах лезть в написание сов именно с 0?, или лучше просто научится для начала понимать логику работы в конструктарах на блоках, и потом например вручную дописывать уже непосредственно в самом алгоритме пирамидинг, усреднение и т.д? вот что нашел именно для mql:
_http://www.roboforex.com/ru/forex-trading/trading/strategy-quant-ea-constructor/
_http://quant.fxpro.ru/
пока ещё мозг не соображает какие действия вобще надо делать в зависимости от цели.
и вобще что посоветуете? вначале разобраться mql 4,5 + конструкторы и только потом лезть в tslab например, или по сути там логика полностью идентична совам на mql?
где вобще на счёт логики могут подсказать? например более менее понятно какие параметры задают в шапке, что надо вписать для открытия ордеров на сел или бай, а вот дальше нечего не понятно.
КАК ВОБЩЕ СОВМЕСТИТЬ В ОДНОЙ СОВЕ ПИРАМИДИНГ, УСРЕДНЕНИЕ, МАРТИН И СДЕЛАТЬ ТАК ЧТО БЫ СОВА АВТОМАТОМ ЗАКРЫВАЛА СДЕЛКИ ПОСЛЕДНИЕ В ПЯТНИЦУ И ОТКРЫВАЛА В ПОНЕДЕЛЬНИК

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

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

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

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

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

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

Войти

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

Войти

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


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

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