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

 

MT4'te Excel'dekiyle aynı yapıda bir tablo yapmak mümkün müdür (+ ve - verileri daraltıp genişletin)? Evet ise nereden okuyabilirim?


 

Merhaba! Sadece kodları öğreniyorum. Bir hata var, nasıl düzeltileceğini giremiyorum.


int CountTrades(int tipi, int büyü)

{

int sayı=0;

for(int i=SiparişlerToplam()-1;i>=0; i-)

{

if( OrderSelect ( i ,SELECT_BY_POS,MODE_TRADES))

{

if(OrderSymbol()==Symbol() && (OrderType()==type||type==-1) &&

(OrderMagicNumber()==sihir||büyü==-1))

say++;

}

}

dönüş(sayım);


Neye yemin ettiği kırmızıyla vurgulanır.


Hatalar:

"-" işleneni bekleniyor

")" - Beklenmedik belirteç

"i" - bildirilmemiş tanımlayıcı


İlk hatada i'den sonra eksi koymamdan hoşlanmamış gibi görünüyor. Belki bir şekilde kısa çizgi koymanız gerekir?

Ders kitabıyla her şeyi harfi harfine yaptım - ancak kod derlenmiyor.

Yardımınıza ihtiyaçım var.

 
Falx :

Merhaba! Sadece kodları öğreniyorum. Bir hata var, nasıl düzeltileceğini giremiyorum.

Fonksiyonu kapatan iki eksi ve parantez yok.
 
Aleksey Vyazmikin :
Fonksiyonu kapatan iki eksi ve parantez yok.

Çok teşekkürler! Her şeyi düzeltti! İşler!

 

İki tarihi saat başı karşılaştırmak zorunda kaldım, şu şekilde yaptım:

 string TimeCompare = StringSubstr ( TimeToString (MyLastNewsTime[i], TIME_DATE | TIME_MINUTES ), 0 , 13 );
string TimeCompare1 = StringSubstr ( TimeToString (MyLastNewsTime1[i], TIME_DATE | TIME_MINUTES ), 0 , 13 );
if (TimeCompare != TimeCompare1)
...

Her şey yolunda gitti, ama belki de bu yöntem en doğru olanı değil mi? Programcılar ne diyecek?

 
Nauris Zukas :

İki tarihi saat başı karşılaştırmak zorunda kaldım, şu şekilde yaptım:

Her şey yolunda gitti, ama belki de bu en doğru yol değil mi? Programcılar ne diyecek?


 if ( TimeHour (MyLastNewsTime[i])!= TimeHour (MyLastNewsTime1[i]))
 {
 }
 
Nikolay Ivanov :

Belki çok doğru anlatamadım ama bir saate kadar iki tarih bulmam gerekiyor (dakikalar ve saniyeler önemli değil). Yalnızca saatlere göre karşılaştırırsınız.

 
Nauris Zukas :

Belki çok doğru anlatamadım ama bir saate kadar iki tarih bulmam gerekiyor (dakikalar ve saniyeler önemli değil).


Tarihleri bulmak mı yoksa bir saatlik 2 tarihi karşılaştırmak mı gerekiyor?

 
Nikolay Ivanov :

Tarihleri bulmak mı yoksa bir saatlik 2 tarihi karşılaştırmak mı gerekiyor?

saate kadar olan tarihleri bulmanız gerekir (dakikalar ve saniyeler önemli değildir).

 
Nikolay Ivanov :

Tarihleri bulmak mı yoksa bir saatlik 2 tarihi karşılaştırmak mı gerekiyor?

Belki CopyTime daha uygundur?

Bu seçenek

 int    CopyTime (
   string            symbol_name,     // имя символа
   ENUM_TIMEFRAMES   timeframe,       // период PERIOD_H1
   datetime          start_time,       // с какой даты
   int               count,           // сколько копируем 1
   datetime          time_array[]     // массив для копирования времени открытия
   );

Zamanı bir dizgeye dönüştürmek ve karşılaştırmak en iyi seçenek değildir.

CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Функция получает в массив time_array исторические данные времени открытия баров для указанной пары символ-период в указанном количестве. Необходимо отметить, что отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества...