Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 635

 
Top2n :

Bu işlev, doldurulmuş hücrelerin değil, dizi hücrelerinin sayısını döndürür.

Sadece döngü size yardımcı olacaktır. Süpür ve say
 

Bir acemi söyle lütfen!

Görevim şu: Eklendiği grafik penceresinde bir uzmandan bir alt pencere (alt pencere) oluşturmak.

Görünüşe göre her yere baktım ama yapmanın bir yolunu bulamadım. Nesneler oluşturabilir/düzenleyebilir

diğer göstergeler tarafından zaten oluşturulmuş alt pencerelerde, ancak ihtiyacım olan şeye sahip değilim ...

Durumdan nasıl çıkılır?

 
boroda4 :

Bir acemi söyle lütfen!

Görevim şu: Eklendiği grafik penceresinde bir uzmandan bir alt pencere (alt pencere) oluşturmak.

Görünüşe göre her yere baktım ama yapmanın bir yolunu bulamadım. Nesneler oluşturabilir/düzenleyebilir

diğer göstergeler tarafından zaten oluşturulmuş alt pencerelerde, ancak ihtiyacım olan şeye sahip değilim ...

Durumdan nasıl çıkılır?


Yazıya bak belki bulursun
 
Vinin :

Sadece döngü size yardımcı olacaktır. Süpür ve say

Bir dizideki dolu hücrelerin sayısını nasıl sayacağımı söyleyebilir misiniz?

Dizi, mevcut çubuğa göre trend çizgilerinin fiyatlarını içerir.

 sch= ObjectsTotal ( OBJ_TREND ); //количество трендовы линий
for ( int s= 0 ;s<sch;s++) 
 {
 
// ArraySort(masS,WHOLE_ARRAY,0,MODE_DESCEND);
// ArraySort(masB,WHOLE_ARRAY,0,MODE_DESCEND);
  
   DWnem= ObjectName (s); //Текущее имя объекта
   DW= "downtrendline" + IntegerToString (s); //Для фильтрации запроса
   DW2= "uptrendline" + IntegerToString (s); //
   if (DWnem= "" ) //если объекта уже нет, то обнуляем ячейку массива
   {
   masS[s]= 0 ;
   masB[s]= 0 ;
   }
 if (DWnem=DW) //если имя совпадает с фильтром, то запоминаем в массив
{
   if (ObjectGet(DWnem, OBJPROP_COLOR )==Goldenrod) { 
   masS[s]=ObjectGetValueByShift(DWnem, 1 );}
   if (ObjectGet(DWnem, OBJPROP_COLOR )==Gainsboro) { 
   masS[s]=ObjectGetValueByShift(DWnem, 1 );}
   if (ObjectGet(DWnem, OBJPROP_COLOR )==White) { 
   masS[s]=ObjectGetValueByShift(DWnem, 1 );}
}   
for ( int a= 0 ;a< 20 ;a++)// ну а тут счетчик, чтоб посчитать сколько ячеек записано в масив { if (mas[a]> 0 ) sch++; } Как остановить счетчик?

Ve sonra devam ediyor ve devam ediyor.

Hayatım boyunca, çözemiyorum, lütfen yardım edin!

 

Terminal Tester'ın çalışmasının sonu hakkında Terminal'de nasıl bir sinyal alacağımı söyler misiniz?

 int start()
   {
     //---------------------------------- Из Терминала запустим ТерминалТестер -------------------------
    Start   = ShellExecuteW( 0 , "Open" , "terminal.exe" , "D:\\Alpari_Terminal_Tester\\tester\\optimise.ini" , "D:\\Alpari_Terminal_Tester" , 3 );
     while (STOP)
        {
         //------ Функция запроса проверки состояния ТерминалТестера ------
         // STOP=?????????????????????????????????????????????????;
         Sleep ( 1000 );
        }
     return ( 0 );
   }
 
Top2n :

Bir dizideki dolu hücrelerin sayısını nasıl sayacağımı söyleyebilir misiniz?

Dizi, mevcut çubuğa göre trend çizgilerinin fiyatlarını içerir.

Ve sonra devam ediyor ve devam ediyor.

Hayatım boyunca, çözemiyorum, lütfen yardım edin!

Şu şekilde deneyin:

 int limit = ...; //до какого числа нужно
MathMin (sch++,limit); //если это будет работать, не пробовал

Belki olur. İyi şanlar!

 
Top2n :

Bir dizideki dolu hücrelerin sayısını nasıl sayacağımı söyleyebilir misiniz?

Dizi, mevcut çubuğa göre trend çizgilerinin fiyatlarını içerir.

Ve sonra devam ediyor ve devam ediyor.

Hayatım boyunca, çözemiyorum, lütfen yardım edin!


Muhtemelen, daha fazla sarılmaması, ancak sıfırdan tekrar sayılması için sayacı zamanında sıfırlamak gerekir?

Kilometre işlevleri iyi değildir, eylemlerin tamamlanan kısımlarını, bazıları yalnızca bir kez çağrılsa bile ayrı işlevlere taşımak daha iyidir. Ve ana işlevden bunları ayrı çağırmak.

Böyle bir hesaplama işe yarar mı?

 #property strict

/******************************************************************************/
uint getFilledCellsNumber( double &array[]) { // Массив принимается по ссылке, то есть, НЕ копируется
   uint cnt = 0 ;

   for ( int i = 0 , limit = ArraySize (array); i < limit; i++) {
     if (array[i] > 0 ) {
      cnt++;
    }
  }

   return cnt;
}

/******************************************************************************/
void OnStart () {
   double a[] = { 0 , 1.2 , 1.3 , 0 , 1.1 };
   uint filledCellsNumber = getFilledCellsNumber(a); // Массив передаётся по ссылке, то есть, НЕ копируется

   Print ( "Number of filled cells: " , filledCellsNumber);
}

Çalıştırıldığında, olan budur:

 00 : 24 : 46 Script 1 EURUSDm,H1: loaded successfully
00 : 24 : 46 1 EURUSDm,H1: initialized
00 : 24 : 46 1 EURUSDm,H1: Number of filled cells: 3
00 : 24 : 46 1 EURUSDm,H1: uninit reason 0
00 : 24 : 46 Script 1 EURUSDm,H1: removed

Bu doğru gibi görünüyor.

 

Merhaba.

2012'de yazılmış bir programı derlerken bir uyarı çıkıyor:

tür dönüşümü nedeniyle olası veri kaybı FinBuy1531.mq4 144 7

Bu ne anlama geliyor ve görünüşünden nasıl kaçınılır?

PS Program, test cihazında normal şekilde çalışır.

 
simpleton :

Muhtemelen, daha fazla sarılmaması, ancak sıfırdan tekrar sayılması için sayacı zamanında sıfırlamak gerekir?

Kilometre işlevleri iyi değildir, eylemlerin tamamlanan kısımlarını, bazıları yalnızca bir kez çağrılsa bile ayrı işlevlere taşımak daha iyidir. Ve bu bireyleri çağırmak için ana işlevden.

Böyle bir hesaplama işe yarar mı?

Çalıştırıldığında, olan budur:

Bu doğru gibi görünüyor.


OOO çok teşekkür ederim!!!))) Genel olarak harika çalışıyor.

Yardımlarınız için hepinize teşekkür ederim!

 
Shurkin :

Merhaba.

2012'de yazılmış bir programı derlerken bir uyarı çıkıyor:

tür dönüştürme nedeniyle olası veri kaybı FinBuy1531.mq4 144 7

Ne anlama geliyor ve ortaya çıkmasından nasıl kaçınılır?

PS Program, test cihazında normal şekilde çalışır.

Kodda tip dökümünün doğru bir şekilde yapılması gerekir.
Neden: