LoY[0][0] siparişi açtıktan sonra Teklif değerini (yani 1.6134) aldıktan sonra, ArraySort(LoY,WHOLE_ARRAY,0,MODE_ASCEND) işlevi diziyi birinci boyuta göre artan düzende sıraladı ve dizi öğesini en üst dizideki en büyük değer. Yani LoY[0][0] değeri ile birlikte artan düzende sıralanmış dizide LoY[30][0] oldu. Bu mantıklı ve bu yüzden ona katılıyorum.
Bana göre mantıklı olmayan ve benim için kabul edilemez olan nedir? Değerinin (1.61040) otuzuncu öğe hariç dizinin diğer tüm öğelerinin değerlerine eşit olmasına rağmen neden ArraySort() LoY[15][0] dizinini 0 dizinine koydu. Ayrıca neden ArraySort() olduğu da belli değil. LoY[30][0], değerinin (1.61040) otuzuncu öğe hariç dizinin diğer tüm öğelerinin değerlerine eşit olmasına rağmen 15 dizininde yer almaktadır.
SORU. Belirli bir tikte 0 indeksli eleman LoY[1][0] olacak ve 15 indeksli eleman olacak şekilde nasıl yapılır LoY[15][0] ve 29 dizinindeki eleman LoY[30][0] idi Yani, işlevin gelecekte aynı değerlere sahip öğeleri sıralamadığından nasıl emin olunur. Mantıklı ve anlamsız değil.
Для работы с графикой в MQL5 создана специальная библиотека Graphic.mqh. В статье описан пример ее практического применения и поясняется сама суть сортировок. По каждой сортировке существует как минимум отдельная статья, а по ряду из них уже опубликованы целые исследования, поэтому здесь описывается лишь общая идея.
//функция быстрой сортировкиvoid SortArray( int &eArray[], int eFirst, int eLast)
{
int eMiddle, eTemp;
int eLeft=eFirst, eRight=eLast;
//вычисление опорного элемента
eMiddle=eArray[(eLeft+eRight)/ 2 ];
do
{
while (eArray[eLeft]<eMiddle) eLeft++;
while (eArray[eRight]>eMiddle) eRight--;
//перестановка элементовif (eLeft<=eRight)
{
eTemp=eArray[eLeft];
eArray[eLeft]=eArray[eRight];
eArray[eRight]=eTemp;
eLeft++;
eRight--;
}
}
while (eLeft<eRight);
if (eFirst<eRight) SortArray(eArray,eFirst,eRight);
if (eLeft<eLast) SortArray(eArray,eLeft,eLast);
}
tek boyutlu bir dizi için gerçek işlev, ancak yeniden yapılabilir
MakarFX : Çok garip, yeni açılan tüm çizelgelere bir işaret koyuyor, yalnızca bir çizelge yok sayılıyor (
Belgeleri ve örnek kodu dikkatlice okuyun. Döngünüz yanlış.
//--- переменные для идентификаторов графиковlong currChart, prevChart= ChartFirst () ;
int i= 0 ,limit= 100 ;
Print ( "ChartFirst = " , ChartSymbol (prevChart), " ID = " ,prevChart);
while (i<limit) // у нас наверняка не больше 100 открытых графиков
{
currChart= ChartNext (prevChart) ; // на основании предыдущего получим новый графикif (currChart< 0 ) break ; // достигли конца списка графиковPrint (i, ChartSymbol (currChart), " ID =" ,currChart);
prevChart=currChart; // запомним идентификатор текущего графика для ChartNext()
i++; // не забудем увеличить счетчик
}
Sadece bunu söyleme, for ve while döngüleri aynı şekilde çalışır. Sorun bunda değil, seçilen satırlarda.
mql4 ve daha özel olarak ArraySort() işleviyle ilgili soru
İşte kodum
LoY[0][0] siparişi açtıktan sonra Teklif değerini (yani 1.6134) aldıktan sonra, ArraySort(LoY,WHOLE_ARRAY,0,MODE_ASCEND) işlevi diziyi birinci boyuta göre artan düzende sıraladı ve dizi öğesini en üst dizideki en büyük değer. Yani LoY[0][0] değeri ile birlikte artan düzende sıralanmış dizide LoY[30][0] oldu. Bu mantıklı ve bu yüzden ona katılıyorum.
Bana göre mantıklı olmayan ve benim için kabul edilemez olan nedir? Değerinin (1.61040) otuzuncu öğe hariç dizinin diğer tüm öğelerinin değerlerine eşit olmasına rağmen neden ArraySort() LoY[15][0] dizinini 0 dizinine koydu. Ayrıca neden ArraySort() olduğu da belli değil. LoY[30][0], değerinin (1.61040) otuzuncu öğe hariç dizinin diğer tüm öğelerinin değerlerine eşit olmasına rağmen 15 dizininde yer almaktadır.
SORU. Belirli bir tikte 0 indeksli eleman LoY[1][0] olacak ve 15 indeksli eleman olacak şekilde nasıl yapılır LoY[15][0] ve 29 dizinindeki eleman LoY[30][0] idi
Yani, işlevin gelecekte aynı değerlere sahip öğeleri sıralamadığından nasıl emin olunur. Mantıklı ve anlamsız değil.
Yardım için teşekkürler.
Muhtemelen böyle bir sıralama algoritması . Dizi elemanlarının bazı permütasyonları vardır.
Diğer sıralama seçeneklerini deneyin.
Muhtemelen böyle bir sıralama algoritması . Dizinin elemanlarının bazı permütasyonları vardır.
Diğer sıralama seçeneklerini deneyin.
Tavsiyen için teşekkür ederim. Lütfen bana mql4'te başka sıralama seçenekleri olduğunu söyleyin? Eğer öyleyse, bunlar Dizin'de neredeler?
denemek:
tek boyutlu bir dizi için gerçek işlev, ancak yeniden yapılabilir
denemek:
tek boyutlu bir dizi için gerçek işlev, ancak yeniden yapılabilir
Çok teşekkürler.
Lütfen bana söyle,
kod açık çizelgeleri arar ve sembolün adıyla bir etiket oluşturur, ancak aynı sembole sahip iki çizelge varsa,
o zaman sadece bir grafikte etiket oluşturur.Neyi yanlış yapıyorum?
Lütfen bana söyle,
kod açık çizelgeleri arar ve sembolün adıyla bir etiket oluşturur, ancak aynı sembole sahip iki çizelge varsa,
o zaman sadece bir grafikte bir etiket oluşturur.Neyi yanlış yapıyorum?
Aynı sembolün Grafik Kimlikleri (ChartID()) farklıdır. Onları kullan.
Aynı sembolün Grafik Kimlikleri (ChartID()) farklıdır. Onları kullan.
ChartFirst ()+ionlar. tüm açık grafikler üzerinde yineleme
yoksa ben mi seni yanlış anladım Bir şekilde görsel olarak kod şeklinde mümkün mü?
Çok garip, yeni açılan tüm çizelgelere bir işaret koyuyor, yalnızca bir çizelge yok sayılıyor (
Belgeleri ve örnek kodu dikkatlice okuyun. Döngünüz yanlış.
Sadece bunu söyleme, for ve while döngüleri aynı şekilde çalışır. Sorun bunda değil, seçilen satırlarda.