Jump to content
Sign in to follow this  
elisseev2000

создание массива из множества значений

Recommended Posts

elisseev2000

Здравствуйте! Я новичок в мкл4 и хочу написать индикатор. Нужна помощь.

Мне необходимо работать с одномерным массивом, который состоит из 121 последних значений цены закрытий какой-нибудь пары. Как его (массив) составить и как графически вывести в окно торговли, чтобы всегда можно было бы сравнивать.

Помогите пожалуйста!

Спасибо!

Олег

Share this post


Link to post
Share on other sites
Circle
Здравствуйте! Я новичок в мкл4 и хочу написать индикатор. Нужна помощь.

Мне необходимо работать с одномерным массивом, который состоит из 121 последних значений цены закрытий какой-нибудь пары. Как его (массив) составить и как графически вывести в окно торговли, чтобы всегда можно было бы сравнивать.

Помогите пожалуйста!

Спасибо!

Олег

 

Цены закрытия текущего инструмента и ТФ содержатся в предопределенном массиве Close[].

Если вам необходима цена инструмента и ТФ отличного от текущего, то используйте функцию iClose().


Что такое форекс? Это там где деньги лежат.  :)

Share this post


Link to post
Share on other sites
Programmer
Как его (массив) составить и как графически вывести в окно торговли, чтобы всегда можно было бы сравнивать.

 

Приветствую Олег,

 

Графически вывести - массив уже есть на графике - а именно это цена закрытия свечей. Если Вам необходимо вывести на график данный массив повторно или после произведения вычислений - то используйте буферы в MQL4 и функции SetIndexStyle() и SetIndexBuffer().

 

Кирилл

Share this post


Link to post
Share on other sites
elisseev2000

Дело в том , что я его вижу, но как его взять из цикла и потом работать с ним. я просто сделал это все в фортране. и теперь хочу сделать в онлайне. - там тупа математика и статистика(((((())))))))

Share this post


Link to post
Share on other sites
elisseev2000

Помогите-----с математикой момогу

Share this post


Link to post
Share on other sites
elisseev2000

Вы Хорошие дети

post-96054-1404220280,0127_thumb.jpg

Share this post


Link to post
Share on other sites
Wowa
Дело в том , что я его вижу, но как его взять из цикла и потом работать с ним. я просто сделал это все в фортране. и теперь хочу сделать в онлайне. - там тупа математика и статистика(((((())))))))

 

for (int i=1; i<122;i++)

{

Ваша_переменная = Close;

...

}

Если нужна текущая свеча, начинайте с 0, а не с 1


Мы сами знаем, что проблема не имеет решения. Мы хотим знать, как ее решать. (с) К. Хунта

Share this post


Link to post
Share on other sites
elisseev2000

Спасибо Вам Большое. разобрался

Share this post


Link to post
Share on other sites
elisseev2000

Уважаемые форумчане!

Если есть немного времени помогите пожалуйста!

Пишу индикатор. вот начало

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Blue

#property indicator_width1 1

#property indicator_style1 1

//#include <incMatrix.mqh>

double Buffer1[],x;

 

int init()

{

SetIndexBuffer(0,Buffer1);

SetIndexStyle(0,DRAW_LINE);

return(0);

 

}

int start()

 

 

{

// for(int i=0;i<=120;i++)

for(int i=120;i>-1;i--)

{

Buffer1=Close;

x=Close;

 

//Alert("x=",x," i=",i);

 

}

 

return(0);

Не могу понять как составить одномерный массив длиной 121, чтобы я смог с ним работать после окончания цикла по i. А надо будет составить 2мерный массив потом решить СЛАУ и т.д.

И вопрос Вообще возможно ли это.

Буду очень рад любой помощи.

Заранее спасибо.

Олег

Share this post


Link to post
Share on other sites
Programmer

Не могу понять как составить одномерный массив длиной 121, чтобы я смог с ним работать после окончания цикла по i. А надо будет составить 2мерный массив потом решить СЛАУ и т.д.

И вопрос Вообще возможно ли это.

Буду очень рад любой помощи.

Заранее спасибо.

Олег

 

Приветствую,

Одномерный массив длиной 121 инициализируется следующим образом:

double my_array[121];

 

Затем Вы инициализируете массив в цикле и работаете с ним по окончании цикла.

 

Более подробно про массивы я советую Вам прочитать в нашем Курсе MQL4:

- Тут я описал принципы устройтва массивов: https://forum.alpari.com/showpost.php?p=1450103&postcount=29

- В 21м уроке курса Вы можете прочитать про очень полезные функции работы с массивами (например, ArrayCopy()), которые значительно ускоряют процессы копирования, поиска и т.п.: https://forum.alpari.com/showpost.php?p=1452727&postcount=30

- И наконец, в этом уроке есть наглядный пример использования массивов в индикаторе. Тут Вы найдете как правильно применять массивы в качестве буферов и прочие полезные подсказки: https://forum.alpari.com/showpost.php?p=1151483&postcount=12

 

Если останутся вопросы - пишите.

Всегда поможем разобраться :beer_drink:

 

Кирилл

Share this post


Link to post
Share on other sites
elisseev2000

Все равно не получается составить массив чтобы он существовал после цикла по i.

Share this post


Link to post
Share on other sites
Programmer
Все равно не получается составить массив чтобы он существовал после цикла по i.

 

 

Приветствую,

Попробуйте вот так:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- buffers
double ExtMapBuffer1[];

int init()
{
  //---- indicators
  SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(0,ExtMapBuffer1);

  return(0);
}

int start()
{

  for(int i=0; i<=120; i++)
  {
     ExtMapBuffer1[i] = Close[i];
  }

  return(0);
}

Share this post


Link to post
Share on other sites
elisseev2000

Спасибо большое. Заработало. Трудно с фортрана на мкл4 переходить

Share this post


Link to post
Share on other sites
Programmer
Спасибо большое. Заработало. Трудно с фортрана на мкл4 переходить

 

Да, согласен, фортран - значительно отличается от MQL4 и др. C-подобных языков. Однако, уверен, что даже этот опыт программирования Вам пригодится в освоении MQL4.

 

Всегда рад помочь :beer_drink:

Обращайтесь, если появятся еще вопросы.

 

Кирилл

Share this post


Link to post
Share on other sites
elisseev2000

Здравствуйте.

Вопрос следующий.

Если надо вычислить сумму, зависящую от 2 переменных, то правильно будет оформить вычисление через двойной цикл например

for (int i=0;i<100;i++)

{

for (int j=0;j<20;j++)

{

..................

..................

}

}

 

Заранее большое спасибо

Олег

Share this post


Link to post
Share on other sites
AntFX

А в чем проблема? Да, вложенные циклы нормально работают, вложение блоков друг в друга это основа любого структурного программирования. Конкретный ответ зависит от того что и как нужно считать.


1

Share this post


Link to post
Share on other sites
elisseev2000

Спасибо

Share this post


Link to post
Share on other sites
elisseev2000

Доброго времени суток всем!

От незнания языка вылезла проблема. пишу индикатор и надо составить массив. Словами трудно объяснить по-этому напишу на фортране. Я понимаю,

что не все обязаны его знать, просто я уверен , что такую элементарщину все поймут.

real A(10,10),AA

do i=1,10,1

do j=1,10,1

do k=1,10,1

AA=AA+i+j+k

end do

A(i,j)=AA ! Тут я составляю массив 10х10

end do

end do

И тут я массив использую в личных целях))) например для решения СЛАУ

Подскажите пожалуйста как это сделать в mql4

Пожалуйста

С уважением

Олег

Share this post


Link to post
Share on other sites
Circle
Доброго времени суток всем!

От незнания языка вылезла проблема. пишу индикатор и надо составить массив. Словами трудно объяснить по-этому напишу на фортране. Я понимаю,

что не все обязаны его знать, просто я уверен , что такую элементарщину все поймут.

real A(10,10),AA

do i=1,10,1

do j=1,10,1

do k=1,10,1

AA=AA+i+j+k

end do

A(i,j)=AA ! Тут я составляю массив 10х10

end do

end do

И тут я массив использую в личных целях))) например для решения СЛАУ

Подскажите пожалуйста как это сделать в mql4

Пожалуйста

С уважением

Олег

 

double A[10][10];

Двухмерный массив на mql

Операции с массивами http://docs.mql4.com/ru/array .


Что такое форекс? Это там где деньги лежат.  :)

Share this post


Link to post
Share on other sites
AntFX
И тут я массив использую в личных целях))) например для решения СЛАУ

Если вы собираетесь посредствам mql4 решать слау :) не думаю, что вам нужна помощь из раздела новичков. Берите в руки руководство по mql4 и разбирайтесь сами. Или давайте конкретную задачу.


1

Share this post


Link to post
Share on other sites
elisseev2000

Спасибо за ответю

Извините я прочитал ссылку. У меня 2 мерный массив. А как написать , чтобы элементы из цикла заполняли массив?

Share this post


Link to post
Share on other sites
elisseev2000

Решение СЛАУ есть. Вопрос как (конкретный вопрос) создать массив из цикла

Share this post


Link to post
Share on other sites
AntFX

Вот' date=' например, заполнение элементов массива суммой его индексов

 

double AA[10'][10][10];

for(int i=0; i

{

for(int j=0; j

{

for(int k=0; k

{

AA[i,j,k]=i+j+k;

}

}

}

 

Обратите внимание, что нумерация элементов массива идет от 0 до размерности - 1


1

Share this post


Link to post
Share on other sites
elisseev2000

"И тут я массив использую в личных целях))) например для решения СЛАУ

Подскажите пожалуйста как это сделать в mql4"

Это я написал просто что потом буду с массивом делать.

Вопрос КАК создать в цикле массив, что бы он был в памяти после завершения цикла

Share this post


Link to post
Share on other sites
Pavel Kononenko

Никто ничего понять не может. Вы программист или кто? Составьте грамотно вопрос. Если вам надо заиметь массив, но его размер установить после инициализации, то ArrayResize().

 

http://docs.mql4.com/ru/array/ArrayResize

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×