Просьба к тем кто поставил низкую оценку.
Почему?
Что вам не понравилось?
Постараюсь объяснить или исправить.
Кагбэ хорошим тоном считается проверка внешних переменных, точнее их значений... потом в коде где комментарии?
И конструкция вызывает ужОс:
if((start_1<stop_1 && (time_current<start_1 || time_current>stop_1)) || (start_1>stop_1 && (time_current<start_1 && time_current>stop_1))) && ((start_2<stop_2 && (time_current<start_2 || time_current>stop_2)) || (start_1>stop_2 && (time_current<start_2 && time_current>stop_2))) && ((start_3<stop_3 && (time_current<start_3 || time_current>stop_3)) || (start_1>stop_3 && (time_current<start_3 && time_current>stop_3)))
Имхо, её стоит разбить на базовые условия и проверки... будет эффективнее...
Там же одна функция. Что коментировать?
Про проверку не понял.
Так вроди разбито. одна строка=один временной период.
3. Если пользователь вставит пробел напр перед двоеточием - обычное дело с текстовым полем ввода - функция накроется тазом? Как мало ей надо. Сделайте хотя бы проверку параметров, если корректировку наиболее популярных ошибок ввода не сможете
---
Кто-то сможет вставлять эту функцию скажем в десяток своих кодов, где будут нужны проверки "промежутков времени"? Да вы сами будете её каждый раз переписывать даже для собственных кодов. В чём же смысл помещать это в кодобазу и называть 'библиотекой'?
Alexander Puzanov:
...В чём же смысл помещать это в кодобазу и называть 'библиотекой'?
Не сразу всё устроилось, Москва не сразу строилась :-))
Библиотека подразумевает коллекцию функций, обрабатывающих самые популярные и востребованные задачи. Есть тут такое?
Потом Alexander правильно сказал про параметры. Сделайте перегруженные функции, чтобы рассширить возможности будущей библиотеки. Можно даже шаблон сюда прикрутить.
Да, в самой Документации написано:
3. Если пользователь вставит пробел напр перед двоеточием - обычное дело с текстовым полем ввода - функция накроется тазом? Как мало ей надо. Сделайте хотя бы проверку параметров, если корректировку наиболее популярных ошибок ввода не сможете
---
Кто-то сможет вставлять эту функцию скажем в десяток своих кодов, где будут нужны проверки "промежутков времени"? Да вы сами будете её каждый раз переписывать даже для собственных кодов. В чём же смысл помещать это в кодобазу и называть 'библиотекой'?
Если 1 или 2 промежутка, то достаточно в настройках одно и тоже время выставить(сейчас по умолчанию 1 период). А если 4 например, то даже не програмист поймёт что надо добавить старт4-стоп4 и ещё одну строку в функции.
Ну если настройки времени, то наверно понятно что такое старт-стоп. Не? Не вижу смысла передавать. Скопироровал и работает.
Ну да. Можно ещё проверку делать правильно ли пользователь разместил советник, не в индикаторах ли он.))))
Честно. Использую как есть во всех кодах. Заказчики очень довольны.
Не сразу всё устроилось, Москва не сразу строилась :-))
Дак я же не против. Строитель таки построил трёхэтажный if, который работает, но с 3го этажа ему плохо видно косяки - подсказать же надо?
Если 1 или 2 промежутка, то достаточно в настройках одно и тоже время выставить(сейчас по умолчанию 1 период).
9.9 из 10 пользователей оставят пустое место или поставят 0 в поле ненужной сессии
А если 4 например, то даже не програмист поймёт что надо добавить старт4-стоп4 и ещё одну строку в функции.
Одной будет мало. И кстати об этом - 6 StringToTime исполняются в вашей функции по каждому тику с одним и тем же результатом. Вы конечно в курсе, что тормознутее операций со строками только операции со внешними объектами - файлами, графикой итд? Правильнее преобразовывать строки в секунды от начала дня 1 раз - в OnInit
А добавление 4го и больше условий в ваш if станет зашибатой тренировкой для программистов того уровня на который ваш код расчитан
Ну да. Можно ещё проверку делать правильно ли пользователь разместил советник, не в индикаторах ли он.))))
MQ встроили эту проверку в терминал. От жеж им делать нефиг, да :)
Честно. Использую как есть во всех кодах. Заказчики очень довольны.
Несколько большее кол-во заказчиков просто на стены лезут от распирающего щастя при таком способе ввода торговых сессий:
input string Trade_Sessions = "5:00-11:30 15:00-23:35"; // Торговые сессии
Кол-во сессий здесь меняет заказчик без вмешательства программиста
Дак я же не против. Строитель таки построил трёхэтажный if, который работает, но с 3го этажа ему плохо видно косяки - подсказать же надо?
9.9 из 10 пользователей оставят пустое место или поставят 0 в поле ненужной сессии
Одной будет мало. И кстати об этом - 6 StringToTime исполняются в вашей функции по каждому тику с одним и тем же результатом. Вы конечно в курсе, что тормознутее операций со строками только операции со внешними объектами - файлами, графикой итд? Правильнее преобразовывать строки в секунды от начала дня 1 раз - в OnInit
А добавление 4го и больше условий в ваш if станет зашибатой тренировкой для программистов того уровня на который ваш код расчитан
MQ встроили эту проверку в терминал. От жеж им делать нефиг, да :)
Несколько большее кол-во заказчиков просто на стены лезут от распирающего щастя при таком способе ввода торговых сессий:
Кол-во сессий здесь меняет заказчик без вмешательства программиста
Круто.
А что ж ты мне какую то недофункция предлагал когда я просил помочь с этой? А сейчас играешь царя горы?
Про проверку не понял.
стр.32 "Что такое защитное прогарммирование?"
Источник в аттачменте.
P.S. Не знаю, могут модераторы наказать за то, что приложил книгу...
<Могут, так как копия нелегальная.>
PPS. Ссылка на бук
- отзывов: 3
- 508.00 RUB
- Питер Гудлиф
- www.ozon.ru
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Функция работы программы по времени:
Функция разрешает исполнение определенного кода в указанный промежуток времени. Обычно используется в советниках для указания интервала времени, где советнику разрешено торговать.
Автор: Vasyl Nosal