/// 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.
Обучение языку MQL4 под MetaTrader 4📌
От xbms, 13 апреля, 2013 в Уголок Программиста
В чем я здесь не прав?
В том что не указали все условия открытия сделки. Вот я в душе не чаю - на отбой линии слоп или на пробой, данное условие для Селл или Бай. Не знаю чем помочь...
Не пойму в чем ошибка(
Проблема, чтобы задать условие, если сигнал дальше N кол-ва пунктов от Slope, то вход запрещен.
Изменено 26 мая, 2017 пользователем d1w4m3
N пунктов от Слоп какой? верхней? Вы дистанцию внутрь или наружу считаете? ордер не открывался какой? Бай или Селл?
Больше спрашивать не буду.
Всем привет!
Может у кого возникнет свежая идея по поводу моей дилеммы с одним алгоритмом.
Есть сайты определенные, которые, клацая на кнопочки, позволяют торговать бинарниками.
Мне нужно получить доступ к торговле через советник мкуэль4.
Суть вот в чем. На некоторых платформах есть параметры в строке адреса, но я их все не знаю наверняка. Теоретически можно подобрать подходящие данные для пост запроса, но это геморно. Или можно негеморно как-то?
Второй вариант - написать библиотеку, в которой будет создаваться браузер как ком обьект и уже через него клацать нужные элементы страницы, обращаясь к ним по айди. Но тут вопрос с авторизацией на сайтах нужных. Как это удобнее сделать.
И третий вариант, сделать просто кликер.
Итого: первый вариант мне кажется геморным из-за подбора правильного запроса плюс не у всех брокеров можно так делать.
Третий вариант предполагает связку один терем-один браузер, причем всегда поверх всех окон.
Второй вариант наиболее перспективный вроде - можно работать с большим количеством брокеров из одного сова и не надо открытым держать браузер.
Возможно, я где то заблуждаюсь, а может есть более простые пути.
Может кто подскажет.
С кликером проще, но могут быть косяки. Надо самому открывать окна (следить за разрешением рабочей области), потом по очереди делать окна активными и кликать. В принципе настройку кликера можно возложить на пользователя - написать инструкцию и всё! Пользователь сам открывает окна, авторизуется у брокера, потом вносит заголовки окон в настройки кликера и координаты кнопок.
d1w4m3 последний раз намекаю: чтоб найти ошибку нужно знать что Вы задумали.
N пунктов от Слоп какой? верхней? Вы дистанцию внутрь или наружу считаете? ордер не открывался какой? Бай или Селл?
Больше спрашивать не буду.
ммм... У Slope есть два буфера, проще говоря uptrend и dntrend, соответственно для села я считаю дистанцию от dntrend, а для бая от uptrend
дистанцию измеряю во внутрь, если сигнал в диапазоне от Slope(up или dn) до N пунктов, то вход разрешен
Oll, видимо я забыл. Ну вобщем предположение о том, что второй вариант лучше всего, похоже, верный. В принципе я так и думал. Про дизайн только вот не было мысли:)
То, что для каждого брокера свой алгоритм, это понятно. Под каждого брокера получается в советнике нужно будет создавать отдельный обьект браузера, верно? То есть для каждого брока надо в библиотеке свой класс, плюс отдельно в сове каждый вызывать, так? Или одна длл - один браузер и один брокер?
Привет, коллеги!
Странная ситуация: не могу скомпилировать робота. Причем боты, написанные раньше, компилируются без вопросов. А у этого ошибки на пустом месте вылезают...
Подскажите, что не так?
Привет, коллеги!
Странная ситуация: не могу скомпилировать робота. Причем боты, написанные раньше, компилируются без вопросов. А у этого ошибки на пустом месте вылезают...
Подскажите, что не так?
В строке 49 в функции Comment() закройте скобку и поставьте точку с запятой... <:-p>
Comment("up: " + DoubleToString(up, 8), "\n",
"down: " + DoubleToString(down, 8), "\n");
Привет, коллеги!
Странная ситуация: не могу скомпилировать робота. Причем боты, написанные раньше, компилируются без вопросов. А у этого ошибки на пустом месте вылезают...
Подскажите, что не так?
В строке 49 в функции Comment() закройте скобку и поставьте точку с запятой... <:-p>
Comment("up: " + DoubleToString(up, 8), "\n",
"down: " + DoubleToString(down, 8), "\n");
Вот что значит невнимательно пользоваться заготовками... Спасибо)
Я бы вынес настройки во внешний файл, сколько строк - столько браузеров. Браузеры в массив объектов. потом коннект, контроль, логин (кстати пароли будешь забивать в файл настроек? небезопасно, можно спрашивать пользователя при запуске, а если связь будет потеряна, можно шифровать...), контроль, загрузка рабочей страницы, контроль загрузки, возврат флага готовности брока. Да... писать и писать...Под каждого брокера получается в советнике нужно будет создавать отдельный обьект браузера, верно? То есть для каждого брока надо в библиотеке свой класс, плюс отдельно в сове каждый вызывать, так? Или одна длл - один браузер и один брокер?
Может всё-таки через кликер? Пользователь сам входит к броку и потом регает окно в кликере, указывает бай, селл, и выбор лотности, а может броки дадут с клавы торговать? - ещё проще, делаешь окно активным и посылаешь коды клавиш...
Спасибо, поразмыслю, как лучше все таки
Здравствуйте, подскажите кто разбирается, как можно подсчитать сумму залога по одной (любой) выбранной валютной паре?
AccountMargin() возвращает общую сумму залога по всему счету - это я знаю. Но как получить сумму залога в валюте депозита по нужной мне паре отдельно?
Можно же посмотреть как это происходит в калькуляторе трейдера в Альпари и просто скопировать логику в MQL.
Господа программисты, помогите пожалуйста новичку. Как реализовать функцию корректировки лота по риску на депозит в момент срабатывания отложки, причем сработавших отложек может быть несколько и каждую нужно скорректировать. Насколько я понимаю нужно открывать дополнительные ордера, только вот с подсчетом их(ордеров) и чтобы не открывались лишние я запутался :(
Изменено 27 мая, 2017 пользователем Leery
Вот калькулятор альпари: _alpari.ru/ru/trading/calculator/
Как здесь можно усмотреть хоть какую-то логику, если он просто выдает результат?
В коде сайта найти .js скрипт который отвечает за расчеты. Проверил, но он к сожалению минифицирован и логику не углядеть.
Окей. Тогда можно просто схему работы в Екселе накидать и уже перевести в MQL 4
Лот*Объем одного целого лота(100 000)*ЦенаЗакрытия(Ask)/Плечо
Изменено 27 мая, 2017 пользователем dimakTR
Посмотрел Ваш советник. В условии открытия везде пишите dnPunkt, а upPunkt не используете.
Не пойму в чем ошибка(
Проблема, чтобы задать условие, если сигнал дальше N кол-ва пунктов от Slope, то вход запрещен.
По условиям я бы сделал сначала проверку открытых ордеров и если их нет проверял остальное - так сова будет быстрее работать:
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)
Пробуйте, если будут ошибки вставляйте скрин с пояснениями, а то понять на словах не просто...
Лот*Объем одного целого лота(100 000)*ЦенаЗакрытия(Ask)/Плечо
Логику данной формулы не могли бы прояснить? Причем тут вообще цена закрытия?
Логику данной формулы не могли бы прояснить? Причем тут вообще цена закрытия?
В формуле ошибка однозначно, там не цена закрытия, а курс на момент открытия позиции. Ответ на Ваш вопрос на том же Альпари - _http://www.alpari.ru/ru/faq/trading_terms/calculating_required_margin/
Господа программисты, помогите пожалуйста новичку. Как реализовать функцию корректировки лота по риску на депозит в момент срабатывания отложки, причем сработавших отложек может быть несколько и каждую нужно скорректировать. Насколько я понимаю нужно открывать дополнительные ордера, только вот с подсчетом их(ордеров) и чтобы не открывались лишние я запутался
Leery, под корректировкой лота Вы имеете ввиду его уменьшение? Если так, то воспользуйтесь функцией частичного закрытия ордера.
Господа программисты, помогите пожалуйста новичку. Как реализовать функцию корректировки лота по риску на депозит в момент срабатывания отложки, причем сработавших отложек может быть несколько и каждую нужно скорректировать. Насколько я понимаю нужно открывать дополнительные ордера, только вот с подсчетом их(ордеров) и чтобы не открывались лишние я запутался
Leery, под корректировкой лота Вы имеете ввиду его уменьшение? Если так, то воспользуйтесь функцией частичного закрытия ордера.
Нет, так как с момента установки отложки до ее активации проходит какое то время, зачастую немалое, баланс(экви) может за это время изменится. Поэтому есть желание выставлять отложку с минимальным лотом, а в момет активации производить его корректировку, я так понимаю открытием дополнительного ордера. Не могу сообразить как выбрать последнюю сработавшую отложку и выставить ОДИН дополнительный ордер с ее параметрами и расчитаным лотом
Добрый вечер!
Пробую писать бота на внешнем индикаторе, используя его показания с двух таймфреймов. В тестере не торгует и ошибок не пишет. Это нормально?
Всем привет! пожалуйста имеет ли смысл на первых парах лезть в написание сов именно с 0?, или лучше просто научится для начала понимать логику работы в конструктарах на блоках, и потом например вручную дописывать уже непосредственно в самом алгоритме пирамидинг, усреднение и т.д? вот что нашел именно для mql:
_http://www.roboforex.com/ru/forex-trading/trading/strategy-quant-ea-constructor/
_http://quant.fxpro.ru/
пока ещё мозг не соображает какие действия вобще надо делать в зависимости от цели.
и вобще что посоветуете? вначале разобраться mql 4,5 + конструкторы и только потом лезть в tslab например, или по сути там логика полностью идентична совам на mql?
где вобще на счёт логики могут подсказать? например более менее понятно какие параметры задают в шапке, что надо вписать для открытия ордеров на сел или бай, а вот дальше нечего не понятно.
КАК ВОБЩЕ СОВМЕСТИТЬ В ОДНОЙ СОВЕ ПИРАМИДИНГ, УСРЕДНЕНИЕ, МАРТИН И СДЕЛАТЬ ТАК ЧТО БЫ СОВА АВТОМАТОМ ЗАКРЫВАЛА СДЕЛКИ ПОСЛЕДНИЕ В ПЯТНИЦУ И ОТКРЫВАЛА В ПОНЕДЕЛЬНИК
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем