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

 
Мужики, подскажите. Есть индикатор достаточно сложный, я могу например через глобальную переменную с индикатора передать сигнал о совершении сделки советнику? Или нужно индикатор по косточкам разбирать и в код советника засовывать?
 
Можешь конечно, мужики не против )
 
oDin48:
Мужики, подскажите. Есть индикатор достаточно сложный, я могу например через глобальную переменную с индикатора передать сигнал о совершении сделки советнику? Или нужно индикатор по косточкам разбирать и в код советника засовывать?
А ещё мужики могут посоветовать использовать iCustom() для получения данных с буферов индикатора (если он рисует через них)
 
Barbarian:
Я ведь задал конкретный вопрос, а не способ найти выход :) выход из своей ситуации я и так знаю, меня интересует - это у меня так одного или нет. Если у меня одного, то значит искать проблему нужно в браузере, если не только у меня, значит искать проблему мне не нужно - все работает как раньше.

Браузер тут не причём. От браузера зависит только то, как будет выглядеть ресурс. А то как он ищет, это уже к браузеру не относится никак.
 
Barbarian:
Это у меня одного перестал работать поиск по mql4.com или у всех? К примеру набираю в поиск функцию из Документация, а в ответ пишет что ни чего не найдено, хотя раньше работало.


Да не работает поиск, тут люди уже спрашивали. Еще раз провел. Результатов нет. Браузер не причём. Просто отрубился чего-то.
 
Zhunko:

Попробуйте вызвать функцию из той, что не подгрузилась. Сразу загрузится.

Тут описан механизм.


Касаемо данной темы, там сказано лишь то что, при выполнении mq4-программы для импорта функций используется позднее связывание. Поясняется, что пока не будет вызвана соответствующая функция из соответствующей библиотеки, то данная библиотека загружена не будет. Тут всё понятно.

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

Вот начало сова:

#property copyright "hoz"
#property link      ""

#include <hoz_Base@Include.mqh>
#include <hoz_Base@ListOfFunc.mqh>
#include <hoz_MakeListOfInstruments@Include.mqh>
#include <hoz_MakeListOfInstruments@ListOfFunc.mqh>

Каждая библиотека имеет у меня:

1. Инклюдник, где имеется перечень используемых переменных

2. Инклюдник, где перечислены импортированные функции.

3. Сама библиотека с функциями.

Объясню как у меня всё на примере, библиотеки для работы с торгуемыми инструментами.

1. Инклюдник с объявленными переменными:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 hoz_MakeListOfInstruments@Include.mqh |
//|                                                                                                                                   hoz |
//|                                                                                                                                       |
//+---------------------------------------------------------------------------------------------------------------------------------------+

#property copyright "hoz"
#property link      ""

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                       ЗАГОЛОВОЧНЫЙ ФАЙЛ ДЛЯ БИБЛИОТЕКИ hoz_MakeListOfInstruments@library.                             |
//+---------------------------------------------------------------------------------------------------------------------------------------+

// =====================================================  Внешние параметры библиотеки  ==================================================+
extern string Make_List_Of_Symbols = " ______ Make List Of Symbols ______ ";
extern string i_ListOfWorkingSymbol = "";           // Список рабочих инструментов
extern string i_BASECurrencyList = "USD,EUR,JPY,CHF,GBP,CAD,AUD";
extern string i_BADCurrencyList = "NZD";
extern int    i_MAXSpread = 50;                     // MAX spread
//+=======================================================================================================================================+
//                                                          ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ                                                         |
//+=======================================================================================================================================+
string bs_LibName = "hoz_MakeListOfInstruments@Library";
int    bi_CntOfSMB;                  // Количество рабочих инструментов
string bsa_WorkingSMB[];             // Массив рабочих инструментов

2. Непосредственно сама библиотека:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 hoz_MakeListOfInstruments@Library.mq4 |
//|                                                                                                                                   hoz |
//|                                                                                                                                       |
//+---------------------------------------------------------------------------------------------------------------------------------------+

#property copyright "hoz"
#property link      ""
#property library

//+=======================================================================================================================================+
//|                                           БИБЛИОТЕКА СОЗДАНИЯ СПИСКА ТОРГУЕМЫХ ИНСТРУМЕНТОВ                                           |
//+=======================================================================================================================================+
// ================================================== Включения и импорт внешних модулей =================================================+
#include <hoz_Base@Include.mqh>
#include <hoz_MakeListOfInstruments@Include.mqh>
#import "hoz_Base@Library@ex4"
    string fCreat_StrFromArray (string fsa_Array[], string fs_Delimiter = ",");
    int fGet_StrArrayFromLine (string fs_List, string& fsa_OUT[], string fs_Delimiter = ",");
    void fInitializeArray_STR (string& fsa_Array[], string fs_Value = "");
#import
//+---
#import "hoz_LoggingToAnyWere@library.ex4"
    void fPrint (string fs_Text);
#import
//+---
#import "hoz_HandlingWithErrorS@library.ex4"
    string fErrorToString (int fi_Error);
#import
//+=======================================================================================================================================+
//===================================================   Перечень функций библиотеки   ====================================================|
//+=======================================================================================================================================+
//+---------------------------------------------------------------------------------------------------------------------------------------+
//| 0.0 Инициализация модуля.                                                                                                             |
//+---  Функции модуля. ------------------------------------------------------------------------------------------------------------------+
//| 1.1 Создаём список рабочих инструментов и заносим их в массив.                                                                        |
//| 1.2 Функция возвращает список доступных символов.                                                                                     |
//| 1.3 Проверяем на котируемость у ДЦ введённых символов.                                                                                      |
//| 1.4 Проверка переданных в функцию внешних параметров.                                                                                 |
//+---------------------------------------------------------------------------------------------------------------------------------------+

//+=======================================================================================================================================+
//|                                                      ИНИЦИАЛИЗАЦИЯ МОДУЛЯ.                                                            |
//+=======================================================================================================================================+
void fInitListOfInstrumentsMaking()
{
    //---- Создаём список рабочих инструментов и заносим их в массив
    bi_CntOfSMB = fCreat_WorkingSymbolsArray (bsa_WorkingSMB, i_ListOfWorkingSymbol, i_BASECurrencyList, i_BADCurrencyList, i_MAXSpread);
    //---- Заново создаём список рабочих инструментов
    bs_SymbolList = fCreat_StrFromArray (bsa_WorkingSMB, ",");
    Print (bi_CntOfSMB, " : ", bs_SymbolList);
    //---- Производим проверку передаваемых в библиотеку значений
    if (!fCheck_ExternParameters())
    {
        Alert ("Проверьте параметры библиотеки hoz_MakeListOfInstruments !!!");
        return;
    }
    //---- Контролируем возможные ошибки
         fPrint (StringConcatenate ("fCheck_ExternParameters => ", fErrorToString (bi_Err)));
//----
}
/*
           ДРУГИЕ ФУНКЦИИ...
*/
// 1.4 Проверка переданных в функцию внешних параметров. ==================================================================================
bool fCheck_ExternParameters()
{
    bi_Err = -1;
//----
    if (i_MAXSpread < 0)
    {
        Print ("Поставьте MAX_Spread >= 0 !!!");
        return (false);
    }
    //---- Контролируем возможные ошибки
         fPrint (StringConcatenate ("fCheck_ExternParameters => ", fErrorToString (bi_Err)));
//----
     return (true);
}

3. Список импортируемых функций:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                              hoz_MakeListOfInstruments@ListOfFunc.mqh |
//|                                                                                                                                   hoz |
//|                                                                                                                                       |
//+---------------------------------------------------------------------------------------------------------------------------------------+

#property copyright "hoz"
#property link      ""

//+---------------------------------------------------------------------------------------------------------------------------------------+
//| Список функций библиотеки hoz_MakeListOfInstruments@Library.ex4                                                                       |
//+---------------------------------------------------------------------------------------------------------------------------------------+
#import "hoz_MakeListOfInstruments@Library.ex4"
    void fInitListOfInstrumentsMaking();
    int  fCreat_WorkingSymbolsArray (string& fsa_SMB[], string fs_ListOfWorkingSymbol, string fs_BaseCurrency, string fs_BadCurrency, int fi_MAXspread = 0, string fs_Delimiter = ",");
    int  fListOfSymbols (string& fs_Symbols[], bool fb_Looking);
    int  fCheck_PresenceSMBInMarket (string& fsa_WorkingSMB[]);
    bool fCheck_ExternParameters();
#import

Получается, что при импорте библиотек:

#include <hoz_MakeListOfInstruments@ListOfFunc.mqh>

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

Я ведь верно всё структурировал?

 
Zhunko:

Конечно, ожидаемый! Думал, что всё выложу? Типа, на понт взял :-)

Потом, почему кастрированный? Всё будет работать. Даже класс для управления МТ4. Просто не будет каких-то классов.

Библиотека (DLL) это обёртка для методов класса. Она не нужна, чтобы пользоваться классом.

====================

Опять фантазии... Позиция обиженного ребёнка. Игрушку не дал. Теперь я плохой. Сказал же - не навязываю. Мне легче не давать, чем давать. Так комфортнее. Ответственности меньше. Прими это, как есть.

Тем более, что:

Зачем этот наш диалог?


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

Зачем этот наш диалог?


Какой интернсый вопрос.. А ты возомнил что мне твои исходники нужны?

 
Zhunko:

Ни на кого не обижаюсь. Всё в порядке.

Дима всё меня на "чистую воду выводит"... :-))

Неоднократно заявлял - согласен со всеми его фантазиями в отношении меня. Но не унимается всё.

Каждый человек имеет право на любую фантазию.


Это самое потрясное - Вадим Жунко обвинят других в фантазиях. На самом деле это достойно анналов, но как бы не все в теме и не все поймут прикола. Достойно не только анналов, достоно в граните зубилом выбить.

 
Добрый вечер, а можно использовать несколько меджиков в одном советнике?
Причина обращения: