Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 965

 
Vladimir Karputov:

Es ist besser, sich nicht verwirren zu lassen und einen Ansatz zu verwenden: entweder die HandelsklasseCSymbolInfo oder Systemfunktionen wie SymbolInfoXXXX.

Ja, ich danke Ihnen. Darf ich auch etwas klarstellen.

Kann sie zu Fehlern führen oder ist sie nur eine Empfehlung für die Kodierungskultur?

 
vladzeit:

Aha, danke. kann ich auch klarstellen.

Kann dies zu Fehlern führen oder ist es nur eine Empfehlung für die Kodierungskultur?

Niemand verbietet die Verwendung von Vinaigrette, ABER: werden Sie sich nicht mit der Zeit mit den Variablennamen verwechseln, werden Sie sich nicht daran erinnern, ob Sie die Daten in der Variable aktualisiert haben oder nicht?

 
Vladimir Karputov:

Niemand verbietet die Verwendung einer Vinaigrette, ABER: werden Sie sich nicht mit der Zeit mit den Variablennamen verwechseln und sich daran erinnern, ob Sie die Daten in der Variable aktualisiert haben oder nicht?

Danke, ich verstehe)

 
Vladimir Karputov:

Wenn Sie mehrere Zeitreihen desselben Zeitrahmens vergleichen müssen, arbeiten Sie mit einem Array vom TypMqlRates-> und verwenden SieCopyRates, um dieses Array zu füllen.

Es ist praktisch, die Zeit in einerMqlDateTime-Struktur zu speichern -> verwenden SieTimeToStruct, um die Zeit vondatetime in eineMqlDateTime-Struktur zu konvertieren.

Ihr Beispiel 1 sieht dann wie folgt aus:

Vielen Dank für die anschaulichen Antworten. Aber es gibt Fragen...

1. Was bedeutet ? und : Gefunden nur :: Kontext.

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

2. Welches Eintragselement definiert den [h]-Eintrag in MT4

//--- 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:

Vielen Dank für die anschaulichen Antworten. Aber es gibt Fragen...

1. Was bedeutet das? und : Nur gefunden :: Kontext

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

-->

Dies ist eine abgekürzte Form. Das ist egal:

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



2. Welches Eintragselement definiert den [h]-Eintrag in MT4

//--- 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)
     {

     }

-->

Ich denke, InpBarTime. Was meinen Sie dazu?

 

Was meinen Sie? und : Nur gefunden :: Kontext

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


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

dieser Operator ist in letzter Zeit in Mode gekommen, er wird immer häufiger verwendet

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

Vielen Dank für die anschaulichen Antworten. Aber es gibt Fragen...

1. Was bedeutet das? und : Nur gefunden :: Kontext

-->

Dies ist eine abgekürzte Form. Das ist egal:



2. Welches Eintragselement definiert den [h]-Eintrag in MT4

-->

Ich denke, InpBarTime. Was meinen Sie dazu?

Ich glaube kaum, dass im Moment, im üblichen Sinne des Wortes.... Ich bin BLONDING mit einem Buben in der Hand)))

Sie haben global deklariertInpBarTime=3; Und in MT4 [h] ist von hier bis dort in der Regel in einer Schleife (für Limit ......)

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

Ich habe den Market_Sessions Indikator gefunden. Er hat ein interessantes Design.... Ich versuche, den Rest des internen Dialogs in meinem Kopf zu verstehen...))))

Dateien:
 
kopeyka2:

Ich denke kaum noch im üblichen Sinne des Wortes.... Ich bin blond und habe einen Buben in der Hand)))

Und Sie schrieben global wie folgt

Ich habe den Market_Sessions-Indikator gefunden. Es gibt dort eine interessante Konstruktion.... Ich versuche, den Rest des internen Dialogs in meinem Kopf darauf abzustimmen...))))

Ah, Entschuldigung, ich hätte es so schreiben sollen:

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

Was meinen Sie? und : Nur gefunden :: Kontext


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

dieser Operator ist in letzter Zeit in Mode gekommen und wird immer häufiger verwendet

OK !!!


Habe ich es richtig verstanden?

//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:

OK !!!


Habe ich es richtig verstanden?

Sie haben es nicht richtig verstanden. Ich habe Ihnen ein funktionierendes Beispiel gegeben. Führen Sie es aus. Vergessen Sie den MQL4-Schreibstil. Beginnen Sie mit dem Studium des Codes und sehen Sie sich die Hilfe an.

Grund der Beschwerde: