Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 753

 
Top2n:


Спасибо! Если не затруднит еще вопрос, как же это разбить двумерный массив на два, логика же ломается?

Если вам нужно двумерный массив отдавать из индикатора, то сделайте на каждое измерение массива по буферу.

Буфер 0 - первое измерение, буфер 1 - второе.

И получайте их в советнике обычным образом.

 
Artyom Trishkin:

Если вам нужно двумерный массив отдавать из индикатора, то сделайте на каждое измерение массива по буферу.

Буфер 0 - первое измерение, буфер 1 - второе.

И получайте их в советнике обычным образом.


Благодарю, но если размерность 1000*1000, то не как.

Как же это разбить двумерный массив на два?

у меня выходит что на каждом баре есть одномерный массив данных

 
Top2n:


Благодарю, но если размерность 1000*1000, то не как.

Как же это разбить двумерный массив на два?

у меня выходит что на каждом баре есть одномерный массив данных

Зачем вам вообще делать в индикаторе расчёт чтобы потом отдать его в советник? Сразу всё считайте в советнике - проще будет.
 
Artyom Trishkin:
Зачем вам вообще делать в индикаторе расчёт чтобы потом отдать его в советник? Сразу всё считайте в советнике - проще будет.


У меня есть класс который в параметре использует параметр &price[]

OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
   sm.Solve(rates_total,prev_calculated,price);

Я его обойти не могу в советнике

 
Top2n:


У меня есть класс который в параметре использует параметр &price[]

Я его обойти не могу в советнике

Внимательно прочти раздел документации "Доступ к таймсериям и индикаторам" и всё станет ясно.

Ещё можно использовать "SymbolInfoTick" для получения цен в советниках.

Документация по MQL5: Доступ к таймсериям и индикаторам
Документация по MQL5: Доступ к таймсериям и индикаторам
  • www.mql5.com
Доступ к таймсериям и индикаторам - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Коллеги, добрый день.

Перечитал штук 20 тем по MQL5 и не нашел ответа на следующий вопрос: где взять пример кода простейшего советника на MQL5 для автоматической торговли для ФОРТС ?

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

По работающему коду я уже разберусь с МТ5.


До этого работал с Транзаком, АмиБрокером, ИТ-инвестовским каким-то терминалом. С МетаТрейдером ни с 4-м, ни с 5-м не работал,

но сейчас у Jus2Trade (это видимо ФИНАМовская дочка) есть МТ5 с доступом к фортсу и американским фьючерсам.

Хочу попробовать это на МТ5, но нормального изучения полноценно работающего примера найти не могу. Все примеры под форекс.

Коллеги, тыкните ссылкой, пожалуйста.

 
Alexey Viktorov:

Внимательно прочти раздел документации "Доступ к таймсериям и индикаторам" и всё станет ясно.

Ещё можно использовать "SymbolInfoTick" для получения цен в советниках.


Не не врубаюсь.
 

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

sm.Solve(rates_total,prev_calculated,price);

доп. инф. при запуске индикатора использую SMA, применить к HL/2

 
Top2n:

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

доп. инф. при запуске индикатора использую SMA, применить к HL/2

В советнике ни rates_total, ни prev_calaulated не нужны. Наступи на эти непонятные выражения и нажми F1, прочти что они означают, может тогда станет более понятно. Ведь все действия должны быть осмысленными. Как можно что-то делать не думая что может получиться и что получиться должно? Как можно что-то использовать не понимая что это такое?

Ну просто представь, что если надо забить гвоздь ты начнёшь пробовать это сделать граблями или микроскопом не понимая что в руки берёшь...

Если надо значения индикатора iMA на 2-3 последних барах, их можно получить посредством CopyBuffer по хендлу созданного перед этим индикатора. Как раз там, при создании индикатора и получении его хендла и задаётся

PRICE_MEDIAN

Медианная цена, (high+low)/2


И пример в документации абсолютно понятный есть.

Документация по MQL5: Технические индикаторы / iMA
Документация по MQL5: Технические индикаторы / iMA
  • www.mql5.com
Технические индикаторы / iMA - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

В советнике ни rates_total, ни prev_calaulated не нужны. Наступи на эти непонятные выражения и нажми F1, прочти что они означают, может тогда станет более понятно. Ведь все действия должны быть осмысленными. Как можно что-то делать не думая что может получиться и что получиться должно? Как можно что-то использовать не понимая что это такое?

Ну просто представь, что если надо забить гвоздь ты начнёшь пробовать это сделать граблями или микроскопом не понимая что в руки берёшь...

Если надо значения индикатора iMA на 2-3 последних барах, их можно получить посредством CopyBuffer по хендлу созданного перед этим индикатора. Как раз там, при создании индикатора и получении его хендла и задаётся

PRICE_MEDIAN

Медианная цена, (high+low)/2


И пример в документации абсолютно понятный есть.


Ладно с первыми двумя я погорячился rates_total и другой, а вот в место prece ->&aData[]. нужно же интегрировать класс, а не индикаторы через копибуф

класс такой

//+------------------------------------------------------------------+
void  CSMA_Greed::Solve(const int aRatesTotal,const int aPrevCalc,const double  &aData[])
  {
   rt=aRatesTotal; prv=aPrevCalc;
   for(int i=0;i<m_max_period;i++)ArrayResize(d[i].m,rt);
   chsma.Solve(rt,prv,aData,d[m_max_period-1].m);

   for(int i=prv>m_max_period?prv:m_max_period;i<rt;i++)
     {
      temp=d[m_max_period-1].m[i]*m_max_period;
      for(int j=m_max_period-2;j>=0;j--)
        {
         temp-=aData[i-(j+1)];
         d[j].m[i]=temp/(j+1);
        }
     }
  };
Причина обращения: