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

От xbms, 13 апреля, 2013 в Уголок Программиста

#4551

/// 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.

#4552

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


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

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

SLOPE2.mq41 скач.

Изменено 26 мая, 2017 пользователем d1w4m3

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

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

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


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


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

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

#4559

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

well72_QuBe_1.01.mq43 скач.

#4560

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


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

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


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


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

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


Вот что значит невнимательно пользоваться заготовками... Спасибо)
#4562

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

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

Спасибо, поразмыслю, как лучше все таки

#4564

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

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

#4565

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

#4566

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

Изменено 27 мая, 2017 пользователем Leery

#4567


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

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

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

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

Изменено 27 мая, 2017 пользователем dimakTR

#4569


Не пойму в чем ошибка(
Проблема, чтобы задать условие, если сигнал дальше 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)

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

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



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

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



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

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


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

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



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

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

#4575

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

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

Перейти к списку тем
Форум · 2.0.20260627.0025