MQL uzmanları için soru - sayfa 15

 

teşekkürler, Zhunko ve TheXpert!

Varyantlarınızda bu tür hatalar ortadan kalkar!

 

tünaydın!

Güncellenmiş MT4'teki göstergeyi derlerken uyarının ne anlama gelebileceğini söyleyin:

tüm kontrol yolları bir değer döndürmez S_E_v.mq4 181 1
0 hata(lar), 1 uyarı(lar) 1 2

 
Rita :

Güncellenmiş MT4'teki göstergeyi derlerken uyarının ne anlama gelebileceğini söyleyin:

Bu, bir değer döndüren bir işlevde, hiçbir şeyin döndürülmediği ve bunun kötü olduğu bir durum olduğu anlamına gelir.
 

Programcılar, bana yardım edin: saatlik zaman diliminde verilen zamana göre çubuk ofsetini belirlemeniz gerekiyor. Normal prosedür (ders kitabından) 0 verir. Yanıldığım yere burnunu sok ...

 datetime some_time= D'2004.03.21 12:00' ;
   int       shift= iBarShift ( "EUROUSD" , PERIOD_M1 ,some_time);
   Print ( "shift of bar with open time " , TimeToStr (some_time), " is " ,shift);
 
Nesradamus :

Programcılar, bana yardım edin: saatlik zaman çerçevesinde verilen zamana göre çubuk kaymasını belirlemeniz gerekiyor. Normal prosedür (ders kitabından) 0 verir. Yanıldığım yere burnunu sok ...

 "EUROUSD"

Böyle bir sembol var mı?

 

Tünaydın.

MT4'ün son güncellemesinden ve danışmanın derlenmesinden sonra, 101-106-109 üç satırda uyarılar vardır, bkz. Şekil:

Lütfen. nasıl düzelteceğimi söyle, işte bu işlevin kodu:

(Düzeltilmesi gerekiyor mu?)

 int init()
{
 ExpertBars = Bars ;
//-----------------------------------------------------------
gbNoInit= False ; if (! IsTradeAllowed ()) {
    Message( "Для нормальной работы советника необходимо\n" +
             "Разрешить советнику торговать" );
    gbNoInit= True ; return ;
  }
   if (! IsLibrariesAllowed ()) {
    Message( "Для нормальной работы советника необходимо\n" +
             "Разрешить импорт из внешних экспертов" );
    gbNoInit= True ; return ;
  }
//------------------
}
 
Rita :

Tünaydın. MT4'ün son güncellemesinden ve danışmanın derlenmesinden sonra, 101-106-109 üç satırda uyarılar vardır, bkz. Şekil:

Lütfen. nasıl düzelteceğimi söyle, işte bu işlevin kodu:

(Düzeltilmesi gerekiyor mu?)

init() dosyanız int türünde , yani bir değer döndürmeniz gerekiyor. Son kapanış parantezinden önce şunu yazın

 return ( INIT_SUCCEEDED );

Bir işlevde, işlevin hiçbir şey döndürmeyebileceği bir yer vardır. İşlevleri göstermediniz - son kapanış parantezinden çıkmanın mümkün olduğu işlevlerde kendinizi arayın.

 
İşte kod
artmedia70 :

.Son kapanış parantezinden önce ..... yazın.

İşlevleri göstermediniz - son kapanış parantezine kaçmanın mümkün olduğu işlevlerde kendinizi arayın.


Sayesinde. Sabit dönüş(INIT_SUCCEEDED);.

Kalan diğer iki uyarının altındaki bu gösterilmeyen işlevin kodu:

 //+----------------------------------------------------------------------------+
//|  Вывод сообщения в коммент и в журнал                                      |
//+----------------------------------------------------------------------------+
void Message( string m) {
   Comment (m);
   if ( StringLen (m)> 0 ) Print (m);}

.

 
Rita :
İşte kod

Sayesinde. Sabit.

Diğer iki uyarıda bu işlevin kodu:

1. Büyük olasılıkla, deinit() dosyanız da bir int'dir ve return (0) buna dahil değildir.

2. Bu işlev geçersizdir ve dönüşü kapanış parantezidir. O iyi.

 

deinit() - Bende hiç yok.

Kalan iki dönüş uyarısını return(0) olarak değiştirdi ve kod yorumsuz derlendi.

Teşekkür ederim.