Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 279

 
Könnt ihr mir einen Tipp geben? Ich habe einen ziemlich komplizierten Indikator. Kann ich zum Beispiel eine globale Variable aus dem Indikator verwenden, um ein Signal an den Expert Advisor zu senden, um ein Geschäft zu machen? Oder sollte ich den Indikator bis auf die Knochen zerlegen und ihn in den Code des Expert Advisors einfügen?
 
Sie können es tun, die Männer haben nichts dagegen.)
 
oDin48:
Könnt ihr mir einen Tipp geben? Ich habe einen ziemlich komplizierten Indikator. Kann ich zum Beispiel eine globale Variable aus dem Indikator verwenden, um ein Signal an den Expert Advisor zu senden, um ein Geschäft zu machen? Oder sollte ich den Indikator in seine Einzelteile zerlegen und in den Code des Expert Advisors einfügen?
Und die Jungs können raten , iCustom() zu verwenden, um Daten von Indikatorpuffern zu erhalten (wenn es durch sie zeichnet).
 
Barbarian:
Ich habe eine konkrete Frage gestellt, keinen Ausweg :) Ich kenne den Ausweg aus meiner Situation, es interessiert mich, ob er auch für mich allein gilt oder nicht. Wenn ich der Einzige bin, dann suche ich das Problem im Browser, wenn ich nicht der Einzige bin, dann brauche ich nicht nach einem Problem zu suchen - alles funktioniert wie vorher.

Der Browser hat damit nichts zu tun. Der Browser hat nur Einfluss darauf, wie die Ressource aussehen wird. Die Art der Suche ist für den Browser unerheblich.
 
Barbarian:
Bin ich der Einzige, der aufgehört hat, nach mql4.com zu suchen, oder jeder? Ich gebe zum Beispiel eine Suchfunktion aus der Dokumentation ein, aber die Antwort ist, dass nichts gefunden wurde, obwohl es vorher funktioniert hat.


Ja, die Suche funktioniert nicht, die Leute haben gefragt. Ich habe es wieder getan. Es liegen keine Ergebnisse vor. Der Browser hat damit nichts zu tun. Es ist einfach etwas, das passiert ist.
 
Zhunko:

Versuchen Sie, die Funktion von der nicht geladenen Funktion aus aufzurufen. Sie wird sofort geladen.

Der Mechanismus wird hier beschrieben.


Zu diesem Thema heißt es nur, dass beim Ausführen eines mq4-Programms die späte Bindung zum Importieren von Funktionen verwendet wird. Es wird erklärt, dass diese Bibliothek erst dann geladen wird , wenn die entsprechende Funktion aus der entsprechenden Bibliothek aufgerufen wird. Hier ist alles klar.

Aber noch einmal: Warum sollte ich eine Funktion am Anfang des EAs aufrufen? Was ist der Grund? Ich habe noch nie Funktionen aus Bibliotheken aufgerufen, aber 2 Bibliotheken werden irgendwie auf wundersame Weise geladen.

Hier ist der Anfang der Eule:

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

Jede Bibliothek, die ich habe:

1. der Includnik, der eine Liste der verwendeten Variablen enthält

2. die Includnik, in der die importierten Funktionen aufgelistet sind.

3. Die Bibliothek selbst mit den Funktionen.

Lassen Sie mich anhand eines Beispiels erläutern, wie ich es gemacht habe: Bibliotheken für die Arbeit mit gehandelten Instrumenten.

1. Includnik mit deklarierten Variablen:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 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. Die Bibliothek selbst:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 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. Die Liste der zu importierenden Funktionen:

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

Es hat sich herausgestellt, dass beim Import von Bibliotheken:

#include <hoz_MakeListOfInstruments@ListOfFunc.mqh>

Die Funktionen müssen geladen werden und die Bibliothek selbst muss aufgerufen werden, richtig?

Ich habe es richtig strukturiert, nicht wahr?

 
Zhunko:

Natürlich sind Sie das! Ich dachte, ich würde das alles mal rauslassen? Als ob ich nur versuchen würde, dich zu beeindrucken :-)

Warum dann kastriert? Alles wird funktionieren. Auch die Klasse zur Steuerung von MT4. Es wird einfach keinen Unterricht geben.

Library (DLL) ist ein Wrapper für Klassenmethoden. Sie brauchen sie nicht, um die Klasse zu benutzen.

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

Wieder Fantasien... Die Lage eines missbrauchten Kindes. Du hast mir kein Spielzeug geschenkt. Jetzt bin ich der Bösewicht. Ich habe Ihnen gesagt, dass ich es nicht übertreiben werde. Es ist einfacher für mich, nicht zu geben, als zu geben. Es ist bequemer. Weniger Verantwortung. Nehmen Sie es als das, was es ist.

Umso mehr Grund:

Warum dieser Dialog?


Oh, ich bin so erregt. Und Sie haben sich eingeschaltet, nachdem Sie offen erklärt haben, dass ich diese Quellen nicht brauche. Ich brauche sie nicht, ich sehe keinen Wert in ihnen, sie sind eine Sache von großem Stolz für dich, Vadimi, und das ist alles. Ich erinnere dich noch einmal daran - es ist nur komisch, wie du dich an sie klammerst... und trage sie hoch über deinem Kopf wie eine Fahne.
 
Zhunko:

Warum dieser Dialog?


Das ist eine interessante Frage. Und Sie glauben, ich brauche Ihre Quellen?

 
Zhunko:

Ich fühle mich von niemandem beleidigt. Das ist in Ordnung.

Dima bringt mich immer wieder an die Öffentlichkeit... :-))

Er hat wiederholt erklärt, dass ich mit all seinen Fantasien über mich einverstanden bin. Aber er will nicht aufhören.

Jeder hat ein Recht auf jede Fantasie.


Das ist das Schockierendste: Vadim Junko beschuldigt andere der Fantasie. Das ist eigentlich eine Erwähnung wert, aber nicht jeder ist auf dem Laufenden und nicht jeder wird den Witz verstehen. Nicht nur würdig für die Annalen, sondern auch würdig, in Granit gemeißelt zu werden.

 
Guten Abend, ist es möglich, mehr als eine Medgie in einem EA zu verwenden?