МQL5'te Aç,Düşük,Yüksek,Kapat parametreleri nasıl alınır? - sayfa 8

 
Artyom Trishkin :

Tam olarak aramayacağım - zaman yok. "Kutunun dışında" bir şey olduğunu düşündüm - başlattım ve sonucu gördüm. Ve böylece ... Üstelik, komut dosyası hemen çalışmaz, ancak simgesindeki RMB'yi zorla kapatana kadar askıda kalır. Ve ancak o zaman orada bir şey yazdırılır. Genel olarak - makrolarla bir nedenden dolayı bir güçlük.

Gönderim, hatalar konusuna geçmek için mantıklı mı?

 
Artyom Trishkin :

Emin olmayacağım - zaman yok. "Kutunun dışında" bir şey olduğunu düşündüm - başlattım ve sonucu gördüm. Ve böylece ... Üstelik, komut dosyası hemen çalışmaz, ancak simgesindeki RMB'yi zorla kapatana kadar askıda kalır. Ve ancak o zaman orada bir şey yazdırılır. Genel olarak - makrolarla bir nedenden dolayı bir güçlük.

ahh, köpeğin ortalığı karıştırdığı yer!

testlerimi gördün mü dışarı ve Roman da yayınladı

436 saniye = 7 dakika test var!

;)

Not: Oynak kalemler sıkışıp kalmış diyorum size! ... senaryo "kutudan çıktı" çalışmıyor ...))))


Roma :

Gönderim, hatalar konusuna geçmek için mantıklı mı?

ne böcekleri? - peki, işlemci çekirdeklerini tam olarak yükleyemediklerini Vine ve Debian'a yazın, hangi işletim sistemi altında MT'niz var?

 
Igor Makanu :

ahh, köpeğin ortalığı karıştırdığı yer!

testlerimi gördün mü dışarı ve Roman da yayınladı

436 saniye = 7 dakika test var!

;)

Not: Oynak kalemler sıkışıp kalmış diyorum size! ... senaryo "kutudan çıktı" çalışmıyor ...))))

Korku :)

Daha fazla dinlenmeye ihtiyacın var...

 
Igor Makanu :

ahh, köpeğin ortalığı karıştırdığı yer!

testlerimi gördün mü dışarı ve Roman da yayınladı

436 saniye = 7 dakika test var!

;)

Not: Oynak kalemler sıkışıp kalmış diyorum size! ... senaryo "kutudan çıktı" çalışmıyor ...))))


ne böcekleri? - peki, işlemci çekirdeklerini tam olarak yükleyemediklerini Vine ve Debian'a yazın, hangi işletim sistemi altında MT'niz var?

MT tabii ki Windows altında, ama nasıl desek...
Debian'daki VS Kodunda, bir sürü başka kodu test ederken, tüm çekirdekler yüklenir, bu nedenle Debian'da günah işlemek gereksizdir.
Ancak Şarap yapabilir, ancak büyük olasılıkla MT bunun için bitmedi. Bu yüzden Wine'ın altından içmedim.
Ve Linux'ta Wine'ın altından birçok kişi oturuyor.

 
Igor Makanu :

ahh, köpeğin ortalığı karıştırdığı yer!

testlerimi gördün mü dışarı ve Roman da yayınladı

436 saniye = 7 dakika test var!

;)

Not: Oynak kalemler sıkışıp kalmış diyorum size! ... senaryo "kutudan çıktı" çalışmıyor ...))))


İyi. Oynak kalemler olmadan, ilk test beş dakikada geçti. Gerisi yirmiden sonra bile bitmedi. Soğutucu havalanmaya başladı, yanında duran kahve kaynamaya başladı... Genelde bayılttı...
 
İşlevlerin hızına ilişkin karar nedir - hangisi daha hızlı?
 
Renat Akhtyamov :
İşlevlerin hızına ilişkin karar nedir - hangisi daha hızlı?

CopyXXX() gibi görünüyor ama CopyRates( ) değil. Aynı anda birden fazla veri almanız gerektiğinde CopyRates()

 
Artyom Trishkin :
İyi. Oynak kalemler olmadan, ilk test beş dakikada geçti. Gerisi yirmiden sonra bile bitmedi. Soğutucu havalanmaya başladı, yanında duran kahve kaynamaya başladı... Genelde bayılttı...

hmm, bence bitleri baytlara dönüştürmek istemiyorsunuz ... prensipte başka seçenek yok! ))))

konu moderatörün gözetimi altındaysa, bir şeyler yapılması gerekiyor ... "yedek parça için" makroyu kaldırdım,

Artem, işe yarıyor mu?

 #property script_show_inputs

input ulong LoopCount= 500000000 ;

// Позволяет, как в MT4, работать с таймсериями: Open[Pos], High[Pos], Low[Pos], Close[Pos], Time[Pos], Volume[Pos].
// А так же задает привычные MT4-функции: iOpen, iHigh, iLow, iClose, iTime, iVolume.
#define DEFINE_TIMESERIE(NAME,FUNC,T)                                                                         \
   class CLASS ##NAME                                                                                           \
  {                                                                                                           \
   public :                                                                                                     \
     static T Get( const string Symb, const int TimeFrame, const int iShift) \
    {                                                                                                         \
      T tValue[];                                                                                             \
                                                                                                              \
       return ((Copy ##FUNC((Symb == NULL ) ? _Symbol : Symb, _Period , iShift, 1 , tValue) > 0 ) ? tValue[ 0 ] : - 1 ); \
    }                                                                                                         \
                                                                                                              \
    T operator []( const int iPos) const                                                                      \
    {                                                                                                         \
       return (CLASS ##NAME::Get(_Symbol, _Period , iPos));                                                       \
    }                                                                                                         \
  };                                                                                                          \
                                                                                                              \
  CLASS ##NAME NAME;                                                                                           \
                                                                                                              \
  T i ##NAME(const string Symb, const int TimeFrame, const int iShift) \
  {                                                                                                           \
     return (CLASS ##NAME::Get(Symb, TimeFrame, iShift));                                                        \
  }
//+------------------------------------------------------------------+
DEFINE_TIMESERIE(Volume,TickVolume, long )
DEFINE_TIMESERIE(Time,Time, datetime )
DEFINE_TIMESERIE(Open,Open, double )
DEFINE_TIMESERIE(High,High, double )
DEFINE_TIMESERIE(Low,Low, double )
DEFINE_TIMESERIE(Close,Close, double )
//+------------------------------------------------------------------+
void OnStart ()
  {
   double c,buff[ 1 ];
   MqlRates rates[ 1 ];
   ulong i;
//-----   
   Print ( "Start test № 1..." );
   Sleep ( 125 );
   srand ( GetTickCount ());
   uint start= GetTickCount ();
   for (i= 0 ;i<LoopCount && ! _StopFlag ;i++)
       CopyClose ( _Symbol , _Period , rand (), 1 ,buff);
   printf ( "CopyClose : loops=%u , ms=%u" ,i, GetTickCount ()-start);
//-----   
   Print ( "Start test № 2..." );
   Sleep ( 125 );
   srand ( GetTickCount ());
   start= GetTickCount ();
   for (i= 0 ;i<LoopCount && ! _StopFlag ;i++)
      c = iClose ( NULL , 0 , rand ());
   printf ( "iClose : loops=%u , ms=%u" ,i, GetTickCount ()-start);
//-----   
   Print ( "Start test № 3..." );
   Sleep ( 125 );
   srand ( GetTickCount ());
   start= GetTickCount ();
   for (i= 0 ;i<LoopCount && ! _StopFlag ;i++)
      c = Close[ rand ()];
   printf ( "Close[i] : loops=%u , ms=%u" ,i, GetTickCount ()-start);
//-----   
   Print ( "Start test № 4..." );
   Sleep ( 125 );
   srand ( GetTickCount ());
   start= GetTickCount ();
   for (i= 0 ;i<LoopCount && ! _StopFlag ;i++)
       CopyRates ( _Symbol , _Period , rand (), 1 ,rates);
   printf ( "CopyRates : loops=%u , ms=%u" ,i, GetTickCount ()-start);
   Print ( "End script" );
  }
//+------------------------------------------------------------------+

2019.07.30 19:42:16.639 tst_iXXX_Kopya (EURUSD,H1) 1 numaralı testi başlat...

2019.07.30 19:42:40.199 tst_iXXX_Kopya (EURUSD,H1) CopyClose : döngüler=500000000 , ms=23422

2019.07.30 19:42:40.199 tst_iXXX_Kopya (EURUSD,H1) 2. testi başlat...

2019.07.30 19:43:26.953 tst_iXXX_Kopya (EURUSD,H1) iClose : döngüler=500000000 , ms=46609

2019.07.30 19:43:26.953 tst_iXXX_Kopya (EURUSD,H1) 3 numaralı testi başlat...

2019.07.30 19:44:12.274 tst_iXXX_Kopya (EURUSD,H1) Kapat[i] : döngüler=500000000 , ms=45156

2019.07.30 19:44:12.274 tst_iXXX_Kopya (EURUSD,H1) 4 numaralı testi başlat...

2019.07.30 19:44:42.080 tst_iXXX_Kopya (EURUSD,H1) CopyRates : döngüler=500000000 , ms=29656

2019.07.30 19:44:42.080 tst_iXXX_Kopya (EURUSD,H1) son komut dosyası

Dosyalar:
 
Renat Akhtyamov :
İşlevlerin hızına ilişkin karar nedir - hangisi daha hızlı?

Evet, aynı şekilde çalışıyorlar, deneyler için IMHO deneyleri ... işte yarım milyar kez son test çağrısı, peki, farkı görebilirsiniz, bir dakikada kaç kene olduğunu bulmak için kalır (~ 60) , saatte kaç tıklama (~ 3600) ve günde kaç tane (~ 86400) ve bu 23 saniyenin kaç tanesi yarım milyar çağrıya dönüşecek ...

5.787 gün = 23 saniye kâr? her tikte en hızlı işlevi kullanırsak ! ))))))

IMHO, uygun olanı kullan ve kimseyi dinleme

 
Igor Makanu :

Evet, aynı şekilde çalışıyorlar, deneyler için IMHO deneyleri ... işte yarım milyar kez son test çağrısı, peki, farkı görebilirsiniz, bir dakikada kaç kene olduğunu bulmak için kalır (~ 60) , saatte kaç tıklama (~ 3600) ve günde kaç tane (~ 86400) ve bu 23 saniyenin kaç tanesi yarım milyar çağrıya dönüşecek ...

5.787 gün = 23 saniye kâr? her tikte en hızlı işlevi kullanırsak ! )))))

IMHO, uygun olanı kullan ve kimseyi dinleme

4-rke'ye alışkınım, ayak bezleri daha kompakt ve daha okunaklı

Hız ve yeteneklerden şikayet etmiyorum, her şey yolunda

;)