CopyTicksRange(), MQL5.a'da düzgün çalışmıyor - sayfa 6

 
Alexey Viktorov # :

İki yıl boyunca, işlev istediğiniz gibi çalışmazsa ve bunu bilen geliştiriciler düzeltmezse, buna hata denilmediğini anlamak mümkün oldu ...

Parmaklarınızı açın, havalı eğitimli programcılar………

onlar. Sattığınız göstergelerde, bunu bilmenize rağmen üç yıl boyunca hataları düzeltmezseniz, bunlar hata değildir!

İyi yaklaşım, halkı el sanatlarınızı satın almaya gerçekten motive etmelidir.

 
RusPro # :

INT_MAX = 2147483647


aslında hemen INT_MAX * sizeof (double) bir bellek parçası aldınız ve ardından statik olarak çalışıyorsunuz

daha sonra yazabilirsiniz:

çift d[ INT_MAX]; - senin için aynı olacak

fark yalnızca ArraySize () işlevinin çalışmasında olacaktır ve bellek hemen sonuna kadar yakalanacaktır.

Her şeyi tam anlamıyla almaya gerek yok, bu bir örnek !

İhtiyacınız kadar alın!

 
prostotrader # :

Her şeyi tam anlamıyla almaya gerek yok, bu bir örnek !

İhtiyacınız kadar alın!

Herhangi bir şekilde incitmek istemedim, üzgünüm. Sadece bu örnekte mümkün olan maksimumu yakaladılar :))

 
RusPro # :

mikrosaniye ile sonuçlanır.

Tablonun tek bir hücresinden ikiden fazla sonuç göstermedim.

 
fxsaber # :

Tablonun tek bir hücresinden ikiden fazla sonuç göstermedim.


Kod değiştirildi mi?


tüm kodu OnCalculate() öğesinden OnInit() öğesine taşıyın, böylece yalnızca bir kez yürütülür. İzin günümde onay işaretim yoktu ve OnCalculate başlangıçta yalnızca bir kez çağrıldı

 
RusPro # :

tüm kodu OnCalculate() öğesinden OnInit() öğesine taşıyın, böylece yalnızca bir kez yürütülür

Bu şekilde çoğaltılır. İlginç bir şekilde, OnCalculate'de her şey yoluna giriyor. Görünüşe göre, derleyici tekrarlarla iyi çalışıyor.

CopyTicks için statik kullanmak için bir neden göremiyorum.

 
MetaQuotes # :
Düzeltildi, bugün beta olacak.

Bugün hangi tarih olacak? :)

 
RusPro # :

Bugün hangi tarih olacak? :)

Yalnızca terminal64.exe'yi b3042'ye güncelleyin. Henüz MetaEditor64.exe'yi güncellemeyin.

 
RusPro # :

Bugün hangi tarih olacak? :)

Beta sürümleri MetaQuotes-Demo'da günlük olarak yayınlanır, ancak demo sunucumuzda teste öncelik verdiğimiz için yardım menüsünden kontrol ederken her zaman mevcut değildir.

 
int m1,min1;
datetime start,end;
MqlTick   arr_ticks[];
MqlDateTime        now1;

void OnTick ()
{
   TimeTradeServer (now1);
   if (min1 != now1.min)
   {
       if (m1== 0 ){start= TimeTradeServer ();}
      m1+= 1 ;
       if (m1== 4 )
      {
         end = TimeTradeServer ();
         ZeroMemory (arr_ticks);
         int len1 = CopyTicksRange ( _Symbol ,arr_ticks, COPY_TICKS_INFO ,start,end);
         Print ( __FUNCTION__ , " start: " , start, " end: " ,end, " len: " ,len1);
         ArrayPrint (arr_ticks);
         m1= 0 ;
      } //old 3 min
   
   
   min1 = now1.min;
   } //New Minute

} //end OnTick

CopyTicksRange () açıklaması, operatörün zamanı milisaniye cinsinden hesaba kattığını belirtir,

Tiki'yi birkaç dakika içinde bir dizide toplamak için bir fikir vardı, ancak bir nedenden dolayı işe yarıyor: