Расчетному массиву он размер не выставляет.
ArrayResize ArrayInitialize ArraySetAsSeries
Вот даже научился декомпилировать:
публикация декомпилированного кода запрещена.
Всем добрый вечер!
Бригада телепатов приехала и объяснила, как надо задавать вопросы.
Помогите понять, плиз следующее.
Вариант с призвоением индикаторному массиву константы или скажем предопределенного массива Low[i] работает и рисует.
Вариант с присвоением выражения типа LLL[4] не рисует, хотя казалось бы это тоже константа.
Как понять в чем разница?
Заранее благодарен за помощь.
//+------------------------------------------------------------------+
//| TEST.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| https://www.metaquotes.net// |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net//"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
double ExtMapBuffer1[];
double MergedTics[];
//+------------------------------------------------------------------+
//| Initialization part |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
}
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{ double LLL[];
Counted_bars=IndicatorCounted();
i=Bars-Counted_bars-1;
// Вариант, который не работает -----
LLL[4]=1.4090
while(i>=0)
{
ExtMapBuffer1[i]=LLL[4];
i=i-1;
}
//=== Вариант, который работает ----
while(i>=0)
{
ExpMapBuffer1[i]=1.4090;
i=i-1;
}
return(0);
}
Более того.
В цикле While будет отрисовываться линия, если сделано так:
double FFF;
FFF=1.4090;
While(i>=0) { ExpMapBufer1[i]=FFF; i=i-1;}
НО НЕ БУДЕТ В ТАКОМ СЛУЧАЕ:
While
FFF=LLL[4];
While(i>=0) {ExpMapBuffer1=FFF;i=i-1;}
====================
Что за ошибка в объявлении массива, что его нельзя использовать для отрисовки даже через помежуточную переменную?
Всем добрый вечер!
Бригада телепатов приехала и объяснила, как надо задавать вопросы.
Помогите понять, плиз следующее.
Вариант с призвоением индикаторному массиву константы или скажем предопределенного массива Low[i] работает и рисует.
Вариант с присвоением выражения типа LLL[4] не рисует, хотя казалось бы это тоже константа.
Как понять в чем разница?
double LLL[];
LLL[4]=1.4090
Надо бы массиву размер хоть какой-то сделать.
Хотя бы
double LLL[5];
LLL[4]=1.4090
Что за ошибка в объявлении массива, что его нельзя использовать для отрисовки даже через помежуточную переменную?
Начните с изучения учебника. Вы не выделили память под массив.
Удачи.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем доброго времени суток.
Учусь языку, столкнулся с проблемой, которую не могу понять.
1. Создан буфер (предполагается отображение)
2. Установлено соответствие между буфером и массивом
3. Заведен расчетый массив (другой).
4. Если записывать в буфер (циклом) константу или любое вычисляемое значение то оно отображается.
Собственно все по учебнику и все работает.
Не работае следующее - если ту же константу записывать в расчетный массив, а потом присваивать в цикле элементам буфера значения из рассчетного массива, то никаких ошибок нет нив компиляции ни в загрузке, но ничего не отображается.
Получается, есть какие-то тонкости инициализации массивов, которые нигде не описаны?