Com isto=(data/hora)OrderGetInteger. estamos a dizer à OrderGetInteger para tomar o tipo dedata/horaexplícita.?
Esta regra aplica-se a todas as funções que não têm um tipo explícito ou que não correspondem ao tipo da variável a ser atribuída? ou é apenas um caso especial?
Quero compreender se isto é uma regra ou apenas um caso especial a recordar.
Não se trata de um caso especial. Se escrever um valor de um tipo diferente numa variável de um tipo, o compilador avisá-lo-á sobre isso. E cabe-lhe a si decidir de que variável tirar os dados.
No seu caso - ao devolver um valor de data/hora explícito de uma função com o tipo longo, claro, é seguro e deve especificar explicitamente o tipo de valor que obtém da função.
Mas se se levar um valor duplo para int-variable, então cabe-lhe a si compreender se os dados não serão perdidos por tal tarefa. Se souber com certeza que o valor de retorno caberá em int, então especifique int explicitamente, se não souber, então tome-o como uma variável dupla.
Este não é um caso especial. Se escrever um valor de outro tipo numa variável de um tipo, o compilador avisá-lo-á sobre isso. E cabe-lhe a si decidir de que variável tirar os dados.
No seu caso - ao devolver um valor de data/hora explícito de uma função com o tipo longo, é claro que é seguro e deve especificar explicitamente o tipo do valor que obtém da função.
Mas se se tomar um valor duplo para int-variable, então deve compreender por si próprio se haverá ou não perda de dados durante tal atribuição. Se souber com certeza que o valor devolvido caberá em int, especifique int explicitamente, se não souber, leve-o para uma variável dupla.
Já dominei MT4, mas MT5 .... não compreendo((( Não há muitos exemplos, e aqueles que não explicam o que preciso.
Aconselhar como utilizar o MT5 com algumas amostras do código MT4 ou dar-me alguns links para os indicadores com casos semelhantes.
1.
2.
3. não entendo como fazer comparação de elementos com o cabo do iMa. Eu conheço as estruturas!!! Experimentei-o, mas MT5 não é tão claro como MT4.
As diferenças gerais de programação em MT5 já são entendidas! Mas ainda não consigo programar (os dados não somam)))))
É importante para mim OUVIR na minha cabeça estas partes e módulos de MT5.... Em MT4 entendo a lógica rapidamente, mas em MT5 apenas "cubos" ....
Obrigado pelas dicas))))
Se precisar de comparar várias séries cronológicas de um período de tempo, trabalhe com um array comoMqlRates-> e useCopyRates para preencher este array.
//+------------------------------------------------------------------+//| Test_en.mq5 |//+------------------------------------------------------------------+#property script_show_inputs//--- input parametersint InpBarTime=3; // Bar where we compare the time//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
MqlRates rates[];
ArraySetAsSeries(rates,true);
int start_pos =0; // start position int count=(InpBarTime<10)?10:InpBarTime+1; // data count to copy int result=CopyRates(Symbol(),Period(),start_pos,count,rates);
if(result!=count)
{
Print("Ordered: ",IntegerToString(count),", received ",IntegerToString(result));
}
//--- 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 MqlDateTimeif(Period()<=PERIOD_H4 && SDateTime.hour==0 && SDateTime.min==0)
{
}
}
//+------------------------------------------------------------------+
Já dominei MT4, mas MT5 .... não compreendo((( Não há muitos exemplos, e aqueles que não explicam o que preciso.
Aconselhar como utilizar o MT5 com algumas amostras do código MT4 ou dar-me alguns links para os indicadores com casos semelhantes.
1.
2.
3. não entendo como fazer comparação de elementos com o cabo do iMa. Eu conheço as estruturas!!! Experimentei-o, mas MT5 não é tão claro como MT4.
As diferenças gerais de programação em MT5 já são entendidas! Mas ainda não consigo programar (os dados não somam)))))
É importante para mim OUVIR na minha cabeça estas partes e módulos de MT5.... Em MT4 entendo a lógica rapidamente, mas em MT5 apenas "cubos" ....
Obrigado pelas dicas))))
Trabalho com indicadores - utilizando o códigoMA Force como exemplo
Passo 1: a nível de programa global declarar a variável handle_iMA, que armazenará o manípulo indicador
int handle_iMA; // variable for storing the handle of the iMA indicator
Passo 2: criar um indicador no OnInit() e devolver a variávelhandle_iMA
//--- create handle of the indicator iMA
handle_iMA=iMA(m_symbol.Name(),Inp_MA_period,Inp_MA_ma_period,Inp_MA_ma_shift,
Inp_MA_ma_method,Inp_MA_applied_price);
//--- if the handle is not created if(handle_iMA==INVALID_HANDLE)
{
//--- tell about the failure and output the error code PrintFormat("Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d",
m_symbol.Name(),
EnumToString(Inp_MA_period),
GetLastError());
//--- the indicator is stopped early return(INIT_FAILED);
}
Passo 3: fazer um pedido em OnTick() - copiar uma certa quantidade de dados(contagem) do indicador para a matrizma[].
Obrigado pelo exemplo.
Poderia por favor esclarecer... se bem entendi.
Com isto=(data/hora)OrderGetInteger. estamos a dizer à OrderGetInteger para tomar o tipo dedata/horaexplícita.?
Esta regra aplica-se a todas as funções que não têm um tipo explícito ou que não correspondem ao tipo da variável a ser atribuída? ou é apenas um caso especial?
Quero compreender se isto é uma regra ou apenas um caso especial a recordar.
Não se trata de um caso especial. Se escrever um valor de um tipo diferente numa variável de um tipo, o compilador avisá-lo-á sobre isso. E cabe-lhe a si decidir de que variável tirar os dados.
No seu caso - ao devolver um valor de data/hora explícito de uma função com o tipo longo, claro, é seguro e deve especificar explicitamente o tipo de valor que obtém da função.
Mas se se levar um valor duplo para int-variable, então cabe-lhe a si compreender se os dados não serão perdidos por tal tarefa. Se souber com certeza que o valor de retorno caberá em int, então especifique int explicitamente, se não souber, então tome-o como uma variável dupla.
Este não é um caso especial. Se escrever um valor de outro tipo numa variável de um tipo, o compilador avisá-lo-á sobre isso. E cabe-lhe a si decidir de que variável tirar os dados.
No seu caso - ao devolver um valor de data/hora explícito de uma função com o tipo longo, é claro que é seguro e deve especificar explicitamente o tipo do valor que obtém da função.
Mas se se tomar um valor duplo para int-variable, então deve compreender por si próprio se haverá ou não perda de dados durante tal atribuição. Se souber com certeza que o valor devolvido caberá em int, especifique int explicitamente, se não souber, leve-o para uma variável dupla.
Obrigado pela sua resposta detalhada. Já está.
(Boa tarde a todos vós)))
Já dominei MT4, mas MT5 .... não compreendo((( Não há muitos exemplos, e aqueles que não explicam o que preciso.
Aconselhar como utilizar o MT5 com algumas amostras do código MT4 ou dar-me alguns links para os indicadores com casos semelhantes.
1.
2.
3. não entendo como fazer comparação de elementos com o cabo do iMa. Eu conheço as estruturas!!! Experimentei-o, mas MT5 não é tão claro como MT4.
As diferenças gerais de programação em MT5 já são entendidas! Mas ainda não consigo programar (os dados não somam)))))
É importante para mim OUVIR na minha cabeça estas partes e módulos de MT5.... Compreendo a lógica rapidamente em MT4, mas MT5 apenas "cubos" ....
Obrigado pelas dicas))))
Por favor, mude o lote fixo do meu robot para % lote. Código em privado.
Freelance.
(Boa tarde a todos vós)))
Já dominei MT4, mas MT5 .... não compreendo((( Não há muitos exemplos, e aqueles que não explicam o que preciso.
Aconselhar como utilizar o MT5 com algumas amostras do código MT4 ou dar-me alguns links para os indicadores com casos semelhantes.
1.
2.
3. não entendo como fazer comparação de elementos com o cabo do iMa. Eu conheço as estruturas!!! Experimentei-o, mas MT5 não é tão claro como MT4.
As diferenças gerais de programação em MT5 já são entendidas! Mas ainda não consigo programar (os dados não somam)))))
É importante para mim OUVIR na minha cabeça estas partes e módulos de MT5.... Compreendo a lógica rapidamente em MT4, mas em MT5 apenas "dados"....
Obrigado pelas dicas))))
Primeiro, leia atentamente a documentação. A secção"Acesso a séries cronológicas e indicadores".
Deve ser claro como obter a hora, "colocá-la" na estrutura, e depois obter hora e minuto separadamente.
Há também o CopyBuffer para obter valores indicadores pelo seu cabo.
Se ainda tiver dúvidas...
(Boa tarde a todos vós)))
Já dominei MT4, mas MT5 .... não compreendo((( Não há muitos exemplos, e aqueles que não explicam o que preciso.
Aconselhar como utilizar o MT5 com algumas amostras do código MT4 ou dar-me alguns links para os indicadores com casos semelhantes.
1.
2.
3. não entendo como fazer comparação de elementos com o cabo do iMa. Eu conheço as estruturas!!! Experimentei-o, mas MT5 não é tão claro como MT4.
As diferenças gerais de programação em MT5 já são entendidas! Mas ainda não consigo programar (os dados não somam)))))
É importante para mim OUVIR na minha cabeça estas partes e módulos de MT5.... Em MT4 entendo a lógica rapidamente, mas em MT5 apenas "cubos" ....
Obrigado pelas dicas))))
Se precisar de comparar várias séries cronológicas de um período de tempo, trabalhe com um array comoMqlRates-> e useCopyRates para preencher este array.
É conveniente armazenar a hora numa estruturaMqlDateTime-> usarTimeToStruct para converter a hora dadata para a estruturaMqlDateTime.
Agora o seu exemplo 1 será parecido com este:
Pergunta: isto causa erros ou é normal dentro dos limites de um código ou mesmo de uma função?
(Boa tarde a todos vós)))
Já dominei MT4, mas MT5 .... não compreendo((( Não há muitos exemplos, e aqueles que não explicam o que preciso.
Aconselhar como utilizar o MT5 com algumas amostras do código MT4 ou dar-me alguns links para os indicadores com casos semelhantes.
1.
2.
3. não entendo como fazer comparação de elementos com o cabo do iMa. Eu conheço as estruturas!!! Experimentei-o, mas MT5 não é tão claro como MT4.
As diferenças gerais de programação em MT5 já são entendidas! Mas ainda não consigo programar (os dados não somam)))))
É importante para mim OUVIR na minha cabeça estas partes e módulos de MT5.... Em MT4 entendo a lógica rapidamente, mas em MT5 apenas "cubos" ....
Obrigado pelas dicas))))
Trabalho com indicadores - utilizando o códigoMA Force como exemplo
Passo 1: a nível de programa global declarar a variável handle_iMA, que armazenará o manípulo indicador
Passo 2: criar um indicador no OnInit() e devolver a variávelhandle_iMA
Passo 3: fazer um pedido em OnTick() - copiar uma certa quantidade de dados(contagem) do indicador para a matrizma[].
Passo 4: trabalhar com a matriz de dados indicadores e comparar os seus elementos:
Pergunta: isto causa erros ou é normal dentro dos limites de um código ou mesmo de uma função?
É melhor não confundir e usar uma abordagem: ou a classe comercialCSymbolInfo ou funções de sistema como SymbolInfoXXXX.