• Реклама: ⚡️ FreshForex - надежный CFD брокер с 2004 года. Бонус 101% - поможет в случае просадки!
  • Добро пожаловать на инвестиционный форум!

    Во всем многообразии инвестиций трудно разобраться. MMGP станет вашим надежным помощником и путеводителем в мире инвестиций. Только самые последние тренды, передовые технологии и новые возможности. 400 тысяч пользователей уже выбрали нас. Самые актуальные новости, проверенные стратегии и способы заработка. Сюда люди приходят поделиться своим опытом, найти и обсудить новые перспективы. 16 миллионов сообщений, оставленных нашими пользователями, содержат их бесценный опыт и знания. Присоединяйтесь и вы!

    Впрочем, для начала надо зарегистрироваться!
  • 🐑 Моисей водил бесплатно. А мы платим, хотя тоже планируем работать 40 лет! Принимай участие в партнеской программе MMGP
  • 📝 Знаешь буквы и умеешь их компоновать? Платим. Дорого. Бессрочная акция от MMGP: "ОПЛАТА ЗА СООБЩЕНИЯ"

Вопрос по MQL4

workspree

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

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

Большое спасибо!
 
Последнее редактирование:

Ponomarenko Roman

ТОП-МАСТЕР
Регистрация
01.08.2009
Сообщения
5,381
Реакции
1,972
Поинты
0.000
Прошу подсказать, возможно ли реализовать таймер оставшегося времени до закрытия текущей свечи через TimeLocal, обновление которого происходит каждую секунду и обновляется при открытии новой свечи. Что-то пробовал, но при первом запуске советника, таймер показывает полное время до закрытия, хотя уже прошло половина свечи.
Можно уместить такие расчеты в пределах функции, без внешних переменных?
По идее Вам надо надо 3-4 операции сделать:
1. при 00 минут через TimeLocal узнаем общее время
2. через TimeLocal узнаем Ваше текущее время
3. узнаем ТФ, например М15, т.е. 15*60=900сек, Ваше текущее время - на 00 мин, хм. а вот дальше надо уже думать... пойду поужинаю, авось что и придет на ум...
 

officialboob

Специалист
Регистрация
03.02.2013
Сообщения
513
Реакции
515
Поинты
0.000
В сети много раз встречал функции по определению времени до конца текущего бара. Но все они работали с 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();

Пробуйте.
 
Последнее редактирование:

workspree

Любитель
Регистрация
25.07.2013
Сообщения
220
Реакции
74
Поинты
0.000
Код:
int SecondsToCloseBarH1=60*60-(TimeSeconds(TimeLocal())+(TimeMinute(TimeLocal())*60)); //Кол-во секунд до окончания часа (любого графика H1) по времени компьютера
Ох, круто выглядит. :) А как это трансформировать под любой ТФ?
 

officialboob

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


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

По такому же принципу можно сделать любой таймфрейм из исходного H1.
 

sanya32

Специалист
Регистрация
24.09.2010
Сообщения
1,416
Реакции
87
Поинты
0.000
Может кто подсказать есть уже написанные советники в свободном доступе, где ордера открываются по пересечению ценой мувинга(ну или закрытия свечи после пересечения мувинга).
хотелось код посмотреть, и написать самому код по определенным условиям. Так сам не очень знаком с MQL, но на других языках приходилось работать.
 

Ponomarenko Roman

ТОП-МАСТЕР
Регистрация
01.08.2009
Сообщения
5,381
Реакции
1,972
Поинты
0.000
хотелось код посмотреть, и написать самому код по определенным условиям. Так сам не очень знаком с MQL, но на других языках приходилось работать.
Дак нет ничего проще:
вот Вам как пример с РСИ double RSI=iRSI(OrderSymbol(),PERIOD_H1,0,0,0);
if (RSI>=80) то выполняется условие, установка ордера, если нет = идем дальше по коду
 
Сверху Снизу