Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Напр:
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
double Buffer[];
double Massiv[];
int init()
{
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,108);
return(0);
}
int start()
{
for( int i=Bars;i>=0;i--)
{
Massiv[i]=High[i]; //присваеваем значение итому элементу массива
Buffer[i]=Massiv[i];// присваиваем итый элемент массива итому элементу массива буффера.
}
return(0);
}
------------------------ В итоге ничего не выводится :((((.
Это основной вопрос топика, а не то, что можно сделать все без массивов.
Хотя я как раз в этом случае смог без них обойтись:))
Все весьма понятно для тех, кто знаком с C\C++. Вы я вижу не вникали.
Дело вот в чем : Ваше описание
double Buffer[];
double Massiv[];
декларирует не сами массивы, а только лишь указатели на них - то есть намерение эти массивы создать. Для того, чтобы пользоваться массивами их нужно разместить в памяти компа - то есть выделить им кусок оперативной памяти и начало этого куска присвоить значению указателя. Только с тех пор Buffer[i] будет иметь смысл.
В С\С++ это называется динамическим размещением.
В языке МТ4 есть функция
int ArrayResize( object& array[], int new_size),
которая сможет Вам помочь в случае одномерного массива - то есть перед заполнением массивов вызовите ее для каждого массива
ArrayResize( Buffer, Bars);
ArrayResize( Massiv, Bars);
и будет Вам счастье.
Второй вариант задать статическое размещение - описание нужно изменить :
например так :
double Buffer[10000];
double Massiv[10000];
при этом память будет отведена сразу под указанное число элементов типа double.
Использование же SetIndexBuffer(.....) не только выделяет память, но и делает эти массивы индикаторными в терминологии МТ4 - если Вам их рисовать не нужно, то достаточно просто ArrayResize(); или статического размещения.
Удачи и попутных трендов.