Уважаемые форумчане. Я только начал программировать. Пожалуйста, помогите мне в этом вопросе.
Что делать, чтобы найти свечи в М5 в М1? Посмотрите на картинку, я объяснил более наглядно.
Как нарисовать эти вертикальные линии в начальных зонах свечи?
Это нужно делать в индикаторе при помощи вертикальных линий. В индикаторе в OnCalculate у Вас есть массив time. Остаётся узнавать к какой свече M5 относится текущая свеча M1. После этого сравнивать время открытия M5 и M1 - если оно совпадает создавать вертикальную линию.
Но это так сказать теория. Пытайтесь сделать хоть что-то самостоятельно, потом задайте вопрос.
Уважаемые форумчане. Я только начал программировать. Пожалуйста, помогите мне в этом вопросе.
Что делать, чтобы найти свечи в М5 в М1? Посмотрите на картинку, я объяснил более наглядно.
Как нарисовать эти вертикальные линии в начальных зонах свечи?
//+---------------------------------------------------------+ //| M5 на M1 Пример.mq5 | //+---------------------------------------------------------+ int UseBars=100; // Количество баров для расчета datetime Open[]; // Массив для времен открытия баров MqlDateTime mmm; // Структура времени void OnStart() { /* Определим таймфрейм графика, на который брошен скрипт Если это не M1 - то сообщение об ошибке и выход */ if(_Period != PERIOD_M1) { Alert("Переключитесь на таймфрейм M1"); return; } // На всякий случай удалим все объекты с графика M1 ObjectsDeleteAll(0, 0); // Установим индексацию массива как в таймсерии с конца ArraySetAsSeries(Open,true); // Скопируем в массив времена открытия баров if(CopyTime(_Symbol, PERIOD_M1, 0, UseBars, Open)<UseBars) { Alert("Скопировалось мало времен открытия баров"); return; } // Рассмотрим все бары for(int n=0; n<UseBars; n++) { TimeToStruct(Open[n], mmm); if(!(mmm.min % 5)) // Если минуты кратны 5 { ObjectCreate(0, (string)n, OBJ_VLINE, 0, Open[n], 0); // Тут этим линиям свойства изменим ObjectSetInteger(0, (string)n, OBJPROP_COLOR, White); // Цвет } } }Вот!
Уважаемые форумчане. Я только начал программировать. Пожалуйста, помогите мне в этом вопросе.
Что делать, чтобы найти свечи в М5 в М1? Посмотрите на картинку, я объяснил более наглядно.
Как нарисовать эти вертикальные линии в начальных зонах свечи?
Пожалуйста не создавайте дубли тем. Если Вы создали тему - хотя бы читайте ответы в теме.
Если в индикаторе:
if(time[i]/300!=time[i-1]/300) ...рисовать линию
Вот!
На минутка часто бывают пропуски баров, ваш метод сработает не всегда полностью.
На минутка часто бывают пропуски баров, ваш метод сработает не всегда полностью.
Не встречал пропусков в живую. А что терминал рисует? вроде при отсутствии тиков в течении минуты новый следующий бар он должен нарисовать на правильном времени? А на месте пропуска тиков не должно быть бара.
Не встречал пропусков в живую. А что терминал рисует? вроде при отсутствии тиков в течении минуты новый следующий бар он должен нарисовать на правильном времени? А на месте пропуска тиков не должно быть бара.
Немного не про пропуски, а про символы, которые торгуются только определенное время.
Вот пример, акции Microsoft. Дневной бар - 00:00
а если посмотреть боле мелкий таймфрейм, то видно, что торговля реально началась с 15:30
Нужно найти пропуски на M1 и попробовать iBarShift. Не подскажите дату и символ где можно проверить?
GBPUSD 2021.08.02 00.00.00
А зачем пробовать IBarShift(), известно - если бара с указанным временем не существует, возвращается индекс предшествующего бара или -1 (в зависимости от 4-го параметра).
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уважаемые форумчане. Я только начал программировать. Пожалуйста, помогите мне в этом вопросе.
Что делать, чтобы найти свечи в М5 в М1? Посмотрите на картинку, я объяснил более наглядно.
Как нарисовать эти вертикальные линии в начальных зонах свечи?