Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 731

 
Vitalie Postolache :

10000 x 10000 iki boyutlu değil mi?

double arr[ 10000 ][ 10000 ];

vb...

Top2n :
Evet, iki boyutlu, bir şekilde bunu böyle söylemiyorum, görünüşe göre bir matris değil, bir dizi. Matris çok boyutluluk anlamına mı geliyor?
Kabul ediyorum. Öyle söylenmedi, ama ayrıca pek anlaşılmadı.

Bu kodda yavaşlayan dizi girişi değil, döngü içindeki döngüdür.
 
Alexey Viktorov :
Kabul ediyorum. Öyle söylenmedi, ama ayrıca pek anlaşılmadı.

Bu kodda yavaşlayan dizi girişi değil, döngü içindeki döngüdür.

Başka bir programlama ortamına geçmek gerçekten gerekli mi, yoksa bu tüm dil türleri için ortak bir görev değil mi? Hızlandırma için çözüm yöntemleri neler olabilir?

aptalca bir döngü ve içindeki değişkenin değerini uzak döngüden arttırırsa

         for ( int q= 0 ; q<ARRAY_SIZE_X*ARRAY_SIZE_Y; q++) // Перебор по периоду, колонка X
                 {
                   int arr++
                   if (arr=ARRAY_SIZE_X) {z++;arr= 0 ;}

                  arra[q]=sm.d[q].m[nBar-z];                 // M(I) SMA              
                 }
         //--- запишем данные массива в конец файла FileTell IsFileLineEnded
               FileSeek (handle, 0 , SEEK_END );
               FileWriteArray (handle,arra);


Kontrol edebilirim, ancak hızlanmazsa, tekrar sert bir ekstra voltajla bilgisayara eziyet etmek istemiyorum)))

 
Top2n :

Başka bir programlama ortamına geçmek gerçekten gerekli mi, yoksa bu tüm dil türleri için ortak bir görev değil mi? Hızlandırma için çözüm yöntemleri neler olabilir?

Aptalca bir döngü ve içindeki bir değişkenin değerini artırmak için uzak bir döngüden hızlandırılırsa?

Kontrol edebilirim, ancak hızlanmazsa, tekrar sert bir ekstra voltajla bilgisayara eziyet etmek istemiyorum)))

Ve bir döngüden sonra bir dizi yazmak için - herhangi bir şekilde? Sadece her satırda mı? Bu, döngünün döngüde olduğu ilk seçenek için benim.
 
Vitalie Postolache :
Ve bir döngüden sonra bir dizi yazmak için - herhangi bir şekilde? Sadece her satırda mı? Bu, döngünün döngüde olduğu ilk seçenek için benim.
Bu boyuttaki bir dizi ayrılan RAM'e sığmaz.

Tabii ki ayrıca bir sayaç takıp bu sayaç üzerine kayıt yapabilirsiniz ve her satıra ayrı ayrı değil ama bu işlemin o kadar hızlandırılması pek olası değildir ki ölçüm yapılmadan farkedilir olacaktır.
 
Alexey Viktorov :
Bu boyuttaki bir dizi ayrılan RAM'e sığmaz.

Tabii ki ayrıca bir sayaç takıp bu sayaç üzerine kayıt yapabilirsiniz ve her satıra ayrı ayrı değil ama bu işlemin o kadar hızlandırılması pek olası değildir ki ölçüm yapılmadan farkedilir olacaktır.

Söyleyin bana, belgeler ve derleyici de diyor ki): " AS_SERIES bayrağı çok boyutlu diziler için ayarlanamaz "

Soru: mql5'te bir dizi nasıl sıralanır

void Func()
{
double m[][ 3 ];

if (условия)
  {
   // много кода
         c++;
         ArrayResize (m, c);
         m[c- 1 ][ 0 ]= Lots();
         m[c- 1 ][ 1 ]= Ticket();
         m[c- 1 ][ 2 ]= Profit();
  }
 BySort(m); // передаём в функцию "BySort"
}

void BySort( double &mas[][ 3 ])
{
// Сортируем по размеру лота от большего к меньшему
   ArraySort (mas);
   ArraySetAsSeries (mas, true ); // при такой записи mql5 ругается, в mql4 работает

 ... здесь работа с массивом и основной код 

}
 
Vitaly Muzichenko :

Söyleyin bana, belgeler ve derleyici de diyor ki): " AS_SERIES bayrağı çok boyutlu diziler için ayarlanamaz "

Soru: bir dizi nasıl sıralanır:

double m[][ 3 ];

if (условия)
 {
// много кода
         c++;
         ArrayResize (m, c);
         m[c- 1 ][ 0 ]= Lots();
         m[c- 1 ][ 1 ]= Ticket();
         m[c- 1 ][ 2 ]= Profit();
 }

void BySort( double &mas [][ 3 ] )// выделенное лишнее
 {
// Сортируем по размеру от большего к меньшему
   ArraySort (mas, WHOLE_ARRAY , 0 , MODE_DESCEND ); // вот это не работает в mql5

   ArraySort (mas);
   ArraySetAsSeries (mas, true );
// а при такой записи ругается // это тоже лишнее
 }
AS_SERIES ve sıralama tamamen farklı kavramlardır.

1 - içeriklerini değiştirmeden dizi hücrelerinin indeksleme yönünü değiştirir ve 2 - indekslemeyi değiştirmeden hücrelerin içeriğini artan veya azalan düzende sıralanacak şekilde değiştirir.

Ek olarak, belgeler bir diziyi yalnızca ilk boyuta göre sıralayabileceğinizi söylüyor.
 
Alexey Viktorov :
AS_SERIES ve sıralama tamamen farklı kavramlardır.

1 - içeriklerini değiştirmeden dizi hücrelerinin indeksleme yönünü değiştirir ve 2 - indekslemeyi değiştirmeden hücrelerin içeriğini artan veya azalan düzende sıralanacak şekilde değiştirir.

Ek olarak, belgeler bir diziyi yalnızca ilk boyuta göre sıralayabileceğinizi söylüyor.

Artan düzende sırala

ArraySort (mas);

Şimdi nasıl çevrilir? Azalan düzende gereklidir, bu lotların sıralamasıdır.

 
Vitaly Muzichenko :

Artan düzende sırala

ArraySort (mas);

Şimdi nasıl çevrilir? Azalan düzende gereklidir, bu lotların sıralamasıdır.

Vay. Bu benim ilk kez mql5'te sıralamaya bakıyorum. Bellekten mql4'e odaklanarak yanıtlandı. Bu durumda, okuma döngüsünü tersine çevirebilirsiniz. Belirli bir değeri aramanız gerekiyorsa, nasıl sıralarsanız sıralayın dizinin dizinini döndürür.

Döngüdeki en aptalca seçenek tüm diziyi ters sırada yeniden yazmaktır. Ve buna değer mi???
 
Vitaly Muzichenko :

Artan düzende sırala

ArraySort (mas);

Şimdi nasıl çevrilir? Azalan düzende gereklidir, bu lotların sıralamasıdır.

Peki ya sıralamadan sonra dizin oluşturma sırasını ArraySetAsSeries kullanarak değiştirirsek?
 
Vitalie Postolache :
Peki ya sıralamadan sonra indeksleme sırasını ArraySetAsSeries kullanarak değiştirirsek?

Sonra şöyle çıkıyor :