Çaydanlıktan gelen sorular - sayfa 148

 
Yedelkin :
Peki, kodunuza kendiniz bakın. Bu haliyle, if (timeOntrade.hour== 4 || timeOntrade.hour== 15 || timeOntrade.hour== 16 ) koşulu tamamen işe yaramaz. Sonuç ne olursa olsun, bool timeOntrade() işleviniz her zaman true değerini döndürür.
Mantıklı geliyor. Benim ilgilendiğim şey bu. Gereksiz, lüzumsuz yazmışım gibi geliyor bana ama gereğini kaçırmış olabilirim.
 
Interesting :

alph, Yedelkin bundan bahsediyor.

Fonksiyonun bu varyantları, bizim anlayışımıza göre aynıdır.

Şimdi anladım.
 
alph :
Mantıklı geliyor. Benim ilgilendiğim şey bu. Gereksiz, lüzumsuz yazmışım gibi geliyor bana ama gereğini kaçırmış olabilirim.


Benim için hala net olmayan başka bir nokta

    timeOntrade.hour= 0 ;
   timeOntrade.min = 0 ;
   timeOntrade.sec = 1 ;
   if (timeOntrade.hour== 4 || timeOntrade.hour== 15 || timeOntrade.hour== 16 ) return ( true );

Onlar. her şeyi doğru anladıysam önce saate 0 atarız sonra karşılaştırırız.

mantık nerede?
 
Interesting :


Benim için hala net olmayan başka bir nokta

Onlar. her şeyi doğru anladıysam önce saate 0 atarız sonra karşılaştırırız.

mantık nerede?
Henüz true ile olan satırı kaldırmadım ama bana öyle geliyor ki, eğer onu kaldırırsanız, ontik'te belirli bir değer veya parametre olarak saat ile karşılaştırma olmayacak.
 
alph :
Henüz true ile satırı kaldırmadım, ancak bana öyle geliyor ki, kaldırırsanız, ontik'te belirli bir değer veya parametre olarak saat ile karşılaştırma olmayacak.

Şu anda, bu seçenekler bence aynı.

 bool timeOntrade( int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer (timeOntrade);
   if (timeOntrade.hour!=TradeHour) return ( false );
   timeOntrade.hour= 0 ;
   timeOntrade.min = 0 ;
   timeOntrade.sec = 1 ;
   if (timeOntrade.hour== 4 || timeOntrade.hour== 15 || timeOntrade.hour== 16 ) return ( true );
   return ( true );
   }

bool timeOntrade( int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer (timeOntrade);
   if (timeOntrade.hour!=TradeHour) return ( false );
   return ( true );
   }

Değer atamanın neden gerekli olduğunu gerçekten anlamıyorum?

Onlar. Anladığım kadarıyla, en uygun seçenek

 bool timeOntrade( int TradeHour)
   {
   MqlDateTime timetrade;
   TimeTradeServer (timetrade);
   if (timetrade.hour!=TradeHour) return ( false );
   return ( true );
   }
Bu durumda, sunucunun o anki saati (sadece saatten bahsediyoruz) belirtilen saate eşit değilse, false döndürülür, aksi takdirde true döndürülür.
 
Interesting :

Bu seçenekler şu anda aynıdır.

Değer atamanın neden gerekli olduğunu gerçekten anlamıyorum?

Bunu yazmak için:

geçersiz OnTick()

{...

//------------------------------------------------ --------------------------------------------+

//Açmaya geçiş için temel

MqlRates rt[1];

if(CopyRates(Symbol(),MyTframe,0,1,rt)<0) dönüş;

if(rt[0].tick_volume>1) dönüş;

if(!PositionSelect(_Symbol) && (timeOntrade(4) || ((timeOntrade(15) || timeOntrade(16))&& timeOntrade2(0)))) Open();// pozisyon açmaya geçiş

timeOntrade.min = 0 ;

Bu bağlamda kesinlikle gereksiz.


   timeOntrade.min = 0 ;
   timeOntrade.sec = 1 ;
 

alph :

Bunu yazmak için:

geçersiz OnTick()

Bu seçeneği deneyin. Değilse, o zaman ne almak istediğinizi anlamıyorum ...

 bool timeOntrade( int TradeHour)
   {
   MqlDateTime timetrade;
   TimeTradeServer (timetrade);
   if (timetrade.hour!=TradeHour) return ( false );
   return ( true );
   }
 
Interesting :

Bu seçeneği deneyin. Değilse, o zaman ne almak istediğinizi anlamıyorum ...

Evet, evet, ama içinde:

  bool  timeOntrade2( int  TradeMin)  
   {
   MqlDateTime timetrade2;
   TimeTradeServer (timetrade);
   if (timetrade.min!=TradeMin) return ( false );
   return ( true );
   }
 
alph :

Evet, evet, ama içinde:

O zaman zaten öyle (sadakat için). Ama prensipte beni doğru anladın

 bool timeOntrade2( int TradeMin)  
   {
   MqlDateTime timetrade;
   TimeTradeServer (timetrade);
   if (timetrade.min!=TradeMin) return ( false );
   return ( true );
   }
 
Interesting :

O zaman zaten öyle (sadakat için). Ama prensipte beni doğru anladın

Teşekkür ederim! Kodun geri kalanı doğru mu?
Neden: