Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 929

 
Существует ли возможность проверки из кода в каком режиме бежит тестирование -
все тики, цены открытия или контрольные точки?
 
Почему я не могу добавлять друзей?
 
Здравствуйте. Пытаюсь освоить виртуальный хостинг все по инструкции, не открывается советник.Подскажите, плз.
 

Подскажите пожалуйста, кто из столпов Классического ТА является автором этой картинки?

Эта картинка есть у Элдера в "Основах биржевой торговли". Меня, собственно говоря, интересует такая же картинка, но с КОНВЕРГЕНЦИЯМИ, если такая вообще существует в природе.


 

Помогите, пожалуйста. Простейший скрипт, а не работает. Не могу понять почему.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

Цикл должен прокрутиться 6 раз. При каждой итерации должно присваиваться значение в массив awd1. После завершения работы цикла должно выскочить окошко с записью "первый=". Но оно не выскакивает. Что не так?

 
silachara:

Помогите, пожалуйста. Простейший скрипт, а не работает. Не могу понять почему.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

Цикл должен прокрутиться 6 раз. При каждой итерации должно присваиваться значение в массив awd1. После завершения работы цикла должно выскочить окошко с записью "первый=". Но оно не выскакивает. Что не так?

Это поможет избавиться и от сообщений в терминале: array out of range in ...:

#property strict
#define ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+


P./S.: Вот вариант с проверкой:

#property strict
#define ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, count=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
      count++;
      Print("count = ",count,", awd1[",i,"] = ",awd1[i],", j = ",j);
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+
 
silachara:
Чуть поправила коды выше, чтобы одно и то же значение awd1[i] не выходило.
 
DiPach:
Чуть поправила коды выше, чтобы одно и то же значение awd1[i] не выходило.

Спасибо!

Т.е. массив надо было объявить указав количество ячеек в нем? Это требование появилось после перехода МТ4 на 600-й билд? Или и раньше так было?

И еще одна проблема: не могу найти файл, куда записывается информация из Print(). Подскажите, плиз, путь. Все директории МТ4 перерыл, но не нашел.

 
silachara:

Спасибо!

Т.е. массив надо было объявить указав количество ячеек в нем? Это требование появилось после перехода МТ4 на 600-й билд? Или и раньше так было?

Функция для установки размера динамического массива ArrayResize была и до 600-го билда.

А так..., при обновлённом языке MQL4 компилятор стал строже. Посмотреть интересующую инфу "из первых уст", а не по пересказу с возможным не намеренным искажением, в т.ч., за счёт неполноты изложения,  можно, при необходимости, и здесь. В том числе, в "Таблице отличий между компиляторами" прежнего и обновлённого языков MQL4 (эта таблица на первой странице этой темы, в конце первого сообщения), или по поиску. Как помню, материалов было много при переходе на обновлённый язык MQL4.

 

silachara:

И еще одна проблема: не могу найти файл, куда записывается информация из Print(). Подскажите, плиз, путь. Все директории МТ4 перерыл, но не нашел.

Быстрый способ: Перейдите на вкладку терминала "Эксперты" -> кликните правой кнопой мыши в поле этой вкладки -> в открывшемся меню нажмите на строку "Открыть".

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


P./S.: Этим же способом можно быстро открыть папку на компе с лог-файлами записей из вкладки терминала "Журнал" (они в другой папке находятся).