MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1410

 
Alexey Viktorov :

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 burada değil, vurgulanan satırlarda.

Teşekkür ederim, bunu okudum

Kodumda her şey çalışıyor, sadece MT4, 8 çizelgelerinde bir aksaklık, ancak 7'yi görüyor(

 2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 9 /
2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 8 /
2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 7 /
2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 6 /EURUSD
2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 5 /EURUSD
2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 4 /EURUSD
2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 3 /EURUSD
2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 2 /EURUSD
2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 1 /EURUSD
2021.03 . 10 11 : 59 : 23.914 Label EURCAD,M15: 0 /EURUSD
 
Olası olmayan. Platformda kaç kez günah işledim, hep kendimde yanıldım.
 
Aleksei Stepanenko :
Olası olmayan. Platformda kaç kez günah işledim, hep kendimde yanıldım.
belirli bir çizelge görmez, geri kalanları ve yenilerini görür, eklersem görür
 
long currChart= ChartFirst ();
int i= 0 ;
while (currChart>= 0 )
  {
   Print (i, ChartSymbol (currChart), " ID =" ,currChart);
  currChart= ChartNext (currChart); // на основании предыдущего получим новый график
  i++; // не забудем увеличить счетчик
  }

belki bunu dene

 
Aleksei Stepanenko :

belki bunu dene

Aynısı

 2021.03 . 10 12 : 45 : 48.434 Label EURCAD,M15: 8 /
2021.03 . 10 12 : 45 : 48.434 Label EURCAD,M15: 7 /EURUSD
2021.03 . 10 12 : 45 : 48.434 Label EURCAD,M15: 6 /EURUSD
2021.03 . 10 12 : 45 : 48.434 Label EURCAD,M15: 5 /EURUSD
2021.03 . 10 12 : 45 : 48.434 Label EURCAD,M15: 4 /EURUSD
2021.03 . 10 12 : 45 : 48.434 Label EURCAD,M15: 3 /EURUSD
2021.03 . 10 12 : 45 : 48.434 Label EURCAD,M15: 2 /EURUSD
2021.03 . 10 12 : 45 : 48.434 Label EURCAD,M15: 1 /EURUSD
 

Baskı neden farklı? Başka bir kod mu?

 Print (i, ChartSymbol (currChart), " ID =" ,currChart);
2021.03 . 10 12 : 45 : 48.434 Label EURCAD,M15: 1 /EURUSD

Kaç grafik açık, hangileri? Sembol, nokta.

Genişletilmiş/daraltılmış mı?
 
MakarFX :

Teşekkür ederim, bunu okudum

Kodumda her şey çalışıyor, sadece MT4, 8 çizelgelerinde bir aksaklık, ancak 7'yi görüyor(

çok kötü okudum Muhtemelen okulda bir zorlama gibi. Okumuş gibiyim ama kafama bir şey takılmadı.

Burada bir örnek alın. Doğru, orada amaç farklıdır, ancak yine de açık çizelgelerin numaralandırılması bu numaralandırmanın amacına bağlı olarak değişmez.

Veya işte kod

 /********************Script program start function*******************/
void OnStart ()
 {
   long prevChart = 0 ;
   int i = 0 ;
   do
   {
    prevChart = ChartNext (prevChart);
     ChartSetInteger (prevChart, CHART_BRING_TO_TOP , 0 , true );
     Sleep ( 200 );
    i++;
   }
   while (prevChart >= 0 );
 } /*******************************************************************/
Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2021.01.15
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
Aleksei Stepanenko :

Baskı neden farklı? Başka bir kod mu?

Kaç grafik açık, hangileri? Sembol, nokta.

Genişletilmiş/daraltılmış mı?
Alexey Viktorov :

çok kötü okudum Muhtemelen okulda bir zorlama gibi. Okumuş gibiyim ama kafama bir şey takılmadı.

Burada bir örnek alın. Doğru, orada amaç farklıdır, ancak yine de açık çizelgelerin numaralandırılması bu numaralandırmanın amacına bağlı olarak değişmez.

Veya işte kod

Soru çözüldü, terminali yeniden başlatmak sorunu çözdü

 

Lütfen bana bu kodda dizi dışında diziyi nasıl önleyeceğimi söyle

 double GetExtremumZigZagPriceHigh( string symbol= "" , ENUM_TIMEFRAMES timeframe= 0 , int extremum_number= 0 ) //,int depth=12,int deviation=5,int backstep=3)
  {
   if (symbol== "" ) //Если symbol = "" , то..
      symbol= Symbol (); //Присвоить переменной symbol значение текущего символа на графике.

//Объявить необходимые переменные:
   double price[];                                                 //Цена экстремума выбранная из массива таймсерии.
//datetime time[];
   int     count;                                                   //Счетчик цикла.
int bars_quantity= 1000 ; //Количество баров на графике.
int extremum_count= 0 ;                                           //Счетчик экстремумов.

   ArraySetAsSeries (price, true );                   //Устанавить флаг, чтобы индексация массива производилась как в таймсериях.
   CopyBuffer (handle, 1 , 0 ,bars_quantity,price);     //Скопировать в динамический массив price[] цены указанного количества баров.

   for (count= 1 ; count<bars_quantity; count++) //Запустить цикл, который будет бежать по каждому бару.
     {
       if (price[count]!= 0 ) //Если Цена Зигзага есть, то есть не равна нулю, то..
        {
         extremum_count++;         //Увеличить счетчик экстремумов на одну единицу.

         if (extremum_count>extremum_number) //Если счетчик экстремумов превысил значение указанного номера экстремума, то..
             return (price[count]);                 //Вернуть эту цену.
        }
     }
//Print("GetExtremumZigZagPrice(): Экстремум ЗигЗага ",extremum_number," не найден"); //А до тех пор, пока ЗигЗаг не показывает цену,
   return ( 0 );                                                                           //Печатать Print, и возвращать ноль.
  }

Bu yerde küfür

 if (price[count]!= 0 )
 
CopyBuffer

Возвращаемое значение

Kopyalanan dizi öğelerinin sayısı veya hata durumunda -1.

Not

İndikatörden veri istenirken, istenen zaman serileri henüz oluşturulmamışsa veya sunucudan indirilmesi gerekiyorsa, fonksiyon hemen -1 döndürür, ancak yükleme/inşa sürecinin kendisi başlatılır.

Bir Uzman Danışmandan veya bir komut dosyasından veri istenirken, terminal bu verilere yerel olarak sahip değilse sunucudan indirme başlatılacak veya veriler yerel geçmişten oluşturulabiliyorsa gerekli zaman serilerinin yapımı başlayacak, ancak henüz hazır değil. İşlev, zaman aşımı süresi sona erdiğinde hazır olacak veri miktarını döndürür.

Kontrol etmeniz gerekiyor, orada bar_quantity'nizin olduğu bir gerçek değil.