Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 304

 
Alexey Viktorov:
Artyom Trishkin:
Obrigado, por favor, me perdoem, não formulei meu pensamento corretamente.
Quero obtero preço de abertura do ano, não especificando uma determinada data, mas passando um índice, como se houvesse uma barra de 1 ano no terminal. O mês passado tem índice 1, também faz o ano passado índice 1.ajuda para implementar isto?
 
mila.com:
Obrigado, por favor, me perdoem, eu formulei o pensamento incorretamente.
Eu quero obtero preço de abertura do ano, não especificando uma data específica, mas passando um índice, como se houvesse uma barra de 1 ano no terminal. O mês passado tem índice 1, a mesma forma de fazer o índice do ano passado 1.ajuda para implementar isto?

Muito simples.

double f(int numYear)
 {
   MqlDateTime newYear = {0}; // Обнулить обязательно.
   newYear.year = numYear;
   double priceOpenYear[1];
   CopyOpen(_Symbol, PERIOD_MN1, StructToTime(newYear), 1, priceOpenYear);
   return(priceOpenYear[0]);
}

E não depende, de forma alguma, do dia de trabalho/não-trabalho. PERÍODO_MN1 é sempre o primeiro dia do mês, também PERÍODO_W1 é sempre domingo.

 

Gente!

Um dos clientes está reclamando que os EAs estão caindo quando o preço se move acentuadamente. Isto aconteceu com diferentes empresas de corretagem.

Não há nada em seu código que possa causar eliminação. Eu mesmo nunca enfrentei este problema.

Qual pode ser o problema?

 
Vladimir Tkach:

Gente!

Um dos clientes está reclamando que os EAs estão caindo quando o preço se move acentuadamente. Isto aconteceu com diferentes empresas de corretagem.

Não há nada em seu código que possa causar eliminação. Eu mesmo nunca enfrentei este problema.

Qual pode ser o problema?


Você não vê nada nos registros? Nem mesmo sobre o descarregamento?

 
Aleksey Vyazmikin:

Não há nada direto nos troncos? Nem mesmo sobre o descarregamento?


2017.08.08 23:31:29.035 DEBUT 3.0 GBPUSD,M1: removido

 
Vladimir Tkach:

2017.08.08 23:31:29.035 DEBUT 3.0 GBPUSD,M1: removido


Se o especialista não usa padrões - reabre-se em seu gráfico, então não tenho hipóteses...

 
Aleksey Vyazmikin:

Se o especialista não usar padrões - reabre em seu próprio quadro, então não tenho hipóteses...

Vladimir Tkach:

2017.08.08 23:31:29.035 DEBUT 3.0 GBPUSD,M1: removido

Existe memória livre suficiente? O especialista não entupir a RAM com nada?

 

Boa noite.

Por favor, me diga porque a funçãoOrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES) não funciona.

Ele retorna um erro: a expressão não pôde ser avaliada. Bilhete - o valor é preenchido.

Eu não consigo entender nada ((((

Obrigado.

 
rabanik:

Boa noite.

Por favor, me diga porque a função OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES) não funciona.

Ele retorna um erro: a expressão não pôde ser avaliada. Bilhete - o valor é preenchido.

Eu não consigo entender nada ((((

Obrigado.

Ao selecionar uma ordem por bilhete, não precisamos especificar pool - MODE_TRADES é redundante aqui - este parâmetro é ignorado ao selecionar por bilhete e a ordem é selecionada a partir de uma das duas listas - da lista de posições fechadas ou da lista de posições de mercado - dependendo se a posição está fechada ou não ainda.

Após a seleção bem sucedida de uma ordem com base no bilhete, para entender de qual das duas listas a ordem é selecionada, é necessário verificar o tempo de fechamento da posição - se for maior que zero, então a ordem já foi fechada e foi selecionada da lista de ordens históricas, caso contrário - a ordem ainda está no mercado.

Mas para entender qual é seu erro, você precisa anexar o código - dar mais informações, porque nesta linha, em princípio, não há erro (exceto que você não verifica o resultado do retorno da função, você usa um modificador que é ignorado neste caso e não há ";" após o colchete de fechamento).

 
Alexey Viktorov: Muito simples.

Obrigada, mas para mim não tem retorno. Qual poderia ser a razão?

Comment("OpenYear : ",DoubleToString(f(1))); 
Razão: