Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 279

 
Vous pouvez me donner un conseil ? J'ai un indicateur assez compliqué, par exemple, puis-je utiliser une variable globale de l'indicateur pour envoyer un signal au Conseiller Expert pour faire une transaction ? Ou dois-je démonter l'indicateur jusqu'à l'os et l'insérer dans le code du conseiller expert ?
 
Vous pouvez le faire, les hommes s'en fichent.)
 
oDin48:
Vous pouvez me donner un conseil ? J'ai un indicateur assez compliqué, par exemple, puis-je utiliser une variable globale de l'indicateur pour envoyer un signal au conseiller expert afin de réaliser une transaction ? Ou dois-je démonter l'indicateur par bones et le coller dans le code du Conseiller Expert ?
Et les gars peuvent conseiller d'utiliser iCustom() pour recevoir les données des tampons de l'indicateur (s'il dessine à travers eux).
 
Barbarian:
J'ai posé une question précise, pas une porte de sortie :) Je connais la porte de sortie de ma situation, ce qui m'intéresse, c'est de savoir si c'est la même chose pour moi seul ou non. Si je suis le seul, alors cherchez le problème dans le navigateur, si je ne suis pas le seul, alors je n'ai pas besoin de chercher un problème - tout fonctionne comme avant.

Le navigateur n'a rien à voir avec cela. Le navigateur n'affecte que l'apparence de la ressource. Le mode de recherche n'est pas pertinent pour le navigateur.
 
Barbarian:
Suis-je le seul à avoir arrêté de chercher mql4.com ou tout le monde ? Par exemple, je tape une fonction de recherche de la Documentation, mais la réponse est que rien n'a été trouvé, alors que cela fonctionnait auparavant.


Oui, la recherche ne fonctionne pas, les gens l'ont demandé. Je l'ai refait. Il n'y a pas de résultats. Le navigateur n'a rien à voir avec cela. C'est juste quelque chose qui est tombé à l'eau.
 
Zhunko:

Essayez d'appeler la fonction à partir de celle qui n'est pas chargée. Il se chargera tout de suite.

Le mécanisme est décrit ici.


En ce qui concerne ce sujet, il est seulement dit que lors de l'exécution d'un programme mq4, la liaison tardive est utilisée pour importer des fonctions. Il est expliqué que tant que la fonction appropriée n'est pas appelée à partir de la bibliothèque appropriée, cette bibliothèque ne sera pas chargée . Tout est clair ici.

Mais, encore une fois, pourquoi appellerais-je une fonction au début de l'EA ? Quel est l'intérêt ? Je n'ai jamais appelé de fonctions à partir de bibliothèques, mais deux bibliothèques sont miraculeusement chargées.

Voici le début de la chouette :

#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>

Chaque bibliothèque que j'ai :

1. l'Includnik, qui contient une liste des variables utilisées

2. l'Includnik, où les fonctions importées sont listées.

3. La bibliothèque elle-même avec les fonctions.

Je vais vous expliquer comment je procède à l'aide d'un exemple, les bibliothèques permettant de travailler avec des instruments négociés.

1. Includnik avec variables déclarées :

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 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. La bibliothèque elle-même :

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 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. La liste des fonctions à importer :

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                              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

Il s'avère que lors de l'importation de bibliothèques :

#include <hoz_MakeListOfInstruments@ListOfFunc.mqh>

Les fonctions doivent être chargées et la bibliothèque elle-même doit être appelée, non ?

Je l'ai bien structuré, n'est-ce pas ?

 
Zhunko:

Bien sûr que vous l'êtes ! J'ai pensé que je devais mettre tout ça sur la table ? Comme si j'essayais juste de t'impressionner :-)

Alors, pourquoi être castré ? Tout fonctionnera. Même la classe pour contrôler MT4. Il n'y aura tout simplement pas de cours.

Library (DLL) est une enveloppe pour les méthodes de classe. Vous n'en avez pas besoin pour utiliser la classe.

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

Encore des fantasmes... La position d'un enfant maltraité. Tu ne m'as pas donné de jouet. Maintenant, c'est moi qui suis le méchant. Je te l'ai dit, je n'insiste pas. C'est plus facile pour moi de ne pas donner que de donner. C'est plus confortable. Moins de responsabilités. Prenez-le pour ce qu'il est.

Raison de plus :

Pourquoi ce dialogue ?


Oh, je suis tellement excitée. Et tu as été excité après avoir déclaré ouvertement que je n'avais pas besoin de ces sources. Je n'en ai pas besoin, je n'y vois aucune valeur, ils sont un sujet de grande fierté pour toi, Vadimi, et c'est tout. Je te le rappelle encore une fois - c'est juste drôle que tu t'accroches à eux... et les porter haut au-dessus de votre tête comme une bannière.
 
Zhunko:

Pourquoi ce dialogue ?


Quelle question intéressante. Et vous pensez que j'ai besoin de vos sources ?

 
Zhunko:

Je ne suis pas offensé par qui que ce soit. C'est bon.

Dima continue de me faire sortir au grand jour... :-))

Il a répété que j'étais d'accord avec tous ses fantasmes sur moi. Mais il ne s'arrête pas.

Tout le monde a droit à toutes les fantaisies.


C'est la chose la plus choquante - Vadim Junko va accuser les autres de fantasmes. Elle est en fait digne des annales, mais tout le monde n'est pas sur le sujet et tout le monde ne comprendra pas la blague. Non seulement digne des annales, mais digne d'être gravée dans le granit.

 
Bonsoir, est-il possible d'utiliser plus d'un Medgie dans un EA ?
Raison: