Присоединяйтесь к нашему инвестиционному форуму, на котором уже 515,528 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение - зарегистрируйтесь прямо сейчас.
Обсуждение синтаксиса, функций и процедур языка MQL. Обмен опытом, своими фрагментами кода. Оптимизация кода. Предложения и заказы на разработку советников.
Старый 08.11.2014, 10:24
Реклама: Место для Вашего объявления!
#1
Любитель
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 24.07.2013
Сообщений: 230
Благодарностей: 74
Вопрос по MQL4

В сети много раз встречал функции по определению времени до конца текущего бара. Но все они работали с TimeCurrent, через серверное время. Это вызывает задержку таймера, т.к. тик приходит не каждую секунду и время таймера останавливается. Или получается отрицательное время, по той же причине, что новый бар уже есть, а время еще не обновилось... Советник работает через OnTimer (обновляется каждую секунду, а не с новым тиком).

Прошу подсказать, возможно ли реализовать таймер оставшегося времени до закрытия текущей свечи через TimeLocal, обновление которого происходит каждую секунду и обновляется при открытии новой свечи. Что-то пробовал, но при первом запуске советника, таймер показывает полное время до закрытия, хотя уже прошло половина свечи.
Можно уместить такие расчеты в пределах функции, без внешних переменных?

Большое спасибо!

Последний раз редактировалось workspree; 08.11.2014 в 10:30.
workspree вне форума
Старый 08.11.2014, 23:32
Реклама: Место для Вашего объявления!
#2
Мастер
 
Пол: Мужской
Возраст: 41
Адрес: Украина
Инвестирую в: Форекс
Регистрация: 31.07.2009
Сообщений: 6,217
Благодарностей: 2,062
Re: Вопрос по MQL4

Цитата:
Сообщение от workspree Посмотреть сообщение
Прошу подсказать, возможно ли реализовать таймер оставшегося времени до закрытия текущей свечи через TimeLocal, обновление которого происходит каждую секунду и обновляется при открытии новой свечи. Что-то пробовал, но при первом запуске советника, таймер показывает полное время до закрытия, хотя уже прошло половина свечи.
Можно уместить такие расчеты в пределах функции, без внешних переменных?
По идее Вам надо надо 3-4 операции сделать:
1. при 00 минут через TimeLocal узнаем общее время
2. через TimeLocal узнаем Ваше текущее время
3. узнаем ТФ, например М15, т.е. 15*60=900сек, Ваше текущее время - на 00 мин, хм. а вот дальше надо уже думать... пойду поужинаю, авось что и придет на ум...
__________________
НЕ инвестирую в проверенных трейдеров ФТ: Свена, Votfx, Ahmedos
Хочешь заставить свой комп работать быстрее?
прошу в мою тему Оптимизация Windows(платно!)
Ponomarenko Roman вне форума
Старый 09.11.2014, 03:08
Реклама: Место для Вашего объявления!
#3
Специалист
 
Пол: Мужской
Регистрация: 02.02.2013
Сообщений: 690
Благодарностей: 515
Re: Вопрос по MQL4

Цитата:
Сообщение от workspree Посмотреть сообщение
В сети много раз встречал функции по определению времени до конца текущего бара. Но все они работали с TimeCurrent, через серверное время. Это вызывает задержку таймера, т.к. тик приходит не каждую секунду и время таймера останавливается. Или получается отрицательное время, по той же причине, что новый бар уже есть, а время еще не обновилось... Советник работает через OnTimer (обновляется каждую секунду, а не с новым тиком).

Прошу подсказать, возможно ли реализовать таймер оставшегося времени до закрытия текущей свечи через TimeLocal, обновление которого происходит каждую секунду и обновляется при открытии новой свечи. Что-то пробовал, но при первом запуске советника, таймер показывает полное время до закрытия, хотя уже прошло половина свечи.
Можно уместить такие расчеты в пределах функции, без внешних переменных?

Большое спасибо!

Задача не для слабонервных.
Думаю так:
Код:
int SecondsToCloseBarH1=60*60-(TimeSeconds(TimeLocal())+(TimeMinute(TimeLocal())*60)); //Кол-во секунд до окончания часа (любого графика H1) по времени компьютера
Код:
if (SecondsToCloseBarH1==60*45 || SecondsToCloseBarH1==60*30 || SecondsToCloseBarH1==60*15 || SecondsToCloseBarH1==0) //Пример условия==true в конце каждой пятнадцатиминутки
OrderSend();
Пробуйте.

Последний раз редактировалось officialboob; 09.11.2014 в 05:20.
officialboob вне форума
Старый 10.11.2014, 12:27
Реклама: Место для Вашего объявления!
#4
Любитель
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 24.07.2013
Сообщений: 230
Благодарностей: 74
Автор темы Re: Вопрос по MQL4

Цитата:
Сообщение от officialboob Посмотреть сообщение
Код:
int SecondsToCloseBarH1=60*60-(TimeSeconds(TimeLocal())+(TimeMinute(TimeLocal())*60)); //Кол-во секунд до окончания часа (любого графика H1) по времени компьютера
Ох, круто выглядит. А как это трансформировать под любой ТФ?
workspree вне форума
Старый 10.11.2014, 14:02
Реклама: Место для Вашего объявления!
#5
Специалист
 
Пол: Мужской
Регистрация: 02.02.2013
Сообщений: 690
Благодарностей: 515
Re: Вопрос по MQL4

Цитата:
Сообщение от workspree Посмотреть сообщение
Ох, круто выглядит. А как это трансформировать под любой ТФ?

Так в примере показано как сделать из этого условие под пятнадцатиминутку.

По такому же принципу можно сделать любой таймфрейм из исходного H1.
officialboob вне форума
Старый 13.03.2015, 18:48
Реклама: Место для Вашего объявления!
#6
Специалист
 
Пол: Мужской
Инвестирую в: Другое
Регистрация: 23.09.2010
Сообщений: 1,420
Благодарностей: 116
Re: Вопрос по MQL4

Может кто подсказать есть уже написанные советники в свободном доступе, где ордера открываются по пересечению ценой мувинга(ну или закрытия свечи после пересечения мувинга).
хотелось код посмотреть, и написать самому код по определенным условиям. Так сам не очень знаком с MQL, но на других языках приходилось работать.
sanya32 вне форума
Старый 14.03.2015, 15:14
Реклама: Место для Вашего объявления!
#7
Мастер
 
Пол: Мужской
Возраст: 41
Адрес: Украина
Инвестирую в: Форекс
Регистрация: 31.07.2009
Сообщений: 6,217
Благодарностей: 2,062
Re: Вопрос по MQL4

Цитата:
Сообщение от sanya32 Посмотреть сообщение
хотелось код посмотреть, и написать самому код по определенным условиям. Так сам не очень знаком с MQL, но на других языках приходилось работать.
Дак нет ничего проще:
вот Вам как пример с РСИ double RSI=iRSI(OrderSymbol(),PERIOD_H1,0,0,0);
if (RSI>=80) то выполняется условие, установка ордера, если нет = идем дальше по коду
__________________
НЕ инвестирую в проверенных трейдеров ФТ: Свена, Votfx, Ahmedos
Хочешь заставить свой комп работать быстрее?
прошу в мою тему Оптимизация Windows(платно!)
Ponomarenko Roman вне форума
Войдите, чтобы оставить комментарий.
Опции темы

Быстрый переход
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматические торговые системы на языке MQL4 Vladislav86 Программирование на языке MQL (Meta Quotes Language) 17 01.07.2015 17:19
Видеоуроки по MQL4 [поиск] web Программирование на языке MQL (Meta Quotes Language) 4 25.04.2013 15:56
Советник, тестер и конвертор (исходники на mql4) Anton_uz Программное обеспечение 0 02.03.2013 17:39
Нужны программисты MQL4 FXG Сергей Программирование 2 02.10.2011 21:00