MQL5 dilini sıfırdan kendi kendine öğrenme - sayfa 79

 
Valeriy Yastremskiy :

Artem Trishkin aynı soruyu benim için yanıtladı, çünkü bu bir bağlantıdır (görünen), yani her yerde durabilir. Deneyin saflığı için boşluksuz denemek gerekir.

Teşekkürler Valery! Benzer bir sorunla karşılaşırsam bunu kesinlikle aklımda tutacağım.

Mutlu Noeller!

Saygılarımla, Vladimir.

 

Tüm başarılı ticaret ve iyi bir ruh hali!

MQL5 programlama dilini öğrenmeye devam ediyorum. Daha önce yayınlanan kodu biraz değiştirdim ve olan buydu:

 input string Symbol_Main= "EURUSD" ;           //Валютная пара, на которую ставим советник
input ENUM_TIMEFRAMES Time_Frame= PERIOD_H1 ; //Таймфрейм, на который ставим советник

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   /* Определим график валютной пары и таймфрейм, на который будем устанавливать советник. */
   /* Если текущий график валютной пары и текущий таймфрейм совпадают со входными параметрами */
   if ( _Symbol ==Symbol_Main && _Period ==Time_Frame)
     {
       /* выводим окно сообщений на торговом терминале и продолжаем работу советника */
       MessageBox ( "Работа советника разрешена! Продолжим!" );
       return ( INIT_SUCCEEDED ); //возвращаем для функции OnInit значение означающее "удачная инициализация"
     }
   /* Если текущий график валютной пары и текущий таймфрейм не совпадают со входными параметрами */
   if ( _Symbol !=Symbol_Main && _Period !=Time_Frame)
     {
       /* выводим окно сообщений на торговом терминале и закрываем советник */
       MessageBox ( "Не совпадают валютная пара и таймфрейм! Выходим!" );
       return ( INIT_FAILED ); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
     }
   /* Если текущий график валютной пары не совпадает со входным параметром */
   if ( _Symbol !=Symbol_Main)
     {
       /* выводим окно сообщений на торговом терминале и закрываем советник */
       MessageBox ( "Не совпадает валютная пара! Выходим!" );
       return ( INIT_FAILED ); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
     }
   /* Если текущий таймфрейм не совпадает со входным параметром */
   if ( _Period !=Time_Frame)
     {
       /* выводим окно сообщений на торговом терминале и закрываем советник */
       MessageBox ( "Не совпадет таймфрейм! Выходим!" );
       return ( INIT_FAILED ); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
     }
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+

Belki birinin ihtiyacı olur.

Saygılarımla, Vladimir.

 

Herkese iyi günler ve iyi bir ruh hali!

Biraz boş zaman vardı ve kendi kendine çalışmaya devam etmeye karar verdi. Tam o sırada, aniden bir sorunla karşılaştım. Daha önce, Trailing_Stop_(v.2).mq5 Expert Advisor'dayken ticaret sunucusuna şu istekte bulundu:

   /*  Создадим запрос на сервер и получим ответ с результатом */
   MqlTradeRequest request= { 0 };
   MqlTradeResult result= { 0 };

Kodun derlenmesinde herhangi bir sorun olmadı. Şimdi derleyici aşağıdaki hatayı veriyor:

0'ı enum'a dönüştüremez ' ENUM_TRADE_REQUEST_ACTIONS ' Trailing_Stop_(v.2).mq5 411 30

Kıvrımlı parantez içindeki istekten sonra sıfırı kaldırırsam,

   /*  Создадим запрос на сервер и получим ответ с результатом */
   MqlTradeRequest request= {};
   MqlTradeResult result= { 0 };

daha sonra derleyici bir hata atmaz. Lütfen neyin bağlanabileceğini anlamak için yardım edin?

Saygılarımla, Vladimir.

 
MrBrooklin :

Herkese iyi günler ve iyi bir ruh hali!

Biraz boş zaman vardı ve kendi kendine çalışmaya devam etmeye karar verdi. Ama aniden bir sorunla karşılaştım. Daha önce, Uzman Danışmanı Trailing_Stop_(v.2).mq5'teyken ticaret sunucusuna şu isteği yapmıştı:

Kodun derlenmesinde herhangi bir sorun olmadı. Şimdi derleyici aşağıdaki hatayı veriyor:

0'ı enum'a dönüştüremez ' ENUM_TRADE_REQUEST_ACTIONS ' Trailing_Stop_(v.2).mq5 411 30

Kıvrımlı parantez içindeki istekten sonra sıfırı kaldırırsam,

daha sonra derleyici bir hata atmaz. Lütfen neyin bağlanabileceğini anlamak için yardım edin?

Saygılarımla, Vladimir.

Evet, şimdi sıfırlamak için sıfır yazmayın.

ENUM_TRADE_REQUEST_ACTIONS , "0" değeri eksik bir numaralandırma

cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS'


Şu şekilde doğru olacaktır:

 MqlTradeRequest request={};

 
Vladimir Karputov :

Evet, şimdi sıfırlama için sıfır yazmayın.

Teşekkürler Vladimir!

Yaşa ve öğren! Sadece MQL5 Referansındaki geliştiriciler bunu her yerde düzeltirse harika olurdu!

Saygılarımla, Vladimir.

 

Herkese günaydın!

MQL5 programlama dilini kendi kendime çalışmaya devam ediyorum. ZigZag göstergesinden sinyal almak için bir fonksiyon yazmaya karar verdim. Onu iyice incelemeye başladım ve hemen sorular ortaya çıktı. Göstergenin giriş parametreleri şunları içerir:

 input int Depth      = 12 ;   // Depth
input int Deviation  = 5 ;   // Deviation
input int Backstep   = 3 ;   // Backstep

İngilizcem güçlü olmadığı için Google çevirmen kullanmak zorundayım. Çeviriyi en saf haliyle veren şey:

 Depth - глубина
 Deviation - отклонение
 Backstep - шаг назад

Sorular:

  1. Derinlik ise neyin derinliği?
  2. Sapma ise, neyden, hangi parametreden veya değerden sapma?
  3. Eğer bir adım geriyse, o zaman neden bir geri adım? O ilerlemiyor mu?

Sevgili uzmanlar, anlamaya yardımcı olun!

Saygılarımla, Vladimir.

 
MrBrooklin :

Herkese günaydın!

MQL5 programlama dilini kendi kendime çalışmaya devam ediyorum. ZigZag göstergesinden sinyal almak için bir fonksiyon yazmaya karar verdim. Onu iyice incelemeye başladım ve hemen sorular ortaya çıktı. Göstergenin giriş parametreleri şunları içerir:

İngilizcem güçlü olmadığı için Google çevirmen kullanmak zorundayım. Çeviriyi en saf haliyle veren nedir:

Sorular:

  1. Derinlik ise neyin derinliği?
  2. Sapma ise, neyden, hangi parametreden veya değerden sapma?
  3. Eğer bir adım geriyse, o zaman neden bir geri adım? O ilerlemiyor mu?

Sevgili uzmanlar, anlamaya yardımcı olun!

Saygılarımla, Vladimir.

İlköğretim - yardım arayın, "İleri gitmiyor mu" - burada tüm hikaye geriye gidiyor !!! :-)

https://www.mql5.com/ru/code/7796


Derinlik, Sapma pipleri tarafından bir öncekinden daha az (daha fazla) ikinci bir maksimumun (minimum) olmayacağı minimum çubuk sayısıdır, yani ZigZag her zaman sapabilir, ancak Sapma'dan daha fazla yakınsayabilir (veya tamamen hareket edebilir), ZigZag ancak Derinlik çubuklarından sonra yapılabilir. Geri adım, yüksekler (düşükler) arasındaki minimum çubuk sayısıdır.


Arama çubuğuna şunu yazın: örneğin, zikzak parametreleri, https://www.mql5.com/en/search#!keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0% B0 %D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&page=2</b > </p>

PS temel şeyler...

ZigZag
ZigZag
  • www.mql5.com
ZigZag отслеживает и соединяет между собой крайние точки графика отстоящие друг от друга не менее чем на заданный процент по шкале цены.
 
Roman Shiredchenko :

İlköğretim - yardım arayın, "İleri gitmiyor mu" - burada tüm hikaye geriye gidiyor !!! :-)

https://www.mql5.com/ru/code/7796


Derinlik, Sapma pipleri tarafından bir öncekinden daha az (daha fazla) ikinci bir maksimumun (minimum) olmayacağı minimum çubuk sayısıdır, yani ZigZag her zaman sapabilir, ancak Sapma'dan daha fazla yakınsayabilir (veya tamamen hareket edebilir), ZigZag ancak Derinlik çubuklarından sonra yapılabilir. Geri adım, yüksekler (düşükler) arasındaki minimum çubuk sayısıdır.


Arama çubuğuna şunu yazın: örneğin, zikzak parametreleri, https://www.mql5.com/en/search#!keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0% B0 %D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&page=2</b > </p>

PS temel şeyler...

Çok teşekkürler Roman! En kısa ama aynı zamanda anlaşılır bir açıklama yaptınız.

Saygılarımla, Vladimir.

 
MrBrooklin :

Çok teşekkürler Roman! En kısa ama aynı zamanda anlaşılır bir açıklama yaptınız.

Saygılarımla, Vladimir.

ATP, kontrol ettiler, kibarım, gizli şaka olmadan! Orada bir gülümsemeyle!
 

Herkese iyi günler!

Bir danışmanı test ederken bir sorunla karşılaştım. Aşağıdaki EA başlatma işlevi koduna sahiptir:

 //+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- достаточно ли количество баров для работы
   if ( Bars ( _Symbol , _Period )< 60 ) // общее количество баров на графике меньше 60?
     {
       Alert ( "На графике меньше 60 баров, советник не будет работать!!" );
       return (- 1 );
     }
//--- получить хэндл индикатора Bollinger Bands и DEMA
   BolBandsHandle= iBands ( NULL , PERIOD_M30 ,bands_period,bands_shift,deviation, PRICE_CLOSE );
   demaHandle= iDEMA ( NULL , PERIOD_D1 ,dema_period, 0 , PRICE_CLOSE );
//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if ((BolBandsHandle< 0 ) || (demaHandle< 0 ))
     {
       Alert ( "Ошибка при создании индикаторов - номер ошибки: " , GetLastError (), "!!" );
       return (- 1 );
     }

   return ( 0 );
  }

Expert Advisor'ın testi sırasında, günlükte aşağıdaki mesajlar görünür:

 2021.10 . 31 13 : 19 : 25.752 Core 2   genetic pass ( 0 , 288 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 26.835 Core 2   genetic pass ( 0 , 298 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 26.921 Core 1   genetic pass ( 0 , 42 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 27.847 Core 2   genetic pass ( 0 , 318 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 27.848 Core 2   genetic pass ( 0 , 326 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 29.907 Core 2   genetic pass ( 0 , 359 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 29.907 Core 2   genetic pass ( 0 , 371 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 30.009 Core 1   genetic pass ( 0 , 102 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 30.009 Core 1   genetic pass ( 0 , 105 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000
2021.10 . 31 13 : 19 : 31.044 Core 1   genetic pass ( 0 , 122 ) tested with error "OnInit returned non-zero code -1" in 0 : 00 : 00.000

и т.д.

Sorunun Bollinger Bantlarının ve DEMA göstergelerinin tutamaçlarını kontrol etmede yattığını öğrendim. Bu bağlamda, soru ortaya çıktı - bu hatalar neyi etkileyebilir ve bunları ortadan kaldırmak için kodda nelerin değiştirilmesi gerekiyor?

Saygılarımla, Vladimir.