kofesutra Опубликовано 17 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 мая, 2017 Пиши в текстовый файл .csv набор нужных полей через разделитель ";" Благодарю Вас за ответ!То есть целесообразно по мэджику/паре создавать свой отдельный файл, а не мечтать об одном файле, но многостраничном с разбивкой по листам? ;) Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 17 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 мая, 2017 Да как угодно! Можете создать один файл для конкретной совы (просто проверять наличие, если нет - создавать), и добавить поля мэджик и пару, или создавать отдельные файлы для каждой пары, можете создать один файл для нескольких сов - ограничение только Ваша фантазия.Многостраничный документ создать таким образом не удастся, для многостраничного xls файла можно взять старенький формат ехеля и писать на нём, но я Вас уверяю - эти усилия не окупятся... 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Verass Опубликовано 18 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 мая, 2017 Здраствуйте!Подскажите пожалуйста - как можно реализовать проверку (и потом возвращать значение) результата прошлой сделки ... Т.е. был ли стоп или профит.Спасибо. Ссылка на сообщение Поделиться на другие сайты More sharing options...
boovood Опубликовано 18 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 мая, 2017 Здраствуйте!Подскажите пожалуйста - как можно реализовать проверку (и потом возвращать значение) результата прошлой сделки ... Т.е. был ли стоп или профит.Спасибо. держи готовый советник:oppositnik.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 18 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 мая, 2017 Подскажите пожалуйста - как можно реализовать проверку (и потом возвращать значение) результата прошлой сделки ... Т.е. был ли стоп или профит.Когда ордер открыт, его тикет записывается в переменную int. Потом ордер исчез - значит его закрыло, выделяете ордер по тикету и читаете его профит: если профит Если был включен трал по СЛ или у Вас сетка, то это не сработает, но в большинстве случаев, имхо самый простой вариант. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
М13 Опубликовано 19 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 мая, 2017 . Изменено 23 мая, 2017 пользователем М13 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Roman 13 Опубликовано 20 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 мая, 2017 Считаем, что рабочий ордер выделен.if ( MathAbs( Bid - OrderOpenPrice() ) > TargetDist * _Point && Bid Здравствуйте нужно чтобы закрытие происходило именно выше Order OpenPrice на заданное кол-во пунктов.А в Вашем примере кода ордер закрывается и ниже , и выше открытия. Изменено 20 мая, 2017 пользователем Roman 13 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 20 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 мая, 2017 закрытие происходило именно выше Order OpenPriceНу тогда так:if ( OrderType() == OP_BUY && Bid - OrderOpenPrice() > TargetDist * _Point && Bid Ссылка на сообщение Поделиться на другие сайты More sharing options...
novikov433 Опубликовано 21 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 мая, 2017 подскажите пожалуйста что начать вдуплять что бы вдуплить что вобще надо вписывать в функциях, хочу написать трнедовую сову на параболике, которую будет фильровать фильтр флента/ транда. так же хочу добавить в алгоритм выход новостей, и сделать так что бы ели случается сильная валотильность появлялась сетка ордеров с динамич лотами после смены тренда на параболике.смотрю щас курс молодого бойца mql, но понимаю что надо для начала самому почитать и попытаться вникнуть что там вобще в параметрах есть . может вобще можно каким нибудь обращом вставить чужой код в свой индюк, что бы не изобретать велосипед, и просто подредактировать что мне надо, исходя из моих потребностей в фильре и сетке ордеров на высокой валотильности с динамич лотом? ну и таким же методом добавить трейлинг стоп, в зависимости от валотильности рынка Изменено 21 мая, 2017 пользователем novikov433 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Roman 13 Опубликовано 22 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 мая, 2017 Ну тогда так:if ( OrderType() == OP_BUY && Bid - OrderOpenPrice() > TargetDist * _Point && Bid Добрый день, а если мы закрываем ордер на продажу , то код будет выглядеть так if ( OrderType() == OP_BUY && OrderOpenPrice() - Bid > TargetDist * _Point && Bid > High[1] ), если так то код не работает, советник закрывает ордера и выше и ниже OrderOpenPrice и не соблюдает TargetDist . Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 22 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 мая, 2017 а если мы закрываем ордер на продажуif ( OrderType() == OP_SELL && OrderOpenPrice() - Bid > TargetDist * _Point && Bid > High[1] )Закрывать Бай будет, Селл не будет. Описывайте внимательнее. Удачи. Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 22 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 мая, 2017 Новый урок http://tradelikeapro.ru/mql4-sobiraem-tikovyie-dannyie/ 4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
MONTE-CRISTO Опубликовано 23 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 мая, 2017 Новый урок http://tradelikeapro.ru/mql4-sobiraem-tikovyie-dannyie/мне кажется по этой теме нужно создать отдельную ветку в рубрике разработки форума! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Roman 13 Опубликовано 24 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 мая, 2017 if ( OrderType() == OP_SELL && OrderOpenPrice() - Bid > TargetDist * _Point && Bid > High[1] )Закрывать Бай будет, Селл не будет. Описывайте внимательнее. Удачи. Здравствуйте , скажите а что делать, если в тестере стратегий все ордера закрываются в соответствии с алгоритмом, а на демо счете ,график 5 мин, ордера закрываются правильно через раз. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 24 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 мая, 2017 а что делать, если в тестере стратегий все ордера закрываются в соответствии с алгоритмом, а на демо счете ,график 5 мин, ордера закрываются правильно через раз.Нужно обрабатывать ошибки при запросе на закрытие ордера и если ордер не закрыт (например оффквот), то через паузу повторять запрос. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Roman 13 Опубликовано 24 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 мая, 2017 Нужно обрабатывать ошибки при запросе на закрытие ордера и если ордер не закрыт (например оффквот), то через паузу повторять запрос. Ордера закрываются все , но неправильно , например ордер Buy должен закрыться выше OrderOpenPrice на 20 пунктов,а в действительности он может закрыться и ниже открытия, или выше , но без соблюдения количества пунктов. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 24 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 мая, 2017 Roman 13 Нужно смотреть логи, нужно вставлять в код Print-ы в которых указывать какой ордер закрывается, причина закрытия, текущая цена и т.д. Потом читать лог и разбираться Ссылка на сообщение Поделиться на другие сайты More sharing options...
d1w4m3 Опубликовано 25 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 мая, 2017 Добрый день!Подскажите, как измерить в пунктах расстояние от , например Ma, до текущей цены? Дошел до этого: double Price = MathAbs(iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,0 )/Point);if (Ask > Price){ punkt = Ask- Priceelse punkt = Price-Ask} Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 мая, 2017 как измерить в пунктах расстояние от , например Ma, до текущей цены?Лучше так: punkt = MathAbs ( Ask - iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,0 ) ) / Point; Ссылка на сообщение Поделиться на другие сайты More sharing options...
d1w4m3 Опубликовано 25 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 мая, 2017 Спасибо а для села так?punkt = MathAbs (iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,0 )-Bid ) / Point;&?? Ссылка на сообщение Поделиться на другие сайты More sharing options...
DreamWorks Опубликовано 25 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 мая, 2017 Спасибо а для села так? d1w4m3, функция MathAbs() возвращает число по модулю, т. е. без знака. Используется здесь как раз для удобства, чтобы не задумываться что из чего вычесть и просто получить абсолютное расстояние. Поэтому можете вычитать хоть цену из средней, хоть среднюю из цены, число вернется одинаковое. А какую цену бид или аск использовать, то тут уже зависит от того, какое расстояние хотите найти: от средней до текущей бид, или от средней до текущей аск. Ссылка на сообщение Поделиться на другие сайты More sharing options...
d1w4m3 Опубликовано 25 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 мая, 2017 СпасибоВот в чем загвоздка, принцип я понял, а вот так возможно? uptr = MathAbs ( Ask - iCustom(NULL, 0, "Slope Direction Line", period, method, price, 0, n) ) / Point; Когда у меня 2 буфера?И потом я задаю условие, /// extern int LevelPunkt = 50;------------------------------------- If (LevelPunkt*Point)>uptr //если кол-во заданных пунктов, больше кол-ва пунктов от Slope до Askто открываем В чем я здесь не прав? Ссылка на сообщение Поделиться на другие сайты More sharing options...
AAchtung Опубликовано 25 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 мая, 2017 Всем доброго времени суток! Заранее извиняюсь за ломанное построение вопроса - немного новичок. Сам вопрос - Как вшить в советника способность торговать в определенные дни недели (выбранные дни отключить) ? Думаю просто скопировать код с советника Generic, но опасаюсь упустить какую-то переменную/функцию. На какие переменные стоит обращать внимание? Или может я ошибся немного веткой?Заранее благодарен за ответ! Ссылка на сообщение Поделиться на другие сайты More sharing options...
DreamWorks Опубликовано 25 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 мая, 2017 Всем доброго времени суток! Заранее извиняюсь за ломанное построение вопроса - немного новичок. Сам вопрос - Как вшить в советника способность торговать в определенные дни недели (выбранные дни отключить) ? Думаю просто скопировать код с советника Generic, но опасаюсь упустить какую-то переменную/функцию. На какие переменные стоит обращать внимание? Или может я ошибся немного веткой?Заранее благодарен за ответ! Здравствуйте! Самый простейший вариант выглядит примерно так://эту переменную объявляем во входных параметрахextern int NonTradingDay=1;//Неторговый день(1-понедельник, 5-пятница)//эту строчку пишем в самом верху внутри функции OnTick() if(TimeDayOfWeek(TimeCurrent())==NonTradingDay)return; Но тут следует учесть, что при таком варианте советник не будет делать вообще ничего. Т.е. если у Вас будут в рынке ордера, открытые до наступления неторгового дня, то бот никак их обрабатывать не сможет. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 мая, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 мая, 2017 d1w4m3 если хотите, чтоб Бай открылся строго на линии, то для Бая нужно использовать Аск. Но имейте в виду, что при использовании функции MathAbs у Вас будет два сигнала - один выше линии и один ниже, если это имеет значение, то MathAbs не используйте!!! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти