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

 
barudkinarseniy:
Não vejo quaisquer problemas, o meu Expert Advisor apenas trabalha de tal forma que depois de fechar um negócio lucrativo ou de perder o negócio, abre imediatamente as encomendas e o número do bilhete na impressora é muito grande, por isso pensei que não teria de o recarregar manualmente, talvez possa ser feito automaticamente. Devo agradecer-vos também por esta função))
Se olhar para as 1000 encomendas num ano, não é nada, basta olhar para os tickers em contas reais. Eu tenho, por exemplo, o último 10179697. Geralmente, os bilhetes são do tipo int, daí que o valor máximo seja 2 147 483 647.
 
Alexey Volchanskiy:
1000 encomendas num ano não é nada, vejam os bilhetes em contas reais. Eu tenho, por exemplo, o último 10179697. Geralmente, os bilhetes são do tipo int, portanto o valor máximo é de 2 147 483 647.
E o que será se o valor máximo for atingido?
 
em MQL5 o bilhete é do tipo ulong, estará sem fôlego para exceder
 
barudkinarseniy:
E o que acontece se atingir o valor máximo?
Os números para ordens e negócios são atribuídos pelo corretor, não pela sua EA, e a EA certificar-se-á de que não excedem o valor máximo. ) Esta não é a sua dor de cabeça.
 
Obrigado pela informação útil)))) Alguma ideia de como verificar as encomendas limite com AccountFreeMarginCheck?
 

Tirei o Consultor Especialista Demark padrão da biblioteca, parece funcionar. Comecei a afiná-lo.

duplo DU = iCustom(NULL, 0, "itdlines", Nível, 0, 0);

duplo DD = iCustom(NULL, 0, "itdlines", Nível, 1, 0);

duplo DU1 = iCustom(NULL, 0, "itdlines", Nível, 0, 1);

duplo DD1 = iCustom(NULL, 0, "itdlines", Nível, 1, 1);

Acrescentei cálculos e dados de saída adicionais a este indicador e este funciona da seguinte forma

duplo DU = iCustom(NULL, 0, "itdlines", Nível, 0, 0);

duplo DD = iCustom(NULL, 0, "itdlines", Nível, 1, 0);

duplo DU1 = iCustom(NULL, 0, "itdlines", Nível, 0, 1);

duplo DD1 = iCustom(NULL, 0, "itdlines", Nível, 1, 1);

duplo LUN = iCustom(NULL, 0, "itdlines", Nível, 2, 0);

duplo LDN = iCustom(NULL, 0, "itdlines", Nível, 3, 0);

duplo KUN = iCustom(NULL, 0, "itdlines", Nível, 4, 0);

duplo KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0);

e começa a atrasar-se, ou seja, recebo erros de dados inválidos.

A questão é se eu criei o mesmo indicador 8 vezes e obtive a matriz certa a partir dele, ou estou errado? Ou será que estou errado, é criado uma vez um indicador?
Se estou certo, como posso criá-lo uma vez e obter dele os dados necessários?

 

Olá colegas!

Aconselhar sobre a estrutura de um pedido comercial para fechar uma posição em MT5 com uma sebe.

Obrigado.

 
Nikita Solodko:

Olá colegas!

Aconselhar sobre a estrutura de um pedido comercial para fechar uma posição em MT5 com uma sebe.

Obrigado.

Pode usar o método
bool  PositionClose( 
   const ulong   ticket,                  // тикет позиции 
   ulong         deviation=ULONG_MAX      // отклонение 
   )
da biblioteca padrão da classe CTrade
 
Sergey Gritsay:
Pode usar o método da biblioteca padrão da classe CTrade
Obrigado, claro, mas não estou a usar classes comerciais, prefiro usar a função OrderSend(). E tudo estava bem antes da possibilidade de cobertura, mas agora na estrutura do pedido comercial apareceu o elemento"posição", como indicado na ajuda, para indicar uma posição específica ao modificá-la e fechá-la, só que não diz como fechar esta posição (tipo de operação, etc.).
 
Milleras1981:

Tirei a EA padrão para a demarcação da biblioteca, parece funcionar. Comecei a afiná-lo.

duplo DU = iCustom(NULL, 0, "itdlines", Nível, 0, 0);

duplo DD = iCustom(NULL, 0, "itdlines", Nível, 1, 0);

duplo DU1 = iCustom(NULL, 0, "itdlines", Nível, 0, 1);

duplo DD1 = iCustom(NULL, 0, "itdlines", Nível, 1, 1);

Acrescentei cálculos e dados de saída adicionais a este indicador e este funciona da seguinte forma

duplo DU = iCustom(NULL, 0, "itdlines", Nível, 0, 0);

duplo DD = iCustom(NULL, 0, "itdlines", Nível, 1, 0);

duplo DU1 = iCustom(NULL, 0, "itdlines", Nível, 0, 1);

duplo DD1 = iCustom(NULL, 0, "itdlines", Nível, 1, 1);

duplo LUN = iCustom(NULL, 0, "itdlines", Nível, 2, 0);

duplo LDN = iCustom(NULL, 0, "itdlines", Nível, 3, 0);

duplo KUN = iCustom(NULL, 0, "itdlines", Nível, 4, 0);

duplo KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0);

e começa a atrasar-se, ou seja, recebo erros de dados inválidos.

A questão é se eu criei o mesmo indicador 8 vezes e obtive a matriz certa a partir dele, ou estou errado? Ou será que estou errado, é criado uma vez um indicador?
Se estou certo, como posso criá-lo uma vez e obter dele os dados necessários?

Antes de o melhorar, o Expert Advisor recebeu 4 valores: do buffer indicador zero da última e penúltima barra, e também do primeiro buffer indicador, enquanto tenta receber informações de 6 buffers indicadores... Tem a certeza de que os tem no indicador? O que está a tentar alcançar?