MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 563

 
Roman Sharanov :

Göstergelerden, grafiklerden veri almaya ne dersiniz?

Herşey mümkün. Ancak bunun için en azından her iki dili de bilmeniz gerekir.

 
Artyom Trishkin :

Herşey mümkün. Ancak bunun için en azından her iki dili de bilmeniz gerekir.

ben sahibim

 
Roman Sharanov :

ben sahibim

Öyleyse, platformlar arası kod yazmanız zor olmayacak.

 

komik durum

Kod satırı bazen aşağıdaki hataya neden olur.

Hangi koşullar altında böyle bir hata meydana gelebilir?


   ChartTimePriceToXY ( 0 , 0 , Time [ 0 ],price,x1,y_cord);


2018.06.08 13:41:39.021    program name XAUUSDcheck,H1: array out of range in 'DrawInterfaceLib.mqh' (47,31)


 
Sergey Likho :

komik durum

Kod satırı bazen aşağıdaki hataya neden olur.

Hangi koşullar altında böyle bir hata meydana gelebilir?


Sınır dışı dizi . Diziye iletilen dizin, dizinin maksimum boyutundan büyük (dizinin boyutu 10 ise, böyle bir dizinin maksimum dizini, ilk öğesinin dizin 0'a sahip olması nedeniyle 9'dur) veya sıfırdan küçüktür. . Ya dizinin boyutu sıfırdır.

 
Artyom Trishkin :

Sınır dışı dizi . Diziye iletilen dizin, dizinin maksimum boyutundan büyük (dizinin boyutu 10 ise, böyle bir dizinin maksimum dizini, ilk öğesinin dizin 0'a sahip olması nedeniyle 9'dur) veya sıfırdan küçüktür. . Ya dizinin boyutu sıfırdır.

Teşekkürler, elbette biliyorum.

Time [ 0 ] dizisine erişirken bu hata hangi koşullar altında ortaya çıkabilir?

Yani dizi boş mu? Ve bu bir zaman serisi ile nasıl olabilir?

 
Sergey Likho :

komik durum

Kod satırı bazen aşağıdaki hataya neden olur.

Hangi koşullar altında böyle bir hata meydana gelebilir?

Eski bir MT4 hatası (Zaman dizisi sıfır boyutta görünüyor). Yaklaşık iki yıl önce, müşterilerimden birinde sürekli olarak kendini gösterdi. Ancak bu hatayı yeniden üretmenin gerçekçi olmadığı ortaya çıktı. Servis Masası bir sorunun varlığını tanır, ancak düzeltmek şöyle dursun, ona dokunamaz. O zamandan beri, zaman serilerini asla doğrudan, yalnızca sarmalayıcılar aracılığıyla kullanmam: iTime , iOpen , vb.

 
Ihor Herasko :

Eski bir MT4 hatası (Zaman dizisi sıfır boyutta görünüyor). Yaklaşık iki yıl önce, müşterilerimden birinde sürekli olarak kendini gösterdi. Ancak bu hatayı yeniden üretmenin gerçekçi olmadığı ortaya çıktı. Servis Masası bir sorunun varlığını tanır, ancak düzeltmek şöyle dursun, ona dokunamaz. O zamandan beri, zaman serilerini asla doğrudan, yalnızca sarmalayıcılar aracılığıyla kullanmam: iTime, iOpen, vb.

Evet, tam da bunu yaptım ve onu iTime ile değiştirdim. Teşekkür ederim!

 

Merhaba. Sınır dışı, nasıl düzeltilir?

 if (TimeFrame> Period ()) 
     {
       ArrayCopySeries (santa1, 5 , Symbol (),TimeFrame);
      summ=CountBars+TimeFrame/ Period ();
      shift= 0 ;
       for ( int iy= 0 ; shift<summ; shift++) 
        {
         if ( Time [shift]<santa1[iy]) iy++; //вот эта строка "array out of range" 
         list[shift]=bufbuy[iy];
        }
     }
 
PolarSeaman :

Merhaba. Sınır dışı, nasıl düzeltilir?

Yukarıdaki koddaki shift ve iy değişkenlerinin değerleri Time ve santa1 dışı diziler için kontrol edilmez. Bu nedenle, her şey mantıklı. Kullanmadan önce değerlerini kontrol edin, hata kaybolacaktır.

Peki, detaylı konuşmak gerekirse CountBars ve TimeFrame değişkenlerinin değerlerinin nasıl oluştuğunu bilmeniz gerekiyor.