Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 965

 
Vladimir Karputov:

Meglio non essere confusi e usare un solo approccio: o la classe commercialeCSymbolInfo o funzioni di sistema come SymbolInfoXXXX.

Sì, grazie. Posso anche chiarire.

Può portare a degli errori o è solo una raccomandazione per la cultura della codifica?

 
vladzeit:

Uh-huh, grazie. posso anche chiarire.

Questo può portare ad errori o è solo una raccomandazione per la cultura della codifica?

Nessuno vieta di usare la vinaigrette, MA: non vi confonderete con i nomi delle variabili nel tempo, non vi ricorderete se avete aggiornato o meno i dati nella variabile?

 
Vladimir Karputov:

Nessuno vieta l'uso di una vinaigrette, MA: non vi confondete con i nomi delle variabili nel tempo e ricordate se avete aggiornato o meno i dati nella variabile?

Grazie, vedo)

 
Vladimir Karputov:

Se avete bisogno di confrontare diverse serie temporali dello stesso timeframe, lavorate con un array di tipoMqlRates-> e usateCopyRates per riempire questo array.

È conveniente memorizzare il tempo in una strutturaMqlDateTime-> usaTimeToStruct per convertire il tempo dadatetime a strutturaMqlDateTime.

Ora il vostro esempio 1 sarà così:

Grazie per le risposte illustrative. Ma ci sono domande...

1. Cosa fa? e : Trovato solo :: contesto.

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

2. Quale elemento di entrata definisce la voce [h] 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:

Grazie per le risposte illustrative. Ma ci sono domande...

1. Cosa significa? e : Trovato solo :: contesto

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

-->

Questa è una forma abbreviata. Tutti uguali:

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



2. Quale elemento di entrata definisce la voce [h] 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)
     {

     }

-->

Credo che InpBarTime. Cosa ne pensate?

 

Cosa vuoi dire? e : Trovato solo :: contesto

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


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

questo operatore è diventato di moda ultimamente, viene usato sempre più spesso

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

Grazie per le risposte illustrative. Ma ci sono domande...

1. Cosa significa? e : Trovato solo :: contesto

-->

Questa è una forma abbreviata. Tutti uguali:



2. Quale elemento di entrata definisce la voce [h] in MT4

-->

Credo che InpBarTime. Cosa ne pensate?

Non credo proprio che al momento, nel senso abituale di quello stato.... Sto BLONDANDO con un cric in mano)))

Hai dichiarato globalmenteInpBarTime=3; E in MT4 [h] è da qui a lì di solito in un ciclo (per limite ......)

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

Trovato l'indicatore Market_Sessions C'è un design interessante lì.... cercando di far entrare il resto del dialogo interno nella mia testa...))))

File:
 
kopeyka2:

Non sto quasi pensando ora, nel senso abituale del termine.... Sono bionda con un jack in mano)))

E hai scritto globalmente così

Trovato l'indicatore Market_Sessions C'è una costruzione interessante lì.... cercando di far entrare il resto del dialogo interno nella mia testa...))))

Ah, scusate, avrei dovuto scrivere così:

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

Cosa vuoi dire? e : Trovato solo :: contesto


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

questo operatore è diventato di moda ultimamente, sempre più spesso usato

OK !!!


Ho capito bene?

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


Ho capito bene?

Non hai capito bene. Ti ho dato un esempio di lavoro. Esegui. Dimenticate la scrittura in stile MQL4. Iniziate a studiare il codice e guardate l'aiuto.