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

 
Vitalie Postolache:
Urgente a real!!!!!!!!!!!!!
não tão urgente, uma cópia para mim primeiro)
 
Treder9:
Gostaria de receber um verdadeiro por 50 dólares.

Pode-se obter uma boa subida de uma libra como essa.

♪ mas ninguém o pode fazer ♪

Eu respondo!
 
Taras Slobodyanik:

É necessário acrescentar um parâmetro

request.type_time=ORDER_TIME_DAY;


Obrigado, só gostaria de saber como acrescentar...

 

Não consigo perceber como expressar Alto[] em cinco????

double High[]
double High[];
int count;        // сколько копируем
ArraySetAsSeries(High,true);
CopyHigh(_Symbol,_Period,0,count,High);
 
-Aleks-:

Não consigo perceber como expressar alto[] em 5????

Exprimo-o desta forma, pode não ser escrito correctamente, mas funciona:

double iOpen(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _Open[];
  double open=0;
   ArraySetAsSeries(_Open,true);
   int copied=CopyOpen(symb,tf,0,Bars(symb,tf),_Open);
   if(copied>0 && index<copied) open=_Open[index];
   return(open);
}
double iClose(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _Close[];
  double close=0;
   ArraySetAsSeries(_Close,true);
   int copied=CopyClose(symb,tf,0,Bars(symb,tf),_Close);
   if(copied>0 && index<copied) close=_Close[index];
   return(close);
}
double iHigh(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _High[];
  double high=0;
   ArraySetAsSeries(_High,true);
   int copied=CopyHigh(symb,tf,0,Bars(symb,tf),_High);
   if(copied>0 && index<copied) high=_High[index];
   return(high);
}
double iLow(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _Low[];
  double low=0;
   ArraySetAsSeries(_Low,true);
   int copied=CopyLow(symb,tf,0,Bars(symb,tf),_Low);
   if(copied>0 && index<copied) low=_Low[index];
   return(low);
}
 
-Aleks-:

Não consigo perceber como expressar alto[] em 5????

Taxas deMqlRRates[];
int copied=CopyRates(NULL,0,0,100,rates);


então, onde for necessário, chamar: taxas[x].altas.
 
Vitaly Muzichenko:

Exprimo-o desta forma, pode não estar escrito correctamente, mas funciona:

E eu fiz - mas porquê estragar tanto em cinco....

Vitalie Postolache:

Taxas deMqlRRates[];
int copied=CopyRates(NULL,0,0,100,rates);


então, quando necessário, chamada: taxas[x].altas.

E, por regra, o que é que as pessoas copiam todos os valores? Qual é de todo a vantagem desta cópia? Consome menos memória do que em 4?

Caiu num estupor de

Deve-se notar que em MQL5 os valores numéricos de constantes de períodos gráficos (a partir de H1) não coincidem com o número de minutos numa barra (por exemplo, em MQL5 valor numérico de PERÍODO_H1=16385, enquanto em MQL4 PERÍODO_H1=60). Esta circunstância deve ser tida em conta na transferência para MQL5, se tiverem sido utilizados valores numéricos para cálculos no programa em MQL4.

Para saber o número de minutos de um período específico de um gráfico, dividir o valor da função PeriodSeconds por 60.

De onde vem o número 16385 - onde está a lógica?

 
Vitalie Postolache:

Taxas deMqlRRates[];
int copied=CopyRates(NULL,0,0,100,rates);


então onde for necessário chamar: taxas[x].altas.

OK, tem uma solução para o carácter actual, eu tenho uma recuperação de múltiplos símbolos.

Pergunta: a minha escrita está correcta, ou existe um erro no código?

-Aleks-:

Estou confuso por

Deve-se notar que em MQL5 os valores numéricos de constantes de períodos gráficos (a partir de H1) não coincidem com o número de minutos numa barra (por exemplo, em MQL5 o valor numérico de PERÍODO_H1=16385, enquanto em MQL4 PERÍODO_H1=60). Esta circunstância deve ser tida em conta na transferência para MQL5, se tiverem sido utilizados valores numéricos para cálculos no programa em MQL4.

Para saber o número de minutos de um período específico de um gráfico, dividir o valor da função PeriodSeconds por 60.

De onde vem o número 16385 - onde está a lógica?

Deve estudar a física quântica, que deve ser de onde vem o valor
 
-Aleks-:

Também eu - mas porquê estragar tudo na cinco....

E, o que é que as pessoas tendem a copiar todos os valores? Qual é de todo a vantagem desta cópia? Consome menos memória do que em 4?

Porquê todos? Informação completa para 100 barras, de cada vez (claro, pode especificar menos ou mais barras). Útil quando se precisa de mais do que apenas Alto.

Mas pode ser descarregado separadamente, comoVitaly Muzichenko demonstrou.

Vitaly Muzichenko:

Ok, tem a solução para o símbolo actual, eu tenho uma capacidade de multisímbolos.

Pergunta: é correcto, ou há um erro no meu código?

É fácil "transformar" esta solução numa solução de múltiplos símbolos, apenas especificando um carácter em vez de NULL. Bem, e TF, se necessário, tal como nos seus exemplos.

Em relação à correcção do código, existem exemplos na ajuda( verCopyHigh ), apenas arrays a nível global.

 
-Aleks-:

Cai em desordem .........

Há isto.

É um pouco picuinhas no início. Contudo, a reescrita a partir do MT4 não é problema.

Não sei de outros, mas o 4-Rka pensa mais depressa.

E o que foi feito no 4-Rka vai para o Mercado sem qualquer problema, enquanto que reescrito de MT4 para MT5 por vezes não passa, só porque o Mercado não tem tempo para testar um produto idêntico no seu tempo atribuído.