Hatalar, hatalar, sorular - sayfa 438

 
joo :
Belki de kodda Sleep'in varlığı (yokluğuna kıyasla) bir şekilde genel yürütme süresini etkiler, ancak Sleep'in test cihazında dikkate alınmadığı kesin.
Pekala, ben burada özel değilim... Olumsuz bir argümanla Sleep() işlevinin işlenmesinde yarım dakikalık gecikme ve 17 günlük test kaybı - gerçekler bunlar.
 

Kod terminali kilitler:

   MqlRates s1[];

   int count= TerminalInfoInteger ( TERMINAL_MAXBARS );
   int s1_copied= CopyRates ( Symbol (), Period (), 0 ,count,s1);
   if (s1_copied<= 0 )
       Print ( "Ошибка копирования ценовых данных " , GetLastError ());
   else Print ( "Скопировано " , ArraySize (s1), " баров" );

   Comment ( ArrayMaximum (s1, 0 , WHOLE_ARRAY ));

   ArrayFree (s1);

Sebebi ne?

 
Graff :

Kod terminali kilitler:

Sebebi ne?

Başlamak:
 int count= TerminalInfoInteger ( TERMINAL_MAXBARS );
 Print("count=",count);

Terminal ayarlarında Unlim yok mu?

 
uncleVic :
Başlamak:

Terminal ayarlarında Unlim yok mu?


max bar maliyeti 5000. bu değer düşürülebilir mi?
 
Graff :
max bar maliyeti 5000. bu değer düşürülebilir mi?

Bence daha azı imkansızdır (emin değilim).

Peki, Print (sayım) ne üretir?

 
uncleVic :

Bence daha azı imkansız (emin değilim).

Peki, Print(count) ne üretir?

2011.06.30 21:41:29 Çoklu Aletler3 (EURUSD,M5) 5000 çubuk kopyalandı
2011.06.30 21:41:29 Çoklu Aletler3 (EURUSD,M5) sayı=5000

yorumlarda -1

başka bir enstrümanda başlatıldı - bir çarpışma değil, yorumda -1 getirdi

EDIT: Birkaç saniye sonra takıldı. Kodu int OnInit()'ten başlatıyorum

 
joo :
evet, ancak test cihazında çalışır, çünkü Uyku içinde yok sayılır.

Test cihazında, Uyku tamamen ve oldukça doğru bir şekilde öykünür.

Örnekte, aritmetik taşma nedeniyle, tamsayı değerlerle çalışırken sadece 17.5 günlük bir bekleme ortaya çıktı. Test cihazı sadece bekliyordu.

Yani test cihazı veya MQL5 runtime hatası yok ama programcının bariz hatası var.

 

Renat :

Yani test cihazı veya MQL5 runtime hatası yok ama programcının bariz hatası var.

Bu tamamen anlaşılabilir bir durumdur.

Renat :

Test cihazında, Uyku tamamen ve oldukça doğru bir şekilde öykünür.

Örnekte, tamsayı değerlerle çalışırken aritmetik taşma nedeniyle, sadece 17.5 günlük bir bekleme olduğu ortaya çıktı. Test cihazı sadece bekliyordu.

İşte böyle. Ve yanlışlıkla Uyku'nun basitçe göz ardı edildiğini düşündüm.

Örneğin, test modunda Expert Advisor'da Uyku (3 ay) belirtirsem, test cihazı geçmişi 3 ay ileri saracak mı? - bu havalı.

 
Evet, geri saracak. Yalnızca işlevin, int milisaniye sayacı taşana kadar 49 günlük bir sınırı vardır.

Beklerken, test cihazı, önceden verilen siparişlerin tüm işlemleri de dahil olmak üzere, ticaret ortamını tam olarak taklit etmeye devam eder. MT5'teki test cihazı çok ayrıntılı.
 
Graff :
2011.06.30 21:41:29 Çoklu Aletler3 (EURUSD,M5) 5000 çubuk kopyalandı
2011.06.30 21:41:29 Çoklu Aletler3 (EURUSD,M5) sayı=5000

yorumlarda -1

başka bir enstrümanda başlatıldı - bir çarpışma değil, yorumda -1 getirdi

EDIT: Birkaç saniye sonra takıldı. Kodu int OnInit()'ten başlatıyorum

Evet. Fili fark etmedik.

Bu satırda güçlü şüphelerim olan bir şey neden oluyor:

   Comment ( ArrayMaximum (s1, 0 , WHOLE_ARRAY ));

DiziMaksimum

Tek boyutlu sayısal dizideki maksimum öğeyi arar.

int DiziMaksimum (
    çift    dizi[] , // aranacak dizi
    int       başlangıç=0                  // aramaya hangi dizinden başlıyoruz
    int       count=WHOLE_ARRAY , // kontrol edilenlerin sayısı
);


ve bizim durumumuzda:

   MqlRates s1[];

Derleyicinin bunu kaçırmaması gerektiğini düşünüyorum. Neye sahipsin? Bir uyarı bile yok mu? Değilse , Hizmet Masasına bir talep gönderin . TAMAM?

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.