Несколько вопросов по MQL5 от новичка...

 

Доброго времени суток уважаемые прогреммеры, и не прогреммеры :). Я далеко не программист и MQL5 для меня весьма сложноват, но все же хотел бы разобраться.

Есть несколько вопросов:

  1. Возможно ли из Скрипта обратиться к ценовому массиву, если да то как?
  2. Возможно ли в структуре описывать двумерный и более массив, если да то как?
  3. Возможно ли описать тип массива, как это есть в языках Си и Делфи(TArray123=array[1..100,1..100] of Integer; это пример из языка делфи.), Если да то как?

 Уж извините за такие наверное тупые вопросы, всем заранее огромное спаcибо за ответы!

 

чел что может быть проще определения массива)

int mas[15];

а вот у меня вопросы к создателям зачем убрали возможность возвращать обьект из функции при помощи указателя (без использования GetPointer(this)) ? веть было так удобно)

и правельно я понял, что передать в функцию массив, обьект или структуру возможно только как ссылку?

и вот еще кстати вопросик, скачал траду5, втыкаю - идёт загрузка и больше ничего) подскажите как создать демо счет и т.п.

Документация по MQL5: Общие функции / GetPointer
Документация по MQL5: Общие функции / GetPointer
  • www.mql5.com
Общие функции / GetPointer - Документация по MQL5
 
BESSONoff писал(а)  :

чел что может быть проще определения массива)

int mas[15];

а вот у меня вопросы к создателям зачем убрали возможность возвращать обьект из функции при помощи указателя (без использования GetPointer(this)) ? веть было так удобно)

и правельно я понял, что передать в функцию массив, обьект или структуру возможно только как ссылку?

и вот еще кстати вопросик, скачал траду5, втыкаю - идёт загрузка и больше ничего) подскажите как создать демо счет и т.п.

Нужно обьявить Массив в структуре и он должен быть двумерный тоесть int mas1[15][15].

Когда я так пытаюсь сделать в структуре, компилятор пишет об ошибке.

 
Fast:

Нужно обьявить Массив в структуре и он должен быть двумерный тоесть int mas1[15][15].

Когда я так пытаюсь сделать в структуре, компилятор пишет об ошибке.

а ты его как динамический создай)

int mas[][15]

 
BESSONoff писал(а)  :

а ты его как динамический создай)

int mas[][15]

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

Остался один вопрос, как обратиться к цене!!!!!!!! в mql4 все было предельно просто уже делал такое из скрипта..., но как в mql5??? :) 

 
Fast:

А каким образом мне потом сохранить структуру с динамическим массивом в файл и потом открыть ее??? И еще непойму как обратиться к High[1] или Close[1] из скрипта??

на самом деле я прогер С++ и вот сам мучаюсь с переходом на траду5, и понимаю что столько всего удобного убрали... а зачем не понятно)
 
BESSONoff писал(а)  :
на самом деле я прогер С++ и вот сам мучаюсь с переходом на траду5, и понимаю что столько всего удобного убрали... а зачем не понятно)
У тебя есть аська? я в Си не  очень шарю, но вот в делфи неплохо разбирался да и в mql4 более менее, а вот щас ваще в ступоре, вроде и мощнее стало все, но всеже документации почти 0 примеров тоже 0......
 
Fast:
У тебя есть аська? я в Си не  очень шарю, но вот в делфи неплохо разбирался да и в mql4 более менее, а вот щас ваще в ступоре, вроде и мощнее стало все, но всеже документации почти 0 примеров тоже 0......
зайди в раздел "документация" там слева пдф с языком мкьюэль5 - качай, учи)
 
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyRates - Документация по MQL5
 
Fast писал(а)  :

Доброго времени суток уважаемые прогреммеры, и не прогреммеры :). Я далеко не программист и MQL5 для меня весьма сложноват, но все же хотел бы разобраться.

Есть несколько вопросов:

  1. Возможно ли из Скрипта обратиться к ценовому массиву, если да то как?
  2. Возможно ли в структуре описывать двумерный и более массив, если да то как?
  3. Возможно ли описать тип массива, как это есть в языках Си и Делфи(TArray123=array[1..100,1..100] of Integer; это пример из языка делфи.), Если да то как?

 Уж извините за такие наверное тупые вопросы, всем заранее огромное спаcибо за ответы!

 

1. Да. Пример:

   int err=0;
   do
     {
      rates_total=CopyRates(Symbol(),PERIOD_M1,time1,time2,rates);
      err++;
     }
   while(rates_total<=0 && err<10);
   if(err>=10)
      return(false);

 2. Да. Пример:

 

struct COORDINATE_BOX
  {
   double            price1;
   datetime          time1;
   double            price2;
   datetime          time2;
   double            matrix[10][10];
  };

3. Да. Ответ в предыдущем ответе. 

 

Fast Остался один вопрос, как обратиться к цене!!!!!!!! в mql4 все было предельно просто уже делал такое из скрипта..., но как в mql5??? :) 

 Если Ты имееш в виду последнюю котировку то самый простой способ:

   MqlTick last_tick;
   SymbolInfoTick(Symbol(),last_tick);
А из last_tick бери все что тебе нужно

 

struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
  };

 

Если необходим массив данных, см. ответ на первый вопрос. 

Передача массива в фукцию. Пример:

double CalcLsma(const int index,int period,const double &price[])
  {
   double sum=0;
   for(int i=1;i<=period;i++)
     {
      double tmp=i-(period+1)/3.0;
      sum+=(tmp*price[index-period+i])*6;
     }
   return(sum/(period*(period+1)));
  }
Если внутри функции есть необходимость изменять массив убери ключевое слово const.

 

 

 
mql-гуру - скажите мне пожалуйста как создать демо счет, чтоб попробовать без $ ?
Причина обращения: