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

 
rapid_minus:

Правильно ли я понял - пишем кусок кода без функций init(), start() и прочих, сохраняем его как файл .mqh, и все? Можем поместить его в Каталог_терминала\experts\include и он будет вызываться и исполняться без проблем?

Спасибо. 

Пишем просто функции в файл .mqh, подключаем этот файл в файл советника #include <имя_файла.mqh> если в каталоге include, либо #include "имя_файла.mqh" если в папке с основной программой (советником, индикатором, скриптом). Всё. Функции, находящиеся в файле, будут видны в советнике/индикаторе/скрипте. Главное - подключить файл до вызова из советника/индикатора/скрипта любой функции, находящейся в файле.
 
artmedia70:
Пишем просто функции в файл .mqh, подключаем этот файл в файл советника #include <имя_файла.mqh> если в каталоге include, либо #include "имя_файла.mqh" если в папке с основной программой (советником, индикатором, скриптом). Всё. Функции, находящиеся в файле, будут видны в советнике/индикаторе/скрипте. Главное - подключить файл до вызова из советника/индикатора/скрипта любой функции, находящейся в файле.


Хорошо. Значит, такой советник будет работать, или чего-то не хватает?

//--------------------------------------------------------------------#include "Variables.mqh"                    //Описание переменных #include "CritOpen.mgh"                     //Включаемый файл Критерии открытия ордеров#include "CritClose.mgh"                    //Включаемый файл Критерии закрытия ордеров//--------------------------------------------------------------------int init()                                    {   Variables();                           //Функция Описание переменных    CritOpen();                            //Функция Критерии открытия ордеров    CritClose();                           //Функция Критерии закрытия ордеров    return;   }        int start()                                               {            if (Orders==0)                //Если нет откытых или отложенных ордеров             {             CritOpen();                                               }               else                  {                  CritClose();                              }       return;         }//----------------------------конец кода?--------------------------

Чё за ерунда - выводит SRC одной строкой. Повторю простым копированием

 
artmedia70:
Пишем просто функции в файл .mqh, подключаем этот файл в файл советника #include <имя_файла.mqh> если в каталоге include, либо #include "имя_файла.mqh" если в папке с основной программой (советником, индикатором, скриптом). Всё. Функции, находящиеся в файле, будут видны в советнике/индикаторе/скрипте. Главное - подключить файл до вызова из советника/индикатора/скрипта любой функции, находящейся в файле.

повтор:

//--------------------------------------------------------------------
#include "Variables.mqh"                    //Описание переменных
#include "CritOpen.mgh"                     //Включаемый файл Критерии открытия ордеров
#include "CritClose.mgh"                    //Включаемый файл Критерии закрытия ордеров
//--------------------------------------------------------------------
 int init()                                
   {
   Variables();                           //Функция Описание переменных
   CritOpen();                            //Функция Критерии открытия ордеров
   CritClose();                           //Функция Критерии закрытия ордеров
   return;
   } 
      int start()                                      
        {
            if (Orders==0)                //Если нет откытых или отложенных ордеров
             {
             CritOpen();                                 
             }
               else
                  {
                  CritClose();           
                  }
       return;
         }
//----------------------------конец кода?-------------------------- 

Работать будет? 

 

Господа профессионалы, так все-таки будет ли работать советник, описанный выше, или есть ещё что-то, что нужно обязательно включить, а я упустил?

Или вот например, у меня сомнения насчет правильности инициализации включаемых файлов - правильно ли описана функция init()? 

Спасибо. 

 
rapid_minus:

Господа профессионалы, так все-таки будет ли работать советник, описанный выше, или есть ещё что-то, что нужно обязательно включить, а я упустил?

Или вот например, у меня сомнения насчет правильности инициализации включаемых файлов - правильно ли описана функция init()? 

Спасибо. 

Будет. Можно все функции в один инклюд записать, тоже работать будет. Можно расширение .mq4 оставить и точно так вызывать, будет работать не хуже.

 
Помогите извлечь максимальное значение индикатора в советнике. Есть индикатор и в нем без проблем вычисляется через массив максимальное значение, теперь не знаю как передать его в советник или код индикатора перенести в советник или еще как нибудь...в общем я в тупике. :(
 
evillive:

Будет. Можно все функции в один инклюд записать, тоже работать будет. Можно расширение .mq4 оставить и точно так вызывать, будет работать не хуже.

Вот спасибо! Обнадежили меня. Сейчас буду пытаться протестировать по текущему году. (Тьфу-тьфу-тьфу, с Богом!)
 

Упс! Чего-то не хватает. Пишет в журнале, что не может загрузить мой эксперт и не может открыть файл .ex4.

Общая ошибка [2] .Что это значит? 

 
rapid_minus:

Упс! Чего-то не хватает. Пишет в журнале, что не может загрузить мой эксперт и не может открыть файл .ex4.

Общая ошибка [2] .Что это значит? 

А скомпилировался ли он?
 
Alexandr24:
Помогите извлечь максимальное значение индикатора в советнике. Есть индикатор и в нем без проблем вычисляется через массив максимальное значение, теперь не знаю как передать его в советник или код индикатора перенести в советник или еще как нибудь...в общем я в тупике. :(
Завести буфер под это значение и считывать из советника, так проще всего.
Причина обращения: