Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 768
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну вот у меня локальное время больше серверного на 1 час.
Исходя из этого объясни что тебя смущает в этих значениях?
В этих значениях ничего не смущает, там все правильно, но речь то не об этом.
Проблема конкретно с пятницей не актуальна если у тебя время локальное больше чем время брокера на Х часов.
Но представь если у тебя на локальном компе не +1, а -1 час разница с брокером.
И есть это простое условие:
В этом случае:
1. у брокера наступит первый тик пятницы, например сегодняшний тик, у которого время 2014.11.07 00:00
2. берем количество секунд, прошедших с 01.01.1970 00:00 до момента рассматриваемого тика, то есть до 2014.11.07 00:00
3. берем количество секунд, прошедших с 01.01.1970 00:00 до 06.11.2014 21:30 (это именно вчерашняя дата, т.к. берется время локального компа, у которого на момент рассматриваемого тика не пятница, а четверг, то есть 6 число, а если быть еще точнее, то 2014.11.06 23:00, разница в 1 час)
Вуаля, количество секунд в пункте 2 больше чем в пункте 3.
А значит в первый пятничный тик исполнится указанный в коде принт, хотя если бы функция StringToTime() брала дату с сервера брокера, то все бы сработало как и задумано, принт выскочил бы в пятницу только после того, как время перевалит за 21:30
Здравствуйте.
Есть такая задача. (не могу прикрутить к тику)
Если сработал отложенный ордер {то...}
В советнике для подсчета ордеров использую Terminal.mqh.
Терминал // Mas_Tip[0] открытые Buy
// если количество ордеров Buy увеличилось на 1 то...
if (Mas_Tip[0]+1)
{
функция
}
Все работает. Но срабатывает на каждом следующем тике.
Как прикрепить это дело к тику? А потом сравнить значение на предыдущем тике и на данном тике.
А выделенную строку можешь перевести на наш человеческий язык? Что должно быть и что получается при выполнении этой строки...
// если количество ордеров Buy увеличилось на 1 то...
{
функция например открывает, или закрывает другие ордеры...
}
Она не обязательно должна быть такой..if (Mas_Tip[0]+1) можно сделать if (Mas_Tip[0] > Mas_Tip[1]) // если ордеров Buy больше чем Cell. То открыть отложенный например...
Дело в том что на следующем тике эти данные снова истина.
// если количество ордеров Buy увеличилось на 1 то...
{
функция например открывает, или закрывает другие ордеры...
}
if (Mas_Tip[0]+1)
в скобках у if должна быть bool, то есть true или false.
А здесь, очевидно, int. То есть целое число.
Конечно, true это 1, а false это 0 (если не путаю). Но все равно не правильно. Что возвращает Mas_Tip[0]?
if (Mas_Tip[0]+1)
в скобках у if должна быть bool, то есть true или false.
А здесь, очевидно, int. То есть целое число.
Конечно, true это 1, а false это 0 (если не путаю). Но все равно не правильно. Что возвращает Mas_Tip[0]?
кол-во открытых ордеров Buy.
// если количество ордеров Buy увеличилось на 1 то...
{
функция например открывает, или закрывает другие ордеры...
}
Нет, это ты так хочешь. А на самом деле это не так. В массиве Mas_Tip[0] имеется какое-то значение и если оно больше нуля то условие if(Mas_Tip[0]) уже будет истина. А если к этому значению ещё прибавить 1 то истина будет всегда потому, что количество открытых ордеров не может быть равно -1
Нет, это ты так хочешь. А на самом деле это не так. В массиве Mas_Tip[0] имеется какое-то значение и если оно больше нуля то условие if(Mas_Tip[0]) уже будет истина. А если к этому значению ещё прибавить 1 то истина будет всегда потому, что количество открытых ордеров не может быть равно -1
пробовал сделать так
}
Получается одноразово.
if (Mas_Tip[0]+1)
в скобках у if должна быть bool, то есть true или false.
А здесь, очевидно, int. То есть целое число.
Конечно, true это 1, а false это 0 (если не путаю). Но все равно не правильно. Что возвращает Mas_Tip[0]?
false это 0 а если не 0 то true
Попробуй такую строку
Компилятор может предупредить о возможной потере точности но сработает.можно отбросить Mas_Tip[0]
Как получить событие. Открылся Buy.
можно отбросить Mas_Tip[0]
Как получить событие. Открылся Buy.