Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
именно так и есть . я не понимаю и не могу понять читая мануал по MQL5 , поэтому в форум и написал.
для простоты понимания.
объявлен массив конечной длины в сто ячеек
double data_p[99]; // глобальный
Заметьте, что здесь объявлен статический массив. Его размер впоследствии нельзя будет изменить.
Если нужно однократно получить заранее известное количество цен, то тогда можно использовать статический массив. В этом случае достаточно запросить их один раз при помощи CopyClose:
вопрос (?)
запустился советник предположим
начал отрабатыватся цикл
и на первой же свечке он забивает весь массив одинаковыми данными.
а если поставить sleep то будет пропущено куча нужных данных.
вот в чем вопрос как сопряч это все межу собой чтобы массив корректно заполнялся по событию сождания свечки
Если же массив нужно формировать последовательно при появлении новых свечей, то использовать статический массив нельзя, т. к. заранее неизвестно, сколько данных потребуется записать. Для этой цели используется динамический массив. Объявляется так:
double arrfPrice[];
Далее заполняем этот массив в момент появления новой свечи (если история котировок не интересует, а нужны только новые свечи, образованные после запуска программы):
Этот код годится только для советника или индикатора. Для скрипта не подойдет.
Заметьте, что здесь объявлен статический массив. Его размер впоследствии нельзя будет изменить.
Если нужно однократно получить заранее известное количество цен, то тогда можно использовать статический массив. В этом случае достаточно запросить их один раз при помощи CopyClose:
Если же массив нужно формировать последовательно при появлении новых свечей, то использовать статический массив нельзя, т. к. заранее неизвестно, сколько данных потребуется записать. Для этой цели используется динамический массив. Объявляется так:
Далее заполняем этот массив в момент появления новой свечи (если история котировок не интересует, а нужны только новые свечи, образованные после запуска программы):
Этот код годится только для советника или индикатора. Для скрипта не подойдет.
С ПАСИБО !!!! _!
ак как привинтить к примеру который Вы написал конструкцию с использованием CopyRates ?
rapidograf #:
объявлен массив конечной длины в сто ячеек
double data_p[99]; // глобальный
for(x=0;x<=99; x++)
{
...
}
Вот тут уже проблема. Массив - не на 100, а на 99 ячеек, с 0 по 98.
И в цикле, если не сделаем сторого "x<99", напоремся на вылет за границу.
С ПАСИБО !!!! _!
ак как привинтить к примеру который Вы написал конструкцию с использованием CopyRates ?
Если нужно получить не только цены закрытия, а все цены каждой из свечей (OHLC), то просто заменить тип массива с double на MqlRates, а вместо iClose поставить CopyRates.
Или же конкретизируйте вопрос.