Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 279

 
Potete darmi un consiglio? Ho un indicatore piuttosto complicato, per esempio, posso usare una variabile globale dell'indicatore per inviare un segnale all'Expert Advisor per fare un affare? O devo smontare l'indicatore fino all'osso e inserirlo nel codice dell'Expert Advisor?
 
Puoi farlo, agli uomini non importa).
 
oDin48:
Potete darmi un consiglio? Ho un indicatore piuttosto complicato, per esempio, posso usare una variabile globale dell'indicatore per inviare un segnale all'Expert Advisor per fare un affare? O devo smontare l'indicatore per ossa e incollarlo nel codice dell'Expert Advisor?
E i ragazzi possono consigliare di usare iCustom() per ricevere i dati dai buffer degli indicatori (se si disegna attraverso di essi).
 
Barbarian:
Ho fatto una domanda specifica, non una via d'uscita :) conosco la via d'uscita dalla mia situazione, mi interessa - è lo stesso per me solo o no. Se sono l'unico, allora cerca il problema nel browser, se non sono l'unico, allora non ho bisogno di cercare un problema - tutto funziona come prima.

Il browser non c'entra niente. Il browser influenza solo l'aspetto della risorsa. Il modo in cui cerca è irrilevante per il browser.
 
Barbarian:
Sono l'unico che ha smesso di cercare mql4.com o tutti? Per esempio, digito una funzione di ricerca da Documentazione, ma la risposta è che non è stato trovato nulla, anche se prima funzionava.


Sì, la ricerca non funziona, la gente l'ha chiesto. L'ho fatto di nuovo. Non ci sono risultati. Il browser non c'entra niente. È solo qualcosa che è stato eliminato.
 
Zhunko:

Provate a chiamare la funzione da quella che non è caricata. Si caricherà subito.

Ilmeccanismo è descritto qui.


Riguardo a questo argomento, dice solo che quando si esegue un programma mq4, il late binding è usato per importare funzioni. Si spiega che finché la funzione appropriata non viene chiamata dalla libreria appropriata, questa libreria non viene caricata . Qui tutto è chiaro.

Ma, di nuovo, perché dovrei chiamare una funzione all'inizio dell'EA? Qual è il punto? Non ho mai chiamato alcuna funzione dalle librerie, ma 2 librerie in qualche modo vengono miracolosamente caricate.

Ecco l'inizio del gufo:

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

Ogni biblioteca che ho:

1. l'Includnik, che ha un elenco di variabili utilizzate

2. l'Includnik, dove sono elencate le funzioni importate.

3. La libreria stessa con le funzioni.

Lasciate che vi spieghi come ce l'ho con un esempio, librerie per lavorare con strumenti negoziati.

1. Includnik con variabili dichiarate:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 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 biblioteca stessa:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 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. L'elenco delle funzioni da importare:

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

Si scopre che quando si importano le librerie:

#include <hoz_MakeListOfInstruments@ListOfFunc.mqh>

Le funzioni devono essere caricate e la libreria stessa deve essere chiamata, giusto?

L'ho strutturato bene, vero?

 
Zhunko:

Certo che lo sei! Ho pensato di mettere tutto in piazza? Come se stessi cercando di impressionarti :-)

Allora, perché castrato? Tutto funzionerà. Anche la classe per controllare MT4. Semplicemente non ci sarà nessuna classe.

Library (DLL) è un wrapper per i metodi delle classi. Non ne avete bisogno per usare la classe.

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

Ancora fantasie... La posizione di un bambino abusato. Non mi hai dato un giocattolo. Ora sono io il cattivo. Te l'ho detto, non voglio insistere. Per me è più facile non dare che dare. È più comodo. Meno responsabilità. Prendilo per quello che è.

A maggior ragione:

Perché questo nostro dialogo?


Oh, sono così eccitato. E ti sei eccitato dopo aver dichiarato apertamente che non ho bisogno di queste fonti. Non ne ho bisogno, non ci vedo alcun valore, sono una questione di grande orgoglio per te, Vadimi, e questo è tutto. Te lo ricordo di nuovo - è solo divertente il modo in cui ti aggrappi a loro... e portarli in alto sopra la testa come uno stendardo.
 
Zhunko:

Perché questo nostro dialogo?


Che domanda interessante. E pensi che io abbia bisogno delle tue fonti?

 
Zhunko:

Non sono offeso da nessuno. Non c'è problema.

Dima continua a portarmi allo scoperto... :-))

Ripetutamente dichiarato - sono d'accordo con tutte le sue fantasie su di me. Ma non vuole fermarsi.

Tutti hanno diritto ad ogni fantasia.


Questa è la cosa più scioccante - Vadim Junko accuserà gli altri di fantasie. In realtà è degno degli annali, ma non tutti sono in tema e non tutti capiranno la battuta. Non solo degno degli annali, degno di essere cesellato nel granito.

 
Buona sera, è possibile utilizzare più di un Medgie in un EA?