Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 148
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Когда я недавно начал интенсивно тестировать функциональность CopyTicksRange(), я столкнулся с несколькими неприятными проблемами при работе с миллисекундным временем:
- На самом деле я хотел использовать CDateTime, поскольку он является производным от MqlTimeStruct и вы можете легко редактировать различные единицы времени с помощью включенных методов инкремента и декремента.
- В то же время мне нужен был способ плавно переводить миллисекундное время (секунды с 1 января 1970 года, умноженные на 1000 в формате ulong) туда и обратно.
Здесь я столкнулся с тем, что, например, количество миллисекунд - это очень расплывчатое число, которое мало что говорит о точной дате. Однако если вы используете CDateTime или TimeStruct, то все единицы времени легко изменить, но формат разрывает их на части, и результат тоже получается очень неясным. Этот класс CDateTimeMsc был создан для решения этой проблемы.
#include <Tools\DateTime.mqh> struct CDateTimeMsc: public CDateTime { public: int msc; // additional variable for msc storage datetime check_datetime; // для удобного наблюдения необходимо немного накладных расходов. //--- Методы CDateTimeMsc ulong MscTime(void) {return(ulong(double(CDateTime::DateTime()) * 1000) + msc);} void MscTime(ulong a_msc_time); // ввод (datetime*1000) void Msc(int value); //bool IsNumInt(const int num); void MscDec(int delta = 1); void MscInc(int delta = 1); void SecTime(int a_int_time); ulong SecTime(void); void UpdateDateTime(); // обновляет переменную наблюдения check_datetime void DateTime(datetime a_datetime) {CDateTime::DateTime(a_datetime); UpdateDateTime();} datetime DateTime(void) {return(CDateTime::DateTime());} };
Новые методы были вставлены в наследование старой структуры.
Теперь класс, который на самом деле является структурой (см. Структуры/Классы), может работать и с миллисекундами, при условии, что такое точное время доступно.
Кроме того, методы инкремента и декремента были распространены на свойство msc.
Теперь можно поспорить, действительно ли необходима дополнительная переменная "check_datetime", поскольку она создает определенные накладные расходы (для некоторых людей это очень важно). Однако я предполагал, что обычно используется не так много объектов CDateTime, а только несколько в важных местах, где необходимо изменять единицы времени, такие как часы, минуты, секунды или дни. У меня также были некоторые сомнения по поводу метода UpDateTime(), который вызывается без необходимости при каждом увеличении/уменьшении.
В целом, однако, во главу угла был поставлен фактор обработки.
Тест
Больше не нужно запрашивать время с помощью дополнительной переменной datetime, если вы хотите узнать точную дату, а можно просто поместить переменную "check_datetime" под наблюдение: (TestEA см. выше).
Миллисекундное время было автоматически переведено в формат datetime.
Перевод с немецкого произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/de/code/48156
Внутридневная тройная производительность
Установите три креста и отслеживайте ежедневные процентные показатели, начиная с определенного времени (которое также можно задать).
Strong Historical Levels
Исторические сильные уровни S/Rs
Caculater Margin
EA Tools tính toán Margin theo lotize, có thể tùy chỉnh đòn bẩy
Open Range BreakOut Indicator for MetaTrader 5
Индикатор Open Range Breakout (ORB) - это мощный инструмент технического анализа, который идентифицирует и отслеживает прорывы цен из диапазона открытия торговых сессий. Индикатор основан на концепции, согласно которой высокие и низкие цены, установленные в первые минуты торговой сессии, часто служат значительными уровнями поддержки и сопротивления в течение всего оставшегося дня. Индикатор автоматически рассчитывает диапазон открытия на основе заданных пользователем временных периодов, строит несколько ценовых целей, а также предоставляет визуальные и звуковые оповещения о потенциальных торговых возможностях. Он призван помочь трейдерам выявить высоковероятные сделки на прорыв и сценарии ретеста.
