[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 595

 
Dimka-novitsek:
Да. А вообще я функциями времени почти не пользовался.


оказалось проще простого..

Hour() возвращает часы терминала - и никаких секунд :)) 

 
lottamer:


у меня тут все просто - ордера всегда по одному. их не может быть 2. поэтому и в параметрах трудно промахнуться....

 print молчит, а следующая за ним команда находящаяся в БЛОКЕ с ним - проходит (закрытие сделки)

 

 

 

видимо что-то в размерности профита...может это пункты? и надо ставить 0,001 ??

хотя пишет же "-0,24" ясно - доллары...

не пойму... 


Попробуйте определять цену пункта и условие выставлять в пунктах.
 
lottamer:


оказалось проще простого..

Hour() возвращает часы терминала - и никаких секунд :)) 

Hour()  Возвращает серверное время старта программы.  Часы терминала  для указанного времени (точнее часы сервера) без никаких секунд возвращает функция TimeHour().
 
Dimka-novitsek:

Доброго вечера! А скажите, будет работать такое условие- не точная сработка плюс-минус три пункта?

 Я тут 25 минут на отдельной бумаге две координатные оси чирчу, гадаю.


Прочитал еще раз ваш комментарий, видимо вам нужно не случайное срабатывание, а условие  -- если цена находится на определенном уровне(уровень начала отсчета ) и за период времени с начала отсчета была меньше чем верхний уровеь+3 и больше чем верхний уровень -3 или меньше чем нижний уровень+3 и больше, чем нижний уровень-3 пункта -- закрыть все.

Или убрать больше чем верхний уровень+3 и меньше чем нижний уровень-3 и закрывать все ордера, если цена равна верхнему или нижнему уровню. 

 
rigonich:
Hour()  Возвращает серверное время старта программы.  Часы терминала  для указанного времени (точнее часы сервера) без никаких секунд возвращает функция TimeHour().


неа....

 смену Hour()  долго проверять..надо 20 минут ждать...

поэтому я проверил Minute ()...

Print ("время===",  Minute ());  показывает смену минут - каждую минуту.

значит и часы тоже меняются...т.е. фактически показывается текущее время.

 

А теперь вопрос...

почему у меня в строке

if ( Ma_1>Ma_2  && (OrdersTotal()==0) && (Hour()>=7 || Hour()<19)) 

в тестере сделки шлепаются все 24 часа БЕЗ ограничений???  

 
lottamer:


неа....

 смену Hour()  долго проверять..надо 20 минут ждать...

поэтому я проверил Minute ()...

Print ("время===",  Minute ());  показывает смену минут - каждую минуту.

значит и часы тоже меняются...т.е. фактически показывается текущее время.

 

А теперь вопрос...

почему у меня в строке

if ( Ma_1>Ma_2  && (OrdersTotal()==0) && (Hour()>=7 || Hour()<19)) 

в тестере сделки шлепаются все 24 часа БЕЗ ограничений???  

А чем вы проверили? Если это скрипт, то при каждом вызове он запускается заново и будет показывать разное время, в тестере это время моделируется. Так что сов и скрипт будут показывать разные результаты.

Ппробуйте запустить своего советника с тем же условием на демке раньше 7 и позже 19, и, я думаю,открывать он вообще ничего не будет.  

 
rigonich:
А чем вы проверили? Если это скрипт, то при каждом вызове он запускается заново и будет показывать разное время, в тестере это время моделируется. Так что сов и скрипт будут показывать разные результаты. 


я написал минисоветник - который делает только вывод времени через Print.

 повесил его и смотрел результат.... 

 

Да. Я подумал, что, наверное, сравнивать совершенно точно- вот так- а я сразу такведь и написал- это не очень верно. 

if (tsena==Ask)

 Но может быть ведь такое, что цена попросту пирескочит указанное значение! И точно так и не попадёт. 

 
lottamer:


я написал минисоветник - который делает только вывод времени через Print.

 повесил его и смотрел результат.... 


Если так, тогда это вопрос к разработчикам справки. 
 
Dimka-novitsek:

Да. Я подумал, что, наверное, сравнивать совершенно точно- вот так- а я сразу такведь и написал- это не очень верно. 

 Но может быть ведь такое, что цена попросту пирескочит указанное значение! И точно так и не попадёт. 

Используйте if (tsena>=Ask)
Причина обращения: