MQL uzmanları için soru - sayfa 13

 

Döngüdeki kod neden çalışmıyor?

while(! IsStopped() )

{

kod

uyku(50);

}

ve keneler üzerinde iyi çalışıyor

 
seka-s79 :

Döngüdeki kod neden çalışmıyor?

tavuk neden yolun karşısına geçmiyor
 

ANCAK! Anladım! Teşekkürler!!!

 

Symbol() MT4 ile ilgili sorun:

Gösterilecek 2 fonksiyon:

 string    SymbolOK()
{

   string    value ;
   string    argument = "ANYTHING" ;

   if ( false )
   {
       value = argument;
   }

   return ( value );

}

string    SymbolPROBLEM()
{

   string    value ;
   string    argument = Symbol();

   if ( false )
   {
       value = argument;
   }

   return ( value );

}

İlkini yürütmek boş bir dize verir:

 int start()
{
   Comment (SymbolOK());
   return ( 0 );
}

Ve işte ikinci işlev dizisi tanımlayıcısı "EURUSD" (peki, grafiğe bağlıdır, ancak çıktı, işlevin mantığına göre boş bir dize olması gerekse de):

 int start()
{
   Comment (SymbolPROBLEM());
   return ( 0 );
}

Neyin yanlış olduğunu anlamama yardım et? teşekkürler

 
anton.veksler :

Symbol() MT4 ile ilgili sorun:

Gösterilecek 2 fonksiyon:

İlkini yürütmek boş bir dize verir:

Ve işte ikinci işlev dizisi tanımlayıcısı "EURUSD" (peki, grafiğe bağlıdır, ancak çıktı, işlevin mantığına göre boş bir dize olması gerekse de):

Neyin yanlış olduğunu anlamama yardım et? teşekkürler

if(false) işleviniz hiçbir zaman çalışmayacaktır, bu nedenle değerin değeri hiçbir şekilde değişmeyecek ve büyük olasılıkla boş bir dizeye eşit olacaktır. Dize değişkenlerinin değerlerinin nasıl başlatıldığını bilmesem de. Belki hiç başlatılmamışlardır, O zaman sizin sürümünüzde her şey çıkarılabilir.
 
Sepulca :
if(false) işleviniz hiçbir zaman çalışmayacaktır, bu nedenle değerin değeri hiçbir şekilde değişmeyecek ve büyük olasılıkla boş bir dizeye eşit olacaktır. Dize değişkenlerinin değerlerinin nasıl başlatıldığını bilmesem de. Belki hiç başlatılmamışlardır, O zaman sizin sürümünüzde her şey çıkarılabilir.

"...Başlangıç değeri açıkça belirtilmemişse, sayısal bir değişken sıfır (0) olarak başlatılır ve bir dize türü değişken boş bir dize olarak başlatılır..."
 
zoritch :
"...Başlangıç değeri açıkça belirtilmemişse, sayısal bir değişken sıfır (0) olarak başlatılır ve bir dize türü değişken boş bir dize olarak başlatılır..."



Eh, belgelerde bile buldunuz ... Ama genel olarak konuşursak, d ... ama soru. Rahatsız etmemek için doldurmak o kadar da zor değil:

 string    value;

şöyle bir şey:

 string    value= "ЭтоСтрокаПокаЕёЕщёНиктоНеТрогал" ;
 
Sepulca :



Eh, belgelerde bile buldunuz ... Ama genel olarak konuşursak, d ... ama soru. Rahatsız etmemek için doldurmak o kadar da zor değil:

şöyle bir şey:


Cevapladığınız için teşekkürler. Açık bir başlatma olmadan, dize değişkeninin boş bir dize olacağına dair belgeleri biliyorum, biliyorum, AMA bu işlev aracın sembolik kodunu döndürür. Onlar. asla (kasıtlı olarak yanlış) koşuluna düşmeyeceğiz, çünkü değer bu varyantta nasıl Symbol() olur (işlevin bu örneği abartılmıştır), yani dize değişkeni boş bir dize değil örtük başlatma ile elde edilir (ve Buna gerçekten güvendim), ama ne - anlaşılmaz bir şey, daha doğrusu, örtük dize başlatma mekanizması anlaşılmaz. Değişkenlerin bildirimini "doldurmak" zor değil, sadece sistemin davranışı belgelerle uyumlu değil, bir şekilde onu deviriyor. Ve en önemlisi, bu argüman Symbol() olduğunda gerçekleşir.


 string    SymbolPROBLEM()
{

   string    value ;
   string    argument = Symbol();

   if ( false )
   {
       value = argument;
   }

   return ( value );

}
 

Hepinize iyi günler!

Tahkim Danışmanı tarafından yazılmıştır. Bir giriş sinyali üretilir - DELTA_MA göstergesinin fiyat çizgilerinin mevcut farklılığı, parametrelerde belirtilen DELTA değerini aşarsa:

 //жжжжжжжжжжжжжжжжжжжжжжж Ищем возможность войти в рынок жжжжжжжжжжжжжжжжжжжжжжжж
// Задаем ценовые линии МА на 1-м баре
  MA_1=   ( iMA (Symbol_1, Period (),per2, 0 ,ma_method,Price, 1 )-
           iMA (Symbol_1, Period (),per1, 0 ,ma_method,Price, 1 )) ;  
  MA_2= ( iMA (Symbol_2, Period (),per2, 0 ,ma_method,Price, 1 )-
         iMA (Symbol_2, Period (),per1, 0 ,ma_method,Price, 1 ))   ;                 
 ДЕЛЬТА_MA  =   MathAbs (MA_1 - MA_2 ) ; //- разность ценовых линий на 1 баре        
//------------------------------------------------ 

if (ДЕЛЬТА_MA > ДЕЛЬТА && MA_1 > MA_2) //если линии разошлись больше заданного значения
       //(первыя выше второй), то продаем 1-й инструмент и покупаем/продаем второй 
      TradeDOWN= true ;       else TradeDOWN= false ;

Danışman normal ve doğru çalışıyor! Yalnızca ilk koşulun karşılanması durumunda, fiyat satırları aynı anda birleşirse girişe izin veren bir filtre eklemeye karar verdiğimde sorunlar başladı:

 extern double        ДЕЛЬТА = 350 ;

extern string   ____F____  = "=== FILTER ===" ;
 extern bool      FILTER_= true ; //Арбитр. вход реализуется только при схождении линий
Böyle bir durum için algoritma aşağıdaki gibi uygulanır: