kist11122111 Опубликовано 22 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 октября, 2014 В скрипте есть, вот я и хотел подобный алгоритм задействовать в про трейдер. Добавлено: 22-10-2014 22:06:45Я так понимаю вы имеете в виду про файл .ex4? Да его там нет, поэтому я задался поиском решения. скрипт работает хорошо, но не учитывает проскальзывание. в про трейдер это учтено... В итоге при торговле на быстром рынке мой выставленный ордер не открывается по нужной мне цене. Не могли бы вы помочь добавить в скрипт величину проскальзывания? Изменено 22 октября, 2014 пользователем kist11122111 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 23 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 октября, 2014 Действительно слиппаж был 3 пипса. Вынес в настройки, заодно и коммент к ордерам OpenStopOrderNet_v3.mq4 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
kist11122111 Опубликовано 23 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 октября, 2014 СПАСИБО ОГРОМНОЕ \M/. Выручили.... Добавлено: 23-10-2014 15:57:29Значение проскальзывания для 5 или 4х знака? Изменено 23 октября, 2014 пользователем kist11122111 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 23 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 октября, 2014 Значение проскальзывания для 5 или 4х знака? проскальзывание для Вашего брокера. ;) - значение напрямую брокеру передаётся без форматирования. Изменено 23 октября, 2014 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
35aleks Опубликовано 24 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 октября, 2014 не подскажите как правильно закрыть ордер по закрытию дневной свечи Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 24 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 октября, 2014 не подскажите как правильно закрыть ордер по закрытию дневной свечиЯ так понял как закрывать ордера Вы знаете - нужно выписать условие на закрытие?Вот код отслеживающий открытие новой свечи (само закрытие Вы не поймаете или надо ловить 23-55 чтоб своп не получить, но только если по инструменту тики будут): static datetime ToDay; if (ToDay { //Первый тик нового дня ToDay = iTime(_Symbol, PERIOD_D1, 1); //Здесь Ваш код закрытия ... } Ссылка на сообщение Поделиться на другие сайты More sharing options...
35aleks Опубликовано 24 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 октября, 2014 у меня открывает по сигналу дня недели и iOpen[0]а закрывает тут же в эту секундухотя закрытие делаю iClose[0] Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 24 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 октября, 2014 хотя закрытие делаю iClose[0]Я даже не понял, что Вы делаете... Может код дадите? Ссылка на сообщение Поделиться на другие сайты More sharing options...
mobidik Опубликовано 24 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 октября, 2014 у меня открывает по сигналу дня недели и iOpen[0]а закрывает тут же в эту секундухотя закрытие делаю iClose[0] Для текущего, нулевого, бара iClose[0] равносильно текущему значению цены, если бар закрылся, то он уже не может быть нулевым, поэтому и происходит сразу закрытие. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Crik1978 Опубликовано 24 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 октября, 2014 По данной ссылке, представлены информаторы, которые показывают на графике уровень ТП и СЛ с суммой прибыли или убытка.Я имел ввиду совсем другое.....Информаторы показывают: лот Х пункты = прибыльВаша задача: лот = прибыль / пункты.Справитесь? Всем привет!Что-то не получается решить данную задачу. Нужна помощь. :( Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 октября, 2014 Что-то не получается решить данную задачу. Нужна помощь. :(Прости - уже не вспомню. Сформулируй свою задачу заново, может попытку решения - свою реализацию. Ссылка на сообщение Поделиться на другие сайты More sharing options...
oleguitar Опубликовано 25 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 октября, 2014 Всем добрый день!Возник вопросик такой...Мне нужно закрывать все ордера в первый торговый день нового месяца (или в последний, не суть)Проблема в том, что выставив условие if (Day() == 1) , мы игнорируем те месяцы, где 1 число выпадает на выходныеВедь как я понимаю, нельзя написать if (Day() Как быть? :-? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 октября, 2014 oleguitar Есть универсальный алгоритм static int day_MN; if (day_MN > Day()) { //Новый месяц ... } day_MN = Day(); Ссылка на сообщение Поделиться на другие сайты More sharing options...
Crik1978 Опубликовано 25 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 октября, 2014 Что-то не получается решить данную задачу. Нужна помощь. :(Прости - уже не вспомню. Сформулируй свою задачу заново, может попытку решения - свою реализацию. Всем привет!Задача следующая: открыт ордер № 1 на покупку с лотом 0,01, цена опустилась ниже на 10 пунктов, необходимо открыть ордер № 2 на покупку с лотом N с условием что ордер № 2 при повышении цены на спред закрыл оба ордера в плюс. Какой должен быть лот ордера № 2? Например: профит по открытым ордерам на покупку составляет -4,59 руб, необходимо открыть еще ордер на покупку с увеличенным лотом, чтобы он за спред перекрыл отрицательный профит =-4,59 руб. Изменено 25 октября, 2014 пользователем Crik1978 Ссылка на сообщение Поделиться на другие сайты More sharing options...
oleguitar Опубликовано 25 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 октября, 2014 static int day_MN; // -не совсем понятно, что такое static if (day_MN > Day()) // - а чему равен day_MN , если эта переменная ничего не содержит? { //Новый месяц // - здесь нужно условия ставить ? ... } day_MN = Day();В целом просто не понятно, что делает этот кусок кода, не вижу, можно в двух словах хотя бы?И еще вопрос.. Столкнулся с проблемой очень медленного тестирования на истории, как ускорить процесс?Если задавать все переменные в самом начале, еще перед void OnTick(), это поможет? И какие в целом могут быть причины медленного тестирования? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 октября, 2014 Crik1978 Ответ: Лот2 = Лот1 * (ЦЗ - ЦО1) / (ЦО2 - ЦЗ), где ЦЗ - цена предполагаемого закрытия, ЦО - цена открытия. Обычной пропорцией решается. Если ЦЗ = ЦО2 + Спрэд, то в знаменателе остаётся спрэд.oleguitar про static - хотите чтоб я вам справочник сюда постил? x( В данном случае это глобальная переменнаяday_MN при запуске = 0, а потом содержит пред. день недели Цитата здесь нужно условия ставить ? А я - знаю? в скобках код, отрабатывающий на первом тике нового месяца = что хотите туда пишите. Цитата Столкнулся с проблемой очень медленного тестирования на истории, как ускорить процесс? В любом случае слишком много циклов и на каждом тике, например народ любит на каждом тике ордера пересчитывать, до ещё и по нескольку раз. нужно разделять задачи. Например опрашивать индюки и искать точку входа только по закрытию бара (а не на каждом тике)Да много чего - целую книгу можно написать об оптимизации кода. перенос переменных ничего не даст Изменено 25 октября, 2014 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
oleguitar Опубликовано 25 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 октября, 2014 Я не подумал просто, что static - это тип такой) сори ;)Теперь вроде ясноА если бы мы объявили обычную int a = -1 , скажем, то, как я понимаю, она на каждом тике все равно принимала бы значение -1 ?А.. то есть взять тот кусок кода, где я беру с индикаторов показания, можно запускать по разу в начале бара с помощью такой же статичной переменной?например, static int newHour; if (newHour > Hour()) { // Берем показания индикаторов ... } newHour = Hour();Отсюда вопрос: а что будет, когда newBar будет равен 23, а новый час - 0 ?можно ли так сделать:void Ontick(){ static int newBar; if (newHour >24) newBar = 0;{ if (newBar > Hour()) { // Берем показания индикаторов ... }} newBar = Hour();... Условия открытия ордера} Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 октября, 2014 oleguitar по int a = -1 на каждом проходе = -1Не усложняй - всё проще: static int newHour; if (newHour != Hour()) { // Берем показания индикаторов ... } newHour = Hour();Иногда, если мне тики не нужны, делаю так: static int newHour; if (newHour == Hour()) return; newHour = Hour(); //и далее код, исполняемый раз в начале нового часа Ссылка на сообщение Поделиться на другие сайты More sharing options...
oleguitar Опубликовано 25 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 октября, 2014 Точно! здорово Изменено 25 октября, 2014 пользователем oleguitar Ссылка на сообщение Поделиться на другие сайты More sharing options...
Strong-Tezis Опубликовано 26 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 октября, 2014 Здравствуйте. Помогите пожалуйста доделать индикатор. Нужно что бы он не стирал предидущие линии, а что бы их можно было просмотреть на истории за N свечей. cm_ind_Level.mq4 Изменено 26 октября, 2014 пользователем Strong-Tezis Ссылка на сообщение Поделиться на другие сайты More sharing options...
35aleks Опубликовано 26 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 октября, 2014 спасибо всем решил проблему через тайм сериюеще вопрос может кто подскажет как отключить трал через bool значение что то не получаетсяvoid Trailing(){ trali=true; { for (int i = 0; i { if ( OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magic) { if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() > tralstop * Point) { if (OrderStopLoss() { SL = NormalizeDouble(Bid - tralstop * Point, Digits); if (OrderStopLoss() != SL) if(OrderModify(OrderTicket(), OrderOpenPrice(), SL, 0, 0)) return(trali); } } } else if (OrderType() == OP_SELL) { if (OrderOpenPrice() - Ask > tralstop * Point) { if (OrderStopLoss() > Ask + (tralstop + tralstep) * Point) { SL = NormalizeDouble(Ask + tralstop * Point, Digits); if (OrderStopLoss() != SL) if(OrderModify(OrderTicket(), OrderOpenPrice(), SL, 0, 0)) return(trali); } } } } } } } return;} Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 26 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 октября, 2014 Видимо опять мне придётся...Кривоватый индюк, допилил:- при снятии с графика - убирает за собой- подрезал тонкие линии, иначе от их обилия свеч не видно. cm_ind_Level_mod_0ll.mq4 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 26 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 октября, 2014 еще вопрос может кто подскажет как отключить трал через bool значение Зачем нам код Вашего трала? - трал выключается в том месте, где идёт вызов:if (bool) Trailing(); 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
35aleks Опубликовано 26 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 октября, 2014 еще вопрос может кто подскажет как отключить трал через bool значение Зачем нам код Вашего трала? - трал выключается в том месте, где идёт вызов:if (bool) Trailing(); спасибо все получилось Ссылка на сообщение Поделиться на другие сайты More sharing options...
Strong-Tezis Опубликовано 26 октября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 октября, 2014 Видимо опять мне придётся...Кривоватый индюк, допилил:- при снятии с графика - убирает за собой- подрезал тонкие линии, иначе от их обилия свеч не видно. Спасибо за Вашу помощь и отзывчивость. Была идея кое что опробовать, наконец то посмотрю что получится. Еще раз огромное Спасибо. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти