MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 735

 

Beyler, Mql5 profesyonelleri, bir hedge hesabındaki bir pozisyonu kapatmak için talepte bulunmanıza yardımcı olun. Durum: Bir AL pozisyonu açık, Limitli Satış ile kapatmanız gerekiyor. Soru: Seçilen pozisyonun kapanması ve yeni bir SATIŞ kilitli ALIM açılmaması için nasıl doğru bir şekilde talepte bulunulur??? Lütfen, lütfen yorum içeren bir kod parçası yazın! Şimdiden teşekkür ederim!

 

Merhaba. Bana yardım et lütfen.

'LastDir' - illegal switch expression type


 double LastDir[];
//............... 
switch (LastDir[i]){
                           case 0 :
                               if ( High [i]>LastHighValue[i]){
                                 LastHighValue[i]= High [i];
                                 LastHighTime[i]= Time [i];
                                 LastDir[i]= 1 ;  
                                 ZZ[i]= High [i];                            
                                 PEACK[i]= High [i];
                              }   
                           break ;                            
                           case 1 :
                               if ( High [i]>LastHighValue[i]){
                                 int lhb= iBarShift ( NULL , 0 ,LastHighTime[i], false );
                                 ZZ[lhb]= 0 ;
                                 PEACK[lhb]= 0 ;
                                 LastHighValue[i]= High [i];
                                 LastHighTime[i]= Time [i];
                                 LastDir[i]= 1 ;  
                                 ZZ[i]= High [i];                            
                                 PEACK[i]= High [i];
                              }                           
                           break ;
                           case - 1 :
                               if ( High [i]>=LastLowValue[i]+ Point *ZZReverse){
                                 LastHighValue[i]= High [i];
                                 LastHighTime[i]= Time [i];
                                 LastDir[i]= 1 ;  
                                 ZZ[i]= High [i]; 
                                 PEACK[i]= High [i];                            
                              }
                        }
 
bij :

Merhaba. Bana yardım et lütfen.


switch ifadesi ifadesi tamsayı türünde olmalıdır

 
Alekseu Fedotov :

switch ifadesi ifadesi tamsayı türünde olmalıdır

Ancak " LastDir " bir arabellektir, int olamaz.

Durumdan nasıl çıkılır?

 
bij :

Ancak " LastDir " bir arabellektir, int olamaz.

Durumdan nasıl çıkılır?

Switch deyiminden kaçının

if() deyimiyle çalışın

 

Bunun ilk duruma eşdeğer olduğuna dair bir kesinlik yoktur.

                       if (LastDir[i]== 0 )
 
@Alekseu Fedotov , teşekkürler, çalışıyor) 2009'da anahtar çift olabilir)
 
bij :
@Alekseu Fedotov , teşekkürler, çalışıyor) 2009'da anahtar çift olabilir)

o her zaman doluydu

 
bij :

Merhaba. Bana yardım et lütfen.


Tampon yalnızca double 0.0, 1.0 ve -1.0 olarak temsil edilen tamsayı değerlerini içerebiliyorsa, bu seçeneği işaretlerdim

 double LastDir[];
//............... 
switch ( ( int ) LastDir[i]){
                           case 0 :
                               if ( High [i]>LastHighValue[i]){
                                 LastHighValue[i]= High [i];
                                 LastHighTime[i]= Time [i];
                                 LastDir[i]= 1 ;  
                                 ZZ[i]= High [i];                            
                                 PEACK[i]= High [i];
                              }   
                           break ;                            
                           case 1 :
                               if ( High [i]>LastHighValue[i]){
                                 int lhb= iBarShift ( NULL , 0 ,LastHighTime[i], false );
                                 ZZ[lhb]= 0 ;
                                 PEACK[lhb]= 0 ;
                                 LastHighValue[i]= High [i];
                                 LastHighTime[i]= Time [i];
                                 LastDir[i]= 1 ;  
                                 ZZ[i]= High [i];                            
                                 PEACK[i]= High [i];
                              }                           
                           break ;
                           case - 1 :
                               if ( High [i]>=LastLowValue[i]+ Point *ZZReverse){
                                 LastHighValue[i]= High [i];
                                 LastHighTime[i]= Time [i];
                                 LastDir[i]= 1 ;  
                                 ZZ[i]= High [i]; 
                                 PEACK[i]= High [i];                            
                              }
                        }
Yine de, durum -1'i durum 0'dan önce koyardım
 
Alexey Viktorov :

Tampon yalnızca double 0.0, 1.0 ve -1.0 olarak temsil edilen tamsayı değerlerini içerebiliyorsa, bu seçeneği işaretlerdim

Yine de, durum -1'i durum 0'dan önce koyardım

Burada, muhtemelen, varsayılan olarak -1 gereklidir: set, özellikle orada varsayılan bir durum olmadığı için

Her ne kadar ... burada varsayılan olarak hangi değeri ayarlamanın daha iyi olduğunu tam olarak bilmek için yazar olmanız gerekir.