A1exPit : Bir diziye veri aktarırken sırayla kendisini dolduracağını kastetmiştim, yani. dizi1[] = x; hücre numarası doğrudan belirtilmezse x değeri hangi hücreye yazılır?
Farklı değerler yazmanız gerekiyorsa, sırayla bir döngüde. Belirli bir hücreye yazmanız gerekiyorsa, hücrenin adresini belirtin.
Teşekkürler,
Başka bir soru şudur: ArrayCopy aracılığıyla, öncekindeki dolu hücre sayısına eşit boyutta yeni bir dizi oluşturabilir miyim? Yoksa önce ikinci diziyi oluşturmak ve sonra kopyalamak mı gerekiyor?
intArrayCopy ( void & dst_array[], // куда копируем constvoid & src_array[], // откуда копируем int dst_start= 0 , // с какого индекса пишем в приемник int src_start= 0 , // с какого индекса копируем из источника int count= WHOLE_ARRAY// сколько элементов );
Başka bir soru şudur: ArrayCopy aracılığıyla, öncekindeki dolu hücre sayısına eşit boyutta yeni bir dizi oluşturabilir miyim? Yoksa önce ikinci diziyi oluşturmak ve sonra kopyalamak mı gerekiyor?
intArrayCopy ( void & dst_array[], // куда копируем constvoid & src_array[], // откуда копируем int dst_start= 0 , // с какого индекса пишем в приемник int src_start= 0 , // с какого индекса копируем из источника int count= WHOLE_ARRAY// сколько элементов );
Spread = MarketInfo ( Symbol (), MODE_SPREAD ); if ( Spread >= 0 ) ExtSpread [x] = Spread; if ( TimeCurrent () - iTime ( NULL , 0 , 0 ) >= 60 ){ int Spread2[x]; ArrayCopy ( Spread2[],ExtSpread[], 0 , 0 , WHOLE_ARRAY );} x=x+ 1 ; if (x > 1000 ) x = 0 ;
Bunun gibi, ExtSpread[] dizisine Spread değerini yazarım ve dakika çubuğunun sonunda onu başka bir diziye aktarırım - teoride bir sonraki çubuğa kadar hayatta kalması gerekir.
ExtSpread boyutu[1000]
Yani ve böyle bir soru, dizideki numaralandırma sıfırdan başlıyor ve sonra 1000 boyutunda son hücresi 999 mu olacak?
O zaman doğru olacaktır: x++ ve if ( x > 999 ) x=0;
Spread = MarketInfo ( Symbol (), MODE_SPREAD ); if ( Spread >= 0 ) ExtSpread [x] = Spread; if ( TimeCurrent () - iTime ( NULL , 0 , 0 ) >= 60 ){ int Spread2[x]; ArrayCopy ( Spread2[],ExtSpread[], 0 , 0 , WHOLE_ARRAY );} x=x+ 1 ; if (x > 1000 ) x = 0 ;
Bunun gibi, ExtSpread[] dizisine Spread değerini yazarım ve dakika çubuğunun sonunda onu başka bir diziye aktarırım - teoride bir sonraki çubuğa kadar hayatta kalması gerekir.
ExtSpread boyutu[1000]
Yani ve böyle bir soru, dizideki numaralandırma sıfırdan başlıyor ve sonra 1000 boyutunda son hücresi 999 mu olacak?
O zaman doğru olacaktır: x++ ve if ( x > 999 ) x=0;
Spread = ( int ) MarketInfo ( Symbol (), MODE_SPREAD ); if ( Spread >= 0 ) ExtSpread [x] = Spread; if ( TimeCurrent () - iTime ( NULL , 0 , 0 ) >= 60 ){ int Spread2[]; ArrayInitialize (Spread2, EMPTY_VALUE ); ArrayResize ( Spread2,x, 0 ); ArrayCopy ( Spread2,ExtSpread, 0 , 0 , WHOLE_ARRAY );} x=x+ 1 ; if (x > 999 ) x = 0 ;
Tünaydın! lütfen söyle bana, android için mt4 636 sürümünü indirdim ama broker listesini göremiyorum. Terminal sürümü artık desteklenmiyor mu?((Destekleniyorsa, çalışan sürümü nereden indirebilirim?)
Derleme sırasında bir hata oluşur. Sorun ne? Karar vermeme yardım et!
ArrayInitialize(max,0) =>ArrayInitialize(dizi,0);
for(inta=1;a<=pr;a++) =>for(inta=1;a<pr;a++)
Çok, çok uygun olmayan kod, başlangıçta terminali birkaç dakika askıda tutar ve daha sonra sert bir şekilde yavaşlar ve birkaç çizelgede başlatırsanız, genel olarak
Çok, çok uygun olmayan kod, başlangıçta terminali birkaç dakika askıda tutar ve daha sonra sert bir şekilde yavaşlar ve birkaç çizelgede başlatırsanız, genel olarak
Evet, teşekkürler, her şeyi düzelttim, hata yok. Yavaşlıyor, evet, çok. Optimize etmek için hangi yöne hareket edeceğimi söyleme, yoksa her şeyi yeniden yazmam mı gerekecek?
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Bir diziye veri aktarırken sırayla kendisini dolduracağını kastetmiştim, yani. dizi1[] = x; hücre numarası doğrudan belirtilmezse x değeri hangi hücreye yazılır?
Numara. Tüm hücreleri aynı değerle doldurmak istiyorsanız, ArrayInitialize() öğesini kullanın .
Farklı değerler yazmanız gerekiyorsa, sırayla bir döngüde. Belirli bir hücreye yazmanız gerekiyorsa, hücrenin adresini belirtin.
Numara. Tüm hücreleri aynı değerle doldurmak istiyorsanız, ArrayInitialize() öğesini kullanın .
Farklı değerler yazmanız gerekiyorsa, sırayla bir döngüde. Belirli bir hücreye yazmanız gerekiyorsa, hücrenin adresini belirtin.
Teşekkürler,
Başka bir soru şudur: ArrayCopy aracılığıyla, öncekindeki dolu hücre sayısına eşit boyutta yeni bir dizi oluşturabilir miyim? Yoksa önce ikinci diziyi oluşturmak ve sonra kopyalamak mı gerekiyor?
void & dst_array[], // куда копируем
const void & src_array[], // откуда копируем
int dst_start= 0 , // с какого индекса пишем в приемник
int src_start= 0 , // с какого индекса копируем из источника
int count= WHOLE_ARRAY // сколько элементов
);
Teşekkürler,
Başka bir soru şudur: ArrayCopy aracılığıyla, öncekindeki dolu hücre sayısına eşit boyutta yeni bir dizi oluşturabilir miyim? Yoksa önce ikinci diziyi oluşturmak ve sonra kopyalamak mı gerekiyor?
void & dst_array[], // куда копируем
const void & src_array[], // откуда копируем
int dst_start= 0 , // с какого индекса пишем в приемник
int src_start= 0 , // с какого индекса копируем из источника
int count= WHOLE_ARRAY // сколько элементов
);
Tabii ki önce oluşturun.
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent () - iTime ( NULL , 0 , 0 ) >= 60 ){
int Spread2[x];
ArrayCopy ( Spread2[],ExtSpread[], 0 , 0 , WHOLE_ARRAY );}
x=x+ 1 ;
if (x > 1000 ) x = 0 ;
Bunun gibi, ExtSpread[] dizisine Spread değerini yazarım ve dakika çubuğunun sonunda onu başka bir diziye aktarırım - teoride bir sonraki çubuğa kadar hayatta kalması gerekir.
ExtSpread boyutu[1000]
Yani ve böyle bir soru, dizideki numaralandırma sıfırdan başlıyor ve sonra 1000 boyutunda son hücresi 999 mu olacak?
O zaman doğru olacaktır: x++ ve if ( x > 999 ) x=0;
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent () - iTime ( NULL , 0 , 0 ) >= 60 ){
int Spread2[x];
ArrayCopy ( Spread2[],ExtSpread[], 0 , 0 , WHOLE_ARRAY );}
x=x+ 1 ;
if (x > 1000 ) x = 0 ;
Bunun gibi, ExtSpread[] dizisine Spread değerini yazarım ve dakika çubuğunun sonunda onu başka bir diziye aktarırım - teoride bir sonraki çubuğa kadar hayatta kalması gerekir.
ExtSpread boyutu[1000]
Yani ve böyle bir soru, dizideki numaralandırma sıfırdan başlıyor ve sonra 1000 boyutunda son hücresi 999 mu olacak?
O zaman doğru olacaktır: x++ ve if ( x > 999 ) x=0;
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent () - iTime ( NULL , 0 , 0 ) >= 60 ){
int Spread2[]; ArrayInitialize (Spread2, EMPTY_VALUE ); ArrayResize ( Spread2,x, 0 );
ArrayCopy ( Spread2,ExtSpread, 0 , 0 , WHOLE_ARRAY );}
x=x+ 1 ;
if (x > 999 ) x = 0 ;
Etkilenmiş:
scomoroh , 2016.12.04 18:58
Derleme sırasında bir hata oluşur. Sorun ne? Karar vermeme yardım et!Etkilenmiş:
scomoroh , 2016.12.04 18:58
Derleme sırasında bir hata oluşur. Sorun ne? Karar vermeme yardım et!ArrayInitialize (max, 0 ) => ArrayInitialize (dizi, 0 );
for ( int a= 1 ;a<=pr;a++) => for ( int a= 1 ;a<pr;a++)
Çok, çok uygun olmayan kod, başlangıçta terminali birkaç dakika askıda tutar ve daha sonra sert bir şekilde yavaşlar ve birkaç çizelgede başlatırsanız, genel olarak
ArrayInitialize (max, 0 ) => ArrayInitialize (dizi, 0 );
for ( int a= 1 ;a<=pr;a++) => for ( int a= 1 ;a<pr;a++)
Çok, çok uygun olmayan kod, başlangıçta terminali birkaç dakika askıda tutar ve daha sonra sert bir şekilde yavaşlar ve birkaç çizelgede başlatırsanız, genel olarak