Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 965

 
Vladimir Karputov :

Bir yaklaşımı karıştırmamak ve kullanmamak daha iyidir: ya CSymbolInfo ticaret sınıfı ya da SymbolInfoXXXX türünün sistem işlevleri.

Teşekkürler. daha kesin olabilir.

Bu hatalara yol açabilir mi yoksa sadece bir kodlama kültürü önerisi mi?

 
vladzeit :

Teşekkürler. daha kesin olabilir.

Bu hatalara yol açabilir mi yoksa sadece bir kodlama kültürü önerisi mi?

Hiç kimse salata sosu kullanmayı yasaklamaz, AMA: zamanla değişken isimleriyle kafanız karışacak mı, değişkendeki verileri güncelleyip güncellemediğinizi hatırlayacak mısınız?

 
Vladimir Karputov :

Hiç kimse salata sosu kullanmayı yasaklamaz, AMA: zamanla değişken isimleriyle kafanız karışacak mı, değişkendeki verileri güncelleyip güncellemediğinizi hatırlayacak mısınız?

teşekkür ederim anladım)

 
Vladimir Karputov :

Aynı zaman dilimindeki birkaç zaman serisini karşılaştırmanız gerekiyorsa, MqlRates -> gibi bir diziyle çalışın ve bu diziyi doldurmak için CopyRates kullanın.

Zaman bir yapıda uygun bir şekilde saklanır   MqlDateTime -> zamanı tarih saatinden yapıya dönüştürmek için   MqlDateTime TimeToStruct kullanın .

Şimdi örnek 1'iniz şöyle görünecek:

Net cevaplar için teşekkürler. Ama sorular var...

1. Ne yapar? ve : Yalnızca bulundu :: bağlam

 int count=(InpBarTime< 10 )? 10 :InpBarTime+ 1 ;

2. MT4'teki [h] kaydını hangi kayıt öğesi tanımlar?

 //--- example 1
// if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct (rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if ( Period ()<= PERIOD_H4 && SDateTime.hour== 0 && SDateTime.min== 0 )
     {

     }
  
 
kopeyka2 :

Net cevaplar için teşekkürler. Ama sorular var...

1. Ne yapar? ve : Yalnızca bulundu :: bağlam

 int count=(InpBarTime< 10 )? 10 :InpBarTime+ 1 ;

-->

Bu kısaltılmış bir formdur. Önemli değil:

 int count= 0 ;
if (InpBarTime< 10 )
   count= 10 ;
else
   count=InpBarTime+ 1 ;



2. MT4'teki [h] kaydını hangi kayıt öğesi tanımlar?

 //--- example 1
// if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct (rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if ( Period ()<= PERIOD_H4 && SDateTime.hour== 0 && SDateTime.min== 0 )
     {

     }

-->

Bence InpBarTime. Ve sen ne düşünüyorsun?

 

Ne demek ? ve : Yalnızca bulundu :: bağlam

 int count=(InpBarTime< 10 )? 10 :InpBarTime+ 1 ;


https://www.mql5.com/ru/docs/basis/operators/ternary

Son zamanlarda, bu operatör moda oldu, giderek daha fazla kullanıyorlar

Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
  • www.mql5.com
В качестве первого операнда – "выражение1" – может быть использовано любое выражение, результатом которого является значение типа bool. Если результат равен , то выполняется третий операнд – "выражениеЗ". Второй и третий операнды, то есть "выражение2" и "выражениеЗ", должны возвращать значения одного типа и не должны иметь тип void...
 
Vladimir Karputov :
kopeyka2 :

Net cevaplar için teşekkürler. Ama sorular var...

1. Ne yapar? ve : Yalnızca bulundu :: bağlam

-->

Bu kısaltılmış bir formdur. Önemli değil:



2. MT4'teki [h] kaydını hangi kayıt öğesi tanımlar?

-->

Bence InpBarTime. Ve sen ne düşünüyorsun?

Şimdi neredeyse düşünmüyorum, bu durumun olağan anlamında .... Elimde bir kriko olan bir SARIŞIM)))

Global olarak InpBarTime= 3 ; Ve MT4'te [h] genellikle bir döngü içinde buradan buraya (limit için ......)

 #property script_show_inputs
//--- input parameters
int InpBarTime= 3 ; // Bar where we compare the time
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()

Market_Sessions Göstergesini buldum İlginç bir yapı var... ...kafamdaki iç diyaloğun kalıntılarını kovmaya çalışıyorum...))))

Dosyalar:
 
kopeyka2 :

Şimdi neredeyse düşünmüyorum, bu durumun olağan anlamında .... Elimde bir kriko olan bir SARIŞIM)))

Ve küresel olarak böyle yazdın

Market_Sessions Göstergesini buldum İlginç bir yapı var... ...kafamdaki iç diyaloğun kalıntılarını kovmaya çalışıyorum...))))

Üzgünüm, şöyle yazmalıydım:

 //--- input parameters
input int InpBarTime= 3 ; // Bar where we compare the time
 
Fast528 :

Ne demek ? ve : Yalnızca bulundu :: bağlam


https://www.mql5.com/ru/docs/basis/operators/ternary

Son zamanlarda, bu operatör moda oldu, giderek daha fazla kullanıyorlar

TAMAM !!!


Doğru anladım mı

 //if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct (rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if ( Period ()<= PERIOD_H4 && SDateTime.hour== 0 && SDateTime.min== 0 )
     {

     }
// А ЕСЛИ ПО ЦИКЛУ ?
int InpBarTime= 10 ;
for ( int a= 0 ; a<=InpBarTime; a++) 
 {
//if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct (rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if ( Period ()<= PERIOD_H4 && SDateTime.hour== 0 && SDateTime.min== 0 )
     {

     }
Запустив InpBarTime по циклу будем иметь цикл, но в структуре. Правильно?
 
kopeyka2 :

TAMAM !!!


Doğru anladım mı

Hiçbir şey anlamadın. Çalışan bir örnek verdim. Çalıştır. MQL4 stilinde yazmayı unutun. Kodu öğrenmeye başlayın ve yardıma bakın.