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

 

Farklı zamanlar için not almaya çalışıyorum. CopyTicksRange() işlevini kullandım. Eskiden iyi çalışıyordu.

Ama aniden çalışmayı bıraktı. Fonksiyonun bu davranışından dolayı çok hayal kırıklığına uğradım.

Lütfen bana bunun neden olduğunu açıkla? Garantili Zaman aralığını kullanarak onay almanın en iyi yolu nedir?

Bu işlevi birkaç kez çağırmaya çalıştım çünkü Ticks verilerinin yüklenmesinin zaman alacağını düşündüm. Ama denediğim her zaman, kopyalanan kenelerin uzunluğu -1 idi.

Lütfen bana ne yapabileceğimi bildirin.

Araçlar -> Seçenek -> Grafikler -> Grafik başına maksimum sütunları Sınırsız olarak ayarladım. Aşağıdaki kodu denedim:

 int len = CopyTicksRange (Orig_Symbol_Name, ticks_add, COPY_TICKS_ALL , ulong (CURRENT_TIME)* 1000 , ulong ( TimeCurrent () + 60 ) * 1000 );

   if (len<= 0 )
     {
       string error;
       if ( GetLastError () == 4401 )
         error = " ERR_HISTORY_NOT_FOUND ";
       else
         error = string ( GetLastError ());
       Print ("------------------------------------------------------------------");
       Print ("History Tick Length: ", len, " Error: ", error);
       Print ("------------------------------------------------------------------");
       return - 1 ;
     }
 

Bu kodu nereye çağırıyorsunuz? Ne tür bir program?

Değişken başlatmalar nerede?

Derlenip çalıştırılabilmesi için bir dosyadaki MQ5 kodunun tamamı nerede?

 

CopyTicks yardımında örnek bir komut dosyası sağlanmıştır

Soğuk başlangıç:

dergi

 2021.01 . 18 09 : 59 : 17.367 Scripts script Generator Magic Number (GBPUSD,H1) loaded successfully
2021.01 . 18 09 : 59 : 17.380 Scripts script Generator Magic Number (GBPUSD,H1) removed
2021.01 . 18 11 : 47 : 13.249 Scripts script CopyTicks (EURUSD,H1) loaded successfully
2021.01 . 18 11 : 49 : 18.826 Scripts script CopyTicks (EURUSD,H1) removed

Uzmanlar:

 2021.01 . 18 11 : 49 : 18.580 CopyTicks (EURUSD,H1)   EURUSD: received 100000000 ticks in 27297 ms
2021.01 . 18 11 : 49 : 18.580 CopyTicks (EURUSD,H1)   Last tick time = 2016.02 . 29 09 : 54 : 41.000
2021.01 . 18 11 : 49 : 18.580 CopyTicks (EURUSD,H1)   First tick time = 2011.12 . 19 00 : 00 : 08.000
2021.01 . 18 11 : 49 : 18.580 CopyTicks (EURUSD,H1)   current_time= 2021.01 . 18 11 : 49
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   1 . 2021.01 . 18 00 : 02.617 Ask= 1.20879 Bid= 1.20879 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   2 . 2021.01 . 18 00 : 02.635 Bid= 1.20879 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   3 . 2021.01 . 18 00 : 02.472 Ask= 1.20884 Bid= 1.20884 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   4 . 2021.01 . 18 00 : 03.121 Ask= 1.20859 Bid= 1.20859 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   5 . 2021.01 . 18 00 : 03.218 Bid= 1.20859 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   6 . 2021.01 . 18 00 : 03.878 Ask= 1.20865 Bid= 1.20865 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   7 . 2021.01 . 18 00 : 03.628 Ask= 1.20859 Bid= 1.20859 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   8 . 2021.01 . 18 00 : 03.565 Bid= 1.20859 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   9 . 2021.01 . 18 00 : 03.630 Ask= 1.20866 Bid= 1.20866 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   10 . 2021.01 . 18 00 : 03.819 Bid= 1.20866 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   11 . 2021.01 . 18 00 : 03.313 Ask= 1.20859 Bid= 1.20859 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   12 . 2021.01 . 18 00 : 03.488 Ask= 1.2086 Bid= 1.2086 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   13 . 2021.01 . 18 00 : 03.355 Ask= 1.20865 Bid= 1.20865 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   14 . 2021.01 . 18 00 : 03.105 Ask= 1.20859 Bid= 1.20859 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   15 . 2021.01 . 18 00 : 04.061 Ask= 1.20856 Bid= 1.20856 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   16 . 2021.01 . 18 00 : 04.058 Ask= 1.20853 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   17 . 2021.01 . 18 00 : 04.062 Ask= 1.20852 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   18 . 2021.01 . 18 00 : 04.056 Bid= 1.20852 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   19 . 2021.01 . 18 00 : 04.056 Ask= 1.20853 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   20 . 2021.01 . 18 00 : 04.064 Bid= 1.20853 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   21 . 2021.01 . 18 00 : 04.058 Bid= 1.20853 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   22 . 2021.01 . 18 00 : 04.715 Ask= 1.20844 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   23 . 2021.01 . 18 00 : 04.063 Bid= 1.20844 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   24 . 2021.01 . 18 00 : 04.878 Ask= 1.20849 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   25 . 2021.01 . 18 00 : 04.034 Ask= 1.20844 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   26 . 2021.01 . 18 00 : 04.455 Ask= 1.20838 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   27 . 2021.01 . 18 00 : 05.296 Ask= 1.20837 Bid= 1.20837 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   28 . 2021.01 . 18 00 : 05.354 Ask= 1.20809 Bid= 1.20809 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   29 . 2021.01 . 18 00 : 05.464 Ask= 1.20875 Bid= 1.20875 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   30 . 2021.01 . 18 00 : 05.471 Ask= 1.20822 Bid= 1.20822 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   31 . 2021.01 . 18 00 : 05.383 Ask= 1.20818 Bid= 1.20818 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   32 . 2021.01 . 18 00 : 05.207 Ask= 1.2082 Bid= 1.2082 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   33 . 2021.01 . 18 00 : 05.913 Ask= 1.20818 Bid= 1.20818 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   34 . 2021.01 . 18 00 : 05.446 Ask= 1.20816 Bid= 1.20816 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   35 . 2021.01 . 18 00 : 05.450 Ask= 1.20818 Bid= 1.20818 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   36 . 2021.01 . 18 00 : 05.583 Ask= 1.20816 Bid= 1.20816 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   37 . 2021.01 . 18 00 : 05.478 Ask= 1.20818 Bid= 1.20818 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   38 . 2021.01 . 18 00 : 06.473 Ask= 1.2082 Bid= 1.2082 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   39 . 2021.01 . 18 00 : 06.024 Ask= 1.20819 Bid= 1.20819 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   40 . 2021.01 . 18 00 : 06.752 Ask= 1.20816 Bid= 1.20816 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   41 . 2021.01 . 18 00 : 06.752 Ask= 1.20815 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   42 . 2021.01 . 18 00 : 06.752 Ask= 1.20816 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   43 . 2021.01 . 18 00 : 06.752 Ask= 1.20815 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   44 . 2021.01 . 18 00 : 06.420 Ask= 1.2083 Bid= 1.2083 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   45 . 2021.01 . 18 00 : 06.527 Ask= 1.20829 Bid= 1.20829 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   46 . 2021.01 . 18 00 : 06.085 Ask= 1.20823 Bid= 1.20823 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   47 . 2021.01 . 18 00 : 06.485 Ask= 1.20824 Bid= 1.20824 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   48 . 2021.01 . 18 00 : 06.520 Ask= 1.20823 Bid= 1.20823 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   49 . 2021.01 . 18 00 : 06.099 Ask= 1.20824 Bid= 1.20824 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   50 . 2021.01 . 18 00 : 06.407 Ask= 1.20825 Bid= 1.20825 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   51 . 2021.01 . 18 00 : 06.506 Ask= 1.20824 Bid= 1.20824 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   52 . 2021.01 . 18 00 : 06.840 Ask= 1.20825 Bid= 1.20825 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   53 . 2021.01 . 18 00 : 06.799 Ask= 1.20824 Bid= 1.20824 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   54 . 2021.01 . 18 00 : 06.123 Ask= 1.20825 Bid= 1.20825 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   55 . 2021.01 . 18 00 : 06.572 Ask= 1.20824 Bid= 1.20824 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   56 . 2021.01 . 18 00 : 06.657 Ask= 1.20823 Bid= 1.20823 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   57 . 2021.01 . 18 00 : 06.144 Ask= 1.20824 Bid= 1.20824 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   58 . 2021.01 . 18 00 : 06.589 Ask= 1.20823 Bid= 1.20823 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   59 . 2021.01 . 18 00 : 06.096 Ask= 1.20822 Bid= 1.20822 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   60 . 2021.01 . 18 00 : 06.126 Ask= 1.20823 Bid= 1.20823 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   61 . 2021.01 . 18 00 : 07.266 Ask= 1.20817 Bid= 1.20817 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   62 . 2021.01 . 18 00 : 07.390 Ask= 1.20816 Bid= 1.20816 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   63 . 2021.01 . 18 00 : 07.666 Ask= 1.20817 Bid= 1.20817 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   64 . 2021.01 . 18 00 : 07.816 Ask= 1.20824 Bid= 1.20824 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   65 . 2021.01 . 18 00 : 07.124 Ask= 1.20828 Bid= 1.20828 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   66 . 2021.01 . 18 00 : 07.100 Bid= 1.20828 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   67 . 2021.01 . 18 00 : 07.163 Ask= 1.20827 Bid= 1.20827 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   68 . 2021.01 . 18 00 : 07.719 Ask= 1.20822 Bid= 1.20822 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   69 . 2021.01 . 18 00 : 07.342 Ask= 1.2082 Bid= 1.2082 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   70 . 2021.01 . 18 00 : 07.464 Ask= 1.20823 Bid= 1.20823 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   71 . 2021.01 . 18 00 : 08.728 Ask= 1.2082 Bid= 1.2082 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   72 . 2021.01 . 18 00 : 08.826 Ask= 1.20818 Bid= 1.20818 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   73 . 2021.01 . 18 00 : 08.510 Ask= 1.2082 Bid= 1.2082 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   74 . 2021.01 . 18 00 : 08.172 Ask= 1.20813 Bid= 1.20813 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   75 . 2021.01 . 18 00 : 08.918 Ask= 1.20817 Bid= 1.20817 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   76 . 2021.01 . 18 00 : 08.051 Ask= 1.20814 Bid= 1.20814 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   77 . 2021.01 . 18 00 : 08.527 Ask= 1.20808 Bid= 1.20808 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   78 . 2021.01 . 18 00 : 08.970 Ask= 1.20811 Bid= 1.20811 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   79 . 2021.01 . 18 00 : 08.594 Ask= 1.20814 Bid= 1.20814 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   80 . 2021.01 . 18 00 : 09.525 Bid= 1.20814 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   81 . 2021.01 . 18 00 : 09.118 Ask= 1.20817 Bid= 1.20817 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   82 . 2021.01 . 18 00 : 09.405 Ask= 1.20803 Bid= 1.20803 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   83 . 2021.01 . 18 00 : 09.745 Bid= 1.20803 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   84 . 2021.01 . 18 00 : 09.491 Ask= 1.20813 Bid= 1.20813 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   85 . 2021.01 . 18 00 : 09.582 Ask= 1.20812 Bid= 1.20812 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   86 . 2021.01 . 18 00 : 10.826 Bid= 1.20812 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   87 . 2021.01 . 18 00 : 10.328 Ask= 1.20797 Bid= 1.20797 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   88 . 2021.01 . 18 00 : 10.451 Bid= 1.20797 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   89 . 2021.01 . 18 00 : 10.559 Ask= 1.208 Bid= 1.208 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   90 . 2021.01 . 18 00 : 10.684 Ask= 1.20801 Bid= 1.20801 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   91 . 2021.01 . 18 00 : 10.412 Ask= 1.208 Bid= 1.208 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   92 . 2021.01 . 18 00 : 10.964 Ask= 1.2081 Bid= 1.2081 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   93 . 2021.01 . 18 00 : 10.228 Ask= 1.20805 Bid= 1.20805 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   94 . 2021.01 . 18 00 : 10.668 Ask= 1.20803 Bid= 1.20803 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   95 . 2021.01 . 18 00 : 10.668 Bid= 1.20803 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   96 . 2021.01 . 18 00 : 10.675 Bid= 1.20803 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   97 . 2021.01 . 18 00 : 10.675 Bid= 1.20803 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   98 . 2021.01 . 18 00 : 11.068 Ask= 1.20805 Bid= 1.20805 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   99 . 2021.01 . 18 00 : 11.068 Ask= 1.20804 (Info tick)
2021.01 . 18 11 : 49 : 18.581 CopyTicks (EURUSD,H1)   100 . 2021.01 . 18 00 : 11.497 Ask= 1.20801 (Info tick)

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
  • www.mql5.com
CopyTicks - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
jaffer wilson :

Farklı zamanlar için not almaya çalışıyorum. CopyTicksRange() işlevini kullandım. Eskiden iyi çalışıyordu.

Ama aniden çalışmayı bıraktı. Fonksiyonun bu davranışından dolayı çok hayal kırıklığına uğradım.

Lütfen bana bunun neden olduğunu açıkla? Garantili Zaman aralığını kullanarak onay almanın en iyi yolu nedir?

Bu işlevi birkaç kez çağırmaya çalıştım çünkü Ticks verilerinin yüklenmesinin zaman alacağını düşündüm. Ama denediğim her zaman, kopyalanan kenelerin uzunluğu -1 idi.

Lütfen bana ne yapabileceğimi bildirin.

Araçlar -> Seçenek -> Grafikler -> Grafik başına maksimum sütunları Sınırsız olarak ayarladım. Aşağıdaki kodu denedim:

ulong( TimeCurrent() + 60) * 1000 gelecekteki zamandır. Henüz kene yok. Ve ne zamandan beri tik almaya çalıştığınız bilinmiyor. şöyle koymayı dene

 int len = CopyTicksRange (Orig_Symbol_Name, ticks_add, COPY_TICKS_ALL , ulong ( TimeCurrent () - 60 )* 1000 , ulong ( TimeCurrent ()) * 1000 );

Bunlar son 60 saniyenin keneleri olacak

 
#property version    "1.00"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 0
bool terminal_connected, Filled_Complete;
input int GO_BACK_HISTORY_LOAD = 30 ;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   string name = MQLInfoString ( MQL_PROGRAM_NAME );
   IndicatorSetString ( INDICATOR_SHORTNAME , name);
   terminal_connected = ( bool ) TerminalInfoInteger ( TERMINAL_CONNECTED );
   ResetLastError ();
   Filled_Complete = true ;

   if (Fill_Ticks_Symbol( Symbol ()) < 0 )
     {
      Filled_Complete = false ;
     }
   EventSetMillisecondTimer ( 100 );
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   EventKillTimer ();
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const int begin,
                 const double &price[])
  {
   if (terminal_connected == false || Filled_Complete == false )
     {
       if (Fill_Ticks_Symbol( Symbol ()) > 0 )
        {
         Filled_Complete = true ;
        }
       if ( TerminalInfoInteger ( TERMINAL_CONNECTED ) == true )
         terminal_connected = true ;
     }

//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer ()
  {
   if ( TerminalInfoInteger ( TERMINAL_CONNECTED ) == false )
      terminal_connected = false ;
  }

//+------------------------------------------------------------------+
int Fill_Ticks_Symbol( string Orig_Symbol_Name)
  {
   MqlDateTime str;
   TimeToStruct ( iTime (Orig_Symbol_Name, 0 , 0 ) - GO_BACK_HISTORY_LOAD * 86400 , str);
   Comment ( "" );
   datetime start_date = datetime ( StringFormat ( "%d.%d.01 00:00:00" ,str.year,str.mon));
   MqlTick ticks_add[];

   ulong time_start = GetMicrosecondCount ();
//int len = CopyTicksRange(Orig_Symbol_Name, ticks_add, COPY_TICKS_ALL, ulong(start_date)*1000, ulong(TimeCurrent())*1000);

   Print ( "Gathering Ticks from : " , iTime (Orig_Symbol_Name, 0 , 0 ) - GO_BACK_HISTORY_LOAD * 86400 , " To: " , TimeCurrent ());

   int len = CopyTicksRange (Orig_Symbol_Name, ticks_add, COPY_TICKS_ALL , ulong (start_date)* 1000 , ulong ( TimeCurrent () + 60 ) * 1000 );
   int count = 0 ;
   while (len<= 0 && count< 5 && ! IsStopped ())
     {
       Sleep ( 100 );
      len = CopyTicksRange (Orig_Symbol_Name, ticks_add, COPY_TICKS_ALL , ulong (start_date)* 1000 , ulong ( TimeCurrent () + 60 ) * 1000 );
      count++;
     }
   if (len<= 0 )
     {
       Print ( "The History Len was found to be : " , len);
       return - 1 ;
     }
   Print ( "Started : " ,ticks_add[ 0 ].time, "  Ended : " ,ticks_add[len- 1 ].time);
   return len;
  }
//+------------------------------------------------------------------+

Kodun tamamını paylaşamayacağım, ancak kullandığım küçük bir örnek.

 
Şimdi bana önerebilir misin? Yukarıdaki örneği denedim. Bazen çalışır. Ama her zaman değil.
 
jaffer wilson :
Şimdi bana önerebilir misin? Yukarıdaki örneği denedim. Bazen çalışır. Ama her zaman değil.

Bu seçeneği deneyin

 //+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const int begin,
                 const double &price[])
  {
   if (rates_total == 0 )
     {
       if (Fill_Ticks_Symbol( Symbol ()) <= 0 )
         return 0 ;
     }

//--- return value of prev_calculated for next call
   return (rates_total);
  }
Böylece gösterge, kenelerin yüklenmesini bekleyecektir.
 
Alexey Viktorov :

Bu seçeneği deneyin

Böylece, gösterge kenelerin yüklenmesini bekleyecektir.

Herhangi bir fark olacağını düşünmüyorum. Çünkü sorun benim yarattığım işlevde değil, MQL5 işlevinde .

 
jaffer wilson :

Herhangi bir fark olacağını düşünmüyorum. Çünkü sorun benim yarattığım işlevde değil, MQL5 işlevinde .

Bu, doğrulanmamış bir görüş ifade ettiğiniz ilk sefer değil. Seni kontrol etmekten alıkoyan ne?

CopyTicksRange() işleviyle kaç mql5 programcısının çalıştığını saymaya çalışın ve hiç kimsede sorun yok. Fonksiyonun bu davranışına sahip olan tek kişi sizsiniz.

 
Alexey Viktorov # :

Bu, doğrulanmamış bir görüş ifade ettiğiniz ilk sefer değil. Seni kontrol etmekten alıkoyan ne?

CopyTicksRange() işleviyle kaç mql5 programcısının çalıştığını saymaya çalışın ve hiç kimsede sorun yok. Sadece sizsiniz, sadece fonksiyonun bu davranışına sahipsiniz.


Çok cesur bir ifade, Alex.


CopyTicksRange() işleviyle çalışıyorum ve her zaman çalışmıyor. Doğru çalışması için giriş parametrelerini anlaşılır bir sonuç verecek şekilde seçmelisiniz. İki yıl boyunca bu işlevi kullanmaya ve yeni hatalar bulmaya zorlandım. Destek, bu özellikle ilgili tüm soruları sürekli olarak yok sayar. Büyük olasılıkla bunu yapmak için çok tembeller, çünkü. bir pervaz üzerinde bir pervaz var.

Örneğin, bu işlev beklenmedik bir şekilde neler yapabilir:


1) dönüş keneleri istenen aralığa dahil değildir

2) bu çubuğun istenen kısmı yerine mevcut çubuğun tüm işaretlerini döndür

3) çöpü iade edin, yani. kenelerin ne olduğu hakkında hiçbir fikrim yok

4) bazı keneleri atla


Ve en ustaca şey, destekten birinin koltuk değneği yapma tavsiyesiydi - yani. işlevin hangi durumlarda hatalı olduğunu biliyorsam, hatalı olmaması için isteği yeniden ifade etmem gerekir. O zamandan beri bunu yapıyorum :)


İşte şimdi bir koltuk değneği aradığım dünün örneği:


 MqlTick Ticks[ 1000000 ];

int AddTicks( ulong tFrom_msc, ulong tTo_msc, ulong &lt)
{

   int   received= CopyTicksRange ("@BR",Ticks, COPY_TICKS_ALL ,tFrom_msc,tTo_msc);
   
   PrintFormat (" CopyTicksRange :  %s:%d - %s:%d  received %d", TimeToString (tFrom_msc/ 1000 ),tFrom_msc% 1000 , TimeToString (tTo_msc/ 1000 ),tTo_msc% 1000 ,received);
   
   if (received> 0 )
   {
       PrintFormat ("%s:%d - first tick, %s:%d - last tick", 
                               TimeToString (Ticks[ 0 ].time_msc/ 1000 ),           Ticks[ 0 ].time_msc% 1000 , 
                               TimeToString (Ticks[received- 1 ].time_msc/ 1000 ),  Ticks[received- 1 ].time_msc% 1000
                              );
                              
       lt= Ticks[received- 1 ].time_msc ;                   
   }
   return received;
}

Ve işte ortak:

 2021.09 . 18 18 : 10 : 26.541 TesterEx ($BR,H1)       CopyTicksRange :   2021.01 . 29 23 : 56 : 864 - 2021.01 . 31 23 : 59 : 999   received 109425
2021.09 . 18 18 : 10 : 26.541 TesterEx ($BR,H1)       2021.01 . 29 00 : 02 : 782 - first tick, 2021.01 . 29 23 : 56 : 863 - last tick

onlar. binlerce programcı tarafından kullanılan bir işlev, mevcut çubuğun başlangıcından itibaren tüm onay işaretlerini kişisel olarak döndürdüm, ancak istenen aralığa dahil edilmedi

 
RusPro # :


Çok cesur bir ifade, Alex.


CopyTicksRange() işleviyle çalışıyorum ve her zaman çalışmıyor. Doğru çalışması için giriş parametrelerini anlaşılır bir sonuç verecek şekilde seçmelisiniz . İki yıl boyunca bu işlevi kullanmaya ve yeni hatalar bulmaya zorlandım. Destek, bu özellikle ilgili tüm soruları sürekli olarak yok sayar. Büyük olasılıkla bunu yapmak için çok tembeller, çünkü. bir pervaz üzerinde bir pervaz var.

Bu işlevin beklenmedik bir şekilde neler yapabileceğine dair bir örnek için:


1) dönüş keneleri istenen aralığa dahil değildir

2) bu çubuğun istenen kısmı yerine mevcut çubuğun tüm işaretlerini döndür

3) çöpü iade edin, yani. kenelerin ne olduğu hakkında hiçbir fikrim yok

4) bazı keneleri atla


Ve en ustaca şey, destekten birinin koltuk değneği yapma tavsiyesiydi - yani. işlevin hangi durumlarda hatalı olduğunu biliyorsam, hatalı olmaması için isteği yeniden ifade etmem gerekir. O zamandan beri bunu yapıyorum :)

Anahtar kelimeleri vurguladım.

Tanım gereği henüz var olmayan keneler İSTEMEYİN. Milisaniye cinsinden o anki zamandan en az bir milisaniye daha fazla kene talep ederseniz, aynı g………. sıraladığınız problemler şeklinde alırsınız.

Neden: