Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 732
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Peki ya sıralamadan sonra indeksleme sırasını ArraySetAsSeries kullanarak değiştirirsek?
ArraySetAsSeries, çok boyutlu diziler için geçerli değildir.
Evet, geçerli değil. Ve kim ne kullanıldığını biliyor, lütfen cevaplayın.
Evet, geçerli değil. Ve kim ne kullanıldığını biliyor, lütfen cevaplayın.
Bazen kabarcık türünde iki boyutlu bir dizi kullanırım. Sıralamanın yönünü ve boyutunu seçebilirsiniz
Kod için eve gelmek ya da sakıncası yoksa yine de düzenlemek)
Eklendi: Ne kadar kaynak yoğun?
Kod için eve gelmek ya da sakıncası yoksa yine de düzenlemek)
Sadece dizinin hangi boyutu hakkında yazdığını hatırlamıyorum - belki buna ihtiyacın yok, ama buraya iteceğim ...
//| Пузырьковая сортировка двумерного массива |
//+------------------------------------------------------------------+
template < typename T>
void ArraySortBubbleTwoDims(T& array[][TWO_DIM], int sort_dimension= 0 , int sort_direction= 0 ) {
T t= 0 ;
int k= ArrayRange (array, 1 ); // Количество колонок
int n= ArrayRange (array, 0 ); // Количество строк
//---
if (sort_dimension< 0 ) sort_dimension= 0 ;
if (sort_dimension>k) sort_dimension=k;
//---
for ( int i=n- 1 ; i> 0 ; i--) {
for ( int j= 0 ; j<i; j++) {
//--- по возрастанию
if (sort_direction== 0 ) {
if (array[j][sort_dimension]>array[j+ 1 ][sort_dimension]) {
for ( int e= 0 ; e<k; e++) {
t=array[j][e];
array[j][e]=array[j+ 1 ][e];
array[j+ 1 ][e]=t;
}
}
}
//--- по убыванию
else {
if (array[j][sort_dimension]<array[j+ 1 ][sort_dimension]) {
for ( int e= 0 ; e<k; e++) {
t=array[j][e];
array[j][e]=array[j+ 1 ][e];
array[j+ 1 ][e]=t;
}
}
}
}
}
}
//+------------------------------------------------------------------+
Öyleyse bir bira al, ama ziyaret et ;)
Sadece dizinin hangi boyutu hakkında yazdığını hatırlamıyorum - belki buna ihtiyacın yok, ama buraya iteceğim ...
Kış görünüyor, ama kayaklar gitmiyor
{
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 работает
... здесь работа с уже сортированным массивом и основной код
}
Bir hata veriyor: "'m' - parametre dönüştürmeye izin verilmiyor e.mq5 2076 20"
Kış görünüyor, ama kayaklar gitmiyor
{
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 работает
... здесь работа с уже сортированным массивом и основной код
}
Bir hata veriyor: "'m' - parametre dönüştürmeye izin verilmiyor e.mq5 2076 20"
Not
AS_SERIES bayrağı, çok boyutlu diziler ve statik diziler (yani, boyutu derleme zamanında köşeli parantez içinde belirtilen diziler) için ayarlanamaz.
Ve önerdiğim işlevle sıralamayı engelleyen nedir?
Yani kılavuz diyor ki:
Not
AS_SERIES bayrağı, çok boyutlu diziler ve statik diziler (yani, boyutu derleme zamanında köşeli parantez içinde belirtilen diziler) için ayarlanamaz.
Ve önerdiğim işlevle sıralamayı engelleyen nedir?
Bir işleve geçerken tam olarak aynı hata
Hangisinde?
" ArraySortBubbleTwoDims "inize
Genel olarak, döngü açıldı ve sorun çözüldü. Ama yine de standart bir fonksiyon şeklinde normal bir çözüm görmek istedim.