Скачать MetaTrader 5

Включение файлов и внешние переменные

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликовал программу в Маркете? Опубликуй ее и в блоге - виджет поможет!
Roman Starinskij
1870
Roman Starinskij 2016.08.26 17:08 

Здравствуйте, подскажите пожалуйста понять.

Есть функция библиотеки, которая должна вернуть значение переменной из файла, в котором ее подключили.
Сейчас lib.mqh это самостоятельный файл, который должен быть скомпилирован по всем правилам. А можно ли в MQL вставить часть независимого кода из другого файла, чтобы в него втянулись все переменные файла?

Это делаю для 2-х советников, которые используют одинаковые функции, но которые подтягивают свои параметры из настроек. 

Надеюсь получилось объяснить что хотел :)
Спасибо! 

extern int magic = 255;

#include <lib.mqh>

// функция из lib.mqh
int get_magic()
{       
  return (magic);
}

void OnTick()
{
  Alert(get_magic());
}
Roman Starinskij
1870
Roman Starinskij 2016.08.27 09:57  
Такое нереально сделать? Подойдут даже извращенные варианты :)
George Merts
3612
George Merts 2016.08.27 10:47  

Не вполне понятно, что требуется.

Библиотечная функция - возвращает значение в любое место, откуда ее вызывают.

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

Alexey Viktorov
6913
Alexey Viktorov 2016.08.27 14:04  
Roman Starinskij:
Такое нереально сделать? Подойдут даже извращенные варианты :)

Никаких извращений не надо.

Переменная magic в функции из библиотеки невидна.

Roman Starinskij
1870
Roman Starinskij 2016.08.27 14:05  
George Merts:

Не вполне понятно, что требуется.

Библиотечная функция - возвращает значение в любое место, откуда ее вызывают.

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

У меня есть подключаемый файл со всеми функциями. Он включается в несколько основных файлов.

В основном файле прописаны внешние настройки-параметры советника: меджик, размер стопа, экспирация и т.д. Они разные для нескольких советников.
Надо подключить для 3-х советников один файл-библиотеку с функциями, библиотека которая бы использовала свои переменные-настройки того советника, в котором подключена эта библиотека.

В общих чертах так :) 

Dmitry Fedoseev
42919
Dmitry Fedoseev 2016.08.27 14:57  
Подключайте файл ниже переменных.
Roman Starinskij
1870
Roman Starinskij 2016.08.31 10:04  

Всем спасибо за подсказки. Скорее всего есть смысл перевести все функции в классы и сделать 1 переменную меджика для всего класса. Так можно связать переменные советника с переменными в функциях библиотеки.

Yury Kirillov
3276
Yury Kirillov 2016.08.31 11:31  
Roman Starinskij:

Всем спасибо за подсказки. Скорее всего есть смысл перевести все функции в классы и сделать 1 переменную меджика для всего класса. Так можно связать переменные советника с переменными в функциях библиотеки.

//======================================================================================================
//    INCLUDE
//------------------------------------------------------------------------------------------------------
#include "Include\H_Def_LN1-002.016.mqh"     //Определения переменных и структур
#include "Include\H_Int_LN1-002.016.mqh"     //Интерфейс настроек
#include "Include\H_Fun_LN1-002.016.mqh"     //Основные процедуры алгортма
#include "Include\H_Fun_LN2-002.016.mqh"     //Основные технические расчеты
#include "Include\H_Fun_LN3-002.016.mqh"     //Графика, вывод на чарт и преобразования вывода
Dmitry Fedoseev
42919
Dmitry Fedoseev 2016.08.31 11:55  
Roman Starinskij:

...

Надеюсь получилось объяснить что хотел :)
Спасибо! 

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