Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 794

 
007yurik :

Arkadaşlar çaydanlığa yardım edin. Fikir şudur: "Ind" değişkeni belirli bir seviyeye ulaştığında, "Value" yön değişikliğini beklemeye devam ederken, "Ind" için artık kontrol etmiyoruz.


   if (Ind[ 0 ]<=- 0.7 )
     {
       while (Value[ 3 ]>Value[ 2 ]<Value[ 1 ])
        {
         if ( CopyBuffer (InpInd2_Handle, 1 ,SignalBar, 3 ,Value)<= 0 )
           {
            Recount= true ;
             return ;
           }
        }
       if (BuyPosOpen) BUY_Open= true ;
     }


Doğru nasıl yapılır???

   if (Ind[ 0 ]<=- 0.7 )
     {

ile ikame edilmiş

   bool pravda= false ;

   if (pravda || Ind[ 0 ]<=- 0.7 )
     {
      pravda= true ;
 
007yurik :

...


özet :

...


Lütfen kodu doğru şekilde yapıştırın: Kodu foruma doğru şekilde yapıştırın

 
007yurik :

Arkadaşlar çaydanlığa yardım edin. Fikir şudur: "Ind" değişkeni belirtilen seviyeye ulaştığında "Değer" yönünde bir değişiklik beklentisine geçiyoruz, "Ind" için beklerken artık kontrol etmiyoruz.

Doğru nasıl yapılır???

Bence burada bir hata var:

 while (Value[ 3 ]>Value[ 2 ]<Value[ 1 ])

Olmalı:

 while (Value[ 3 ]>Value[ 2 ] §§ Value[ 2 ]<Value[ 1 ])
 
Ivan Ivanov :

Bence burada bir hata var:

Olmalı:

Klavyedeki paragraf sembolü nerede? kapalı olduğunu düşündüm...

 while (Value[ 3 ]>Value[ 2 ] §§ Value[ 2 ]<Value[ 1 ])
 
Ivan Ivanov :

Bence burada bir hata var:

Olmalı:

Genel olarak, durum böyle değil, onsuz yapabilirsiniz.
 while (Value[ 2 ]<Value[ 1 ])
 
pivomoe :

ile ikame edilmiş

Doğru olanı yaptıysam (ki bu şüpheli), o zaman askıda kalıyor, görünüşe göre döngüden çıkmıyor.
 bool pravda= false ;

   if (pravda || Ind[ 0 ]<=- 0.7 )
   pravda= true ;
   
   {   
      
       while (Value[ 2 ]<Value[ 1 ])
         {
         if ( CopyBuffer (InpInd2_Handle, 1 ,SignalBar, 3 ,Value)<= 0 ) {Recount= true ; return ;}                 
          }
          
         if (BuyPosOpen) BUY_Open= true ;     
                                                  
         if (SellPosClose) SELL_Close= true ;
         UpSignalTime= datetime ( SeriesInfoInteger ( Symbol (),InpInd_Timeframe, SERIES_LASTBAR_DATE ))+TimeShiftSec;
         }
 
007yurik :
Doğru olanı yaptıysam (ki bu şüpheli), o zaman askıda kalıyor, görünüşe göre döngüden çıkmıyor.
 if (pravda || Ind[ 0 ]<=- 0.7 )
 {
   pravda= true ;         
 
pivomoe :
Denedim aynı şey Ind seviyeyi geçince takılıyor.
 
1
007yurik :
Denedim aynı şey Ind seviyeyi geçince takılıyor.

1. bool pravda'yı küresel yapın. ( https://www.mql5.com/ru/docs/basis/variables/global )

2. while ile if ile değiştirin.

3. if (2. adımdan itibaren) başarılı olduğunda, pravda=false döndürün.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Глобальные переменные создаются путем размещения их объявлений вне описания какой-либо функции. Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе...
 
007yurik :

Arkadaşlar çaydanlığa yardım edin. Fikir şudur: "Ind" değişkeni belirli bir seviyeye ulaştığında, "Value" yön değişikliğini beklemeye devam ederken, "Ind" için artık kontrol etmiyoruz.




Doğru nasıl yapılır???

while döngüsünün yürütülmesi sırasında göstergenin yeniden hesaplandığından emin misiniz?