Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 279

 
Çocuklar, söyleyin. Oldukça karmaşık bir gösterge var, örneğin, göstergeden global bir değişken aracılığıyla danışmana işlem hakkında bir sinyal gönderebilir miyim? Yoksa göstergeyi kemikten söküp danışmanın koduna mı koymanız gerekiyor?
 
Elbette yapabilirsiniz, erkekler aldırmaz)
 
oDin48 :
Çocuklar, söyleyin. Oldukça karmaşık bir gösterge var, örneğin, göstergeden global bir değişken aracılığıyla danışmana işlem hakkında bir sinyal gönderebilir miyim? Yoksa göstergeyi kemikten söküp danışmanın koduna mı koymanız gerekiyor?
Ayrıca, çocuklar gösterge arabelleklerinden veri almak için iCustom()'u kullanmayı tavsiye edebilirler (eğer içinden geçiyorsa)
 
Barbarian :
Sonuçta, belirli bir soru sordum ve bir çıkış yolu bulmanın bir yolu değil :) Durumumdan çıkış yolunu zaten biliyorum, bir çıkış yolumun olup olmadığıyla ilgileniyorum. Bir tane varsa, o zaman tarayıcıda sorunu aramam gerekiyor, sadece benim için değil, o zaman sorunu aramama gerek yok - her şey eskisi gibi çalışıyor.

Tarayıcının bununla hiçbir ilgisi yok. Tarayıcıya bağlı olan tek şey kaynağın nasıl görüneceğidir. Ve nasıl ararsa, bu tarayıcı için hiçbir şekilde geçerli değildir.
 
Barbarian :
mql4.com'daki aramanın durması sadece ben miyim yoksa herkes için mi? Örneğin, Dokümantasyon'dan aramaya bir işlev yazarım ve yanıt olarak eskiden çalışmasına rağmen hiçbir şey bulunamadığını yazarım.


Evet, arama çalışmıyor, burada insanlar zaten sordu. Yine yaptı. Sonuç yok. Tarayıcının bununla hiçbir ilgisi yok. Sadece bir şeyi kes.
 
Zhunko :

Yüklenmeyen bir işlevden bir işlev çağırmayı deneyin. Hemen yüklenecektir.

Mekanizma burada açıklanmıştır .


Bu konuyla ilgili olarak, yalnızca bir mq4 programı yürütülürken, işlevleri içe aktarmak için geç bağlamanın kullanıldığını söylüyor. İlgili kütüphaneden ilgili fonksiyon çağrılıncaya kadar bu kütüphanenin yüklenmeyeceği açıklanmıştır. Burada her şey açık.

Ama yine de, neden bir EA'nın başlangıcında fonksiyonları çağırmam gereksin ki? Anlam? Bu süreçte, kütüphanelerden herhangi bir işlevi çağıramıyorum bile, ancak 2 kütüphane bir şekilde mucizevi bir şekilde yüklendi.

İşte baykuşun başlangıcı:

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

Sahip olduğum her kütüphane:

1. Includer, kullanılan değişkenlerin bir listesinin bulunduğu yer

2. İçe aktarılan işlevleri listeleyen kapsayıcı.

3. İşlevleri olan kütüphanenin kendisi.

Bir örnek kullanarak her şeyin benimle nasıl olduğunu açıklayacağım, işlem gören enstrümanlarla çalışmak için kütüphaneler .

1. Bildirilen değişkenlere sahip kapsayıcı:

 //+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 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. Kütüphanenin kendisi:

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                 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. İçe aktarılan işlevlerin listesi:

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

Kitaplıkları içe aktarırken ortaya çıktı:

 #include <hoz_MakeListOfInstruments@ListOfFunc.mqh>

İşlevler yüklenmeli ve kitaplığın kendisi buna göre çağrılmalıdır, değil mi?

Her şeyi doğru yapılandırıyor muyum?

 
Zhunko :

Tabii ki bekleniyor! Hepsini yayınlayacağımı mı düşündün? Sanki gösteriş için almıştım :-)

O zaman neden kısırlaştırıldı? Her şey işe yarayacak. MT4'ü yönetmek için bir sınıf bile. Sadece herhangi bir sınıf olmayacak.

Bir kitaplık (DLL), sınıf yöntemleri için bir sarmalayıcıdır. Sınıfı kullanmak gerekli değildir.

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

Yine fanteziler ... Kırgın bir çocuğun konumu. Bana oyuncak vermedi. Şimdi kötüyüm. Dedim - empoze etmiyorum. Vermemeyi vermekten daha kolay buluyorum. Yani daha rahat. Daha az sorumluluk. Olduğu gibi al.

Özellikle şu zamandan beri:

Neden bu diyalog?


Ah nasıl dayandım. Ve bu kaynaklara ihtiyacım olmadığını açık bir şekilde açıkladıktan sonra sona erdi. Onlara ihtiyacım yok, onlarda bir değer görmüyorum, onlar senin için Vadim, büyük bir gurur meselesi ve başka bir şey değil. Size bir kez daha hatırlatıyorum - onları yakalamanız ve bir afiş gibi başınızın üzerinde taşımanız çok komik.
 
Zhunko :

Neden bu diyalog?


Ne stajyerlik sorusu.. Kaynaklarınıza ihtiyacım olduğunu mu düşünüyorsunuz?

 
Zhunko :

Ben kimseden nefret etmiyorum. Herşey iyi.

Dima beni "temiz suya" getiriyor ... :-))

Benimle ilgili tüm fantezilerine katıldığını defalarca belirtti. Ama her şey yatıştırılmaz.

Her insanın herhangi bir fanteziye hakkı vardır.


Bu en şaşırtıcı şey - Vadim Zhunko başkalarını fantezilerle suçlayacak. Aslında, bu yıllıklara layık, ama sanki herkes konunun içinde değil ve herkes şakayı anlamayacak. Sadece yıllıklara değil, granitten bir keski ile nakavt edilmeye değer.

 
İyi akşamlar, bir Uzman Danışmanda birkaç büyü kullanmak mümkün müdür?