Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 965

 
Vladimir Karputov:

É melhor não se confundir e utilizar uma abordagem: ou a classe comercialCSymbolInfo ou funções de sistema como SymbolInfoXXXX.

Sim, obrigado. Posso também esclarecer.

Pode conduzir a erros ou é apenas uma recomendação para a cultura de codificação?

 
vladzeit:

Obrigado. posso também esclarecer.

Isto pode conduzir a erros ou é apenas uma recomendação para a codificação da cultura?

Ninguém proíbe a utilização de vinagrete, MAS: não se confundirá com nomes de variáveis ao longo do tempo, não se lembrará se actualizou ou não os dados na variável?

 
Vladimir Karputov:

Ninguém proíbe o uso de um vinagrete, MAS: não se confundirá com nomes de variáveis ao longo do tempo e lembrar-se-á se actualizou ou não os dados na variável?

Obrigado, estou a ver)

 
Vladimir Karputov:

Se precisar de comparar várias séries cronológicas do mesmo período, trabalhe com um conjunto deMqlRates tipo-> e useCopyRates para preencher este conjunto.

É conveniente armazenar o tempo numa estruturaMqlDateTime-> usarTimeToStruct para converter o tempo dadata para a estruturaMqlDateTime.

Agora o seu exemplo 1 será parecido com este:

Obrigado pelas respostas ilustrativas. Mas há questões...

1. O que faz ? e : Encontrado apenas :: contexto.

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

2. Que elemento de entrada define a entrada [h] em 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:

Obrigado pelas respostas ilustrativas. Mas há questões...

1. O que é que isso significa ? e : Encontrado apenas :: contexto

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

-->

Esta é uma forma abreviada. Mesmo assim:

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



2. Que elemento de entrada define a entrada [h] em 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)
     {

     }

-->

Penso que o InpBarTime. O que pensa?

 

O que quer dizer? e : Encontrado apenas :: contexto

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


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

este operador tornou-se moda ultimamente, está a ser utilizado cada vez com mais frequência

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

Obrigado pelas respostas ilustrativas. Mas há questões...

1. O que é que isso significa ? e : Encontrado apenas :: contexto

-->

Esta é uma forma abreviada. Mesmo assim:



2. Que elemento de entrada define a entrada [h] em MT4

-->

Penso que o InpBarTime. O que pensa?

Dificilmente penso, de momento, no sentido habitual desse estado.... Estou a BLONDING com um macaco na mão))))

Declarou globalmenteInpBarTime=3; E em MT4 [h] é daqui até lá normalmente em loop (para o limite ......)

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

Encontrei o Indicador Market_Sessions There's an interesting design there.... Trying to get the rest of the internal dialogue in my head into it...))))

Arquivos anexados:
 
kopeyka2:

Mal estou a pensar agora, no sentido habitual do termo.... Sou loira com um macaco na mão))))

E escreveu globalmente desta forma

Encontrei o Indicador Market_Sessions There's an interesting construction there.... Trying to get the rest of the internal dialogue in my head into it...))))

Ah, desculpe, deveria ter sido assim escrito:

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

O que quer dizer? e : Encontrado apenas :: contexto


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

este operador tem vindo a tornar-se moda ultimamente, cada vez mais utilizado

OK!!!


Acertei?

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


Será que acertei?

Não acertou. Dei-vos um exemplo de trabalho. Execute-o. Esqueça a escrita ao estilo MQL4. Comece a estudar o código e veja a ajuda.

Razão: