Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Benim için karanlık bir orman olan sınıflarda temelde her şey var. Ancak bazı düşünceler geldi. Ayrı ayrı tarihler ve sayılar içeren bir dizi yapın. Sadece, sıralamadan sonra tarihlerin bulunduğu indeks numarası nasıl alınır, yani ikinci boyutta olan i nasıl alınır?
double d[ 215 ][ 2 ];
m[ 0 ][i]=Dat_DtTm;
d[i][ 0 ]=f1;
d[i][ 1 ]=f2;
Böyle mi yaptı:
datetime m2[ 215 ];
double d[ 215 ][ 4 ];
m1[i]=Dat_DtTm;
m2[i]=Dat_DtTm;
d[i][ 0 ]=f1;
d[i][ 1 ]= 0.0 ;
d[i][ 2 ]=f2;
d[i][ 3 ]= 0.0 ;
ArraySort (m1, WHOLE_ARRAY , 0 , MODE_DESCEND );
for ( int y= 214 ;y>= 0 ;y--)
{
for ( int a= 214 ;a>= 0 ;a--)
{
if (m1[y]==m2[a])
{
d[y][ 1 ]=d[a][ 0 ];
d[y][ 3 ]=d[a][ 2 ];
Print ( "m1[y]=" ,m1[y], "d[y][1]=" ,d[y][ 1 ], "d[y][3]=" ,d[y][ 3 ], "y=" ,y);
break ;
}
}
}
Benim için karanlık bir orman olan sınıflarda temelde her şey var. Ancak bazı düşünceler geldi. Ayrı ayrı tarihler ve sayılar içeren bir dizi yapın. Sadece, sıralamadan sonra tarihlerin bulunduğu indeks numarası nasıl alınır, yani ikinci boyutta olan i nasıl alınır?
double d[ 215 ][ 2 ];
m[ 0 ][i]=Dat_DtTm;
d[i][ 0 ]=f1;
d[i][ 1 ]=f2;
Her şey çok daha kolay. Diyelim ki bir tarih dizimiz var, örneğin datetime m_date[4000] ve herhangi bir türden bir sürü başka dizi: int , string, double .. ve herhangi bir boyut
Hepsi, bu dizilerin i-inci satırındaki verilerin m_date[ i ] tarihine karşılık gelmesiyle bağlantılıdır. Tüm bu dizileri tarihe göre sıralamak gerekir.
Bu dizilerdeki satır sayısı (tarih sayısı) m_dim olsun. ArrayResize'ı maliyetli bir işlem olarak kullanmayacağız , örneğimizde sadece m_dim <= 4000.
int m_index[ 4000 , 2 ];
// Заполняем массив индексов:
for ( int i = 0 ; i < m_dim; i ++ )
{
m_index[ i, 0 ] = m_date[ i ];
m_index[ i, 1 ] = i;
}
// Сортируем индексный массив
ArraySort ( m_index, m_dim, 0, MODE_DECEND);
// Все
Şimdi ilk boyuttan tarihi alıyoruz ve ikincisinden - bu tarihe karşılık gelen dizi indeksi
Her şey çok daha kolay. Diyelim ki bir tarih dizimiz var, örneğin datetime m_date[4000] ve herhangi bir türden bir sürü başka dizi: int , string, double .. ve herhangi bir boyut
Hepsi, bu dizilerin i-inci satırındaki verilerin m_date[ i ] tarihine karşılık gelmesiyle bağlantılıdır. Tüm bu dizileri tarihe göre sıralamak gerekir.
Bu dizilerdeki satır sayısı (tarih sayısı) m_dim olsun. ArrayResize'ı maliyetli bir işlem olarak kullanmayacağız , örneğimizde sadece m_dim <= 4000.
int m_index[ 4000 , 2 ];
// Заполняем массив индексов:
for ( int i = 0 ; i < m_dim; i ++ )
{
m_index[ i, 0 ] = m_date[ i ];
m_index[ i, 1 ] = i;
}
// Сортируем индексный массив
ArraySort ( m_index, m_dim, 0, MODE_DECEND);
// Все
Şimdi ilk boyuttan tarihi alıyoruz ve ikincisinden - bu tarihe karşılık gelen dizi indeksi