• Добро пожаловать на инвестиционный форум!

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

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

Вопрос по MQL4

workspree

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

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

Большое спасибо!
 
Реклама: Трать крипту на подписки, рекламу, поездки. ⚡️ Виртуальные карты Heleket
Последнее редактирование:

Ponomarenko Roman

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

officialboob

Специалист
Регистрация
03.02.2013
Сообщения
491
Реакции
435
Поинты
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();

Пробуйте.
 
Реклама: Трать крипту на подписки, рекламу, поездки. ⚡️ Виртуальные карты Heleket
Последнее редактирование:

workspree

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

officialboob

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


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

По такому же принципу можно сделать любой таймфрейм из исходного H1.
 
Реклама: Трать крипту на подписки, рекламу, поездки. ⚡️ Виртуальные карты Heleket

sanya32

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

Ponomarenko Roman

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