[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 219

 

Desculpe a pergunta tola: por que o indicador não exibe valores inferiores a 0,0001?

Enquanto estava escrevendo o indicador, decidi verificar um dos componentes através do buffer. Não entendo algo, mas parece que os números com 5 dígitos após o ponto não são sorteados (me corrija se estiver errado), ok, que não sejam sorteados, mas serão contados no indicador então?

 
ask:

Desculpe a pergunta tola: por que o indicador não exibe valores inferiores a 0,0001?

Enquanto estava escrevendo o indicador, decidi verificar um dos componentes através do buffer. Não entendo algo, mas parece que os números com 5 dígitos após o ponto não são sorteados (me corrija se estiver errado), ok, que não sejam sorteados, mas serão contados no indicador então?

https://docs.mql4.com/ru/convert/DoubleToStr
 
 
Shniperson:
Você pode sugerir um "Expert Advisor" ou um roteiro... que mostraria em grandes números quantos pips e perda de dinheiro/lucro do comércio atual (aberto) e qual é o saldo... porque eu mesmo não consigo encontrá-lo.

Veja aqui: https://docs.mql4.com/ru/common/Comment Trabalhe!
 
sergeev:

ver GetTickCount... ou consulte a função Windows

Obrigado pela resposta. Mas eu realmente não entendo como usá-lo, ele retorna o tempo desde o início do sistema (ou seja, desde sua chamada como eu o entendo)...

Ou deve ser chamado antes do tique, e depois subtrair o resultado?

FileSeek(ExtHandle,0,SEEK_END);

time=GetTickCount();

FileWrite(ExtHandle, TimeToStr(TimeCurrent(), TIME_DATE | TIME_SECONDS),time - GetTickCount(),Bid, Ask, iVolume(Symbol(), NULL, 0));

 

Olá Companheiros Membros do Fórum!

Estou tendo problemas com isto, alguém pode me ajudar? Obrigado de antemão. O problema é este. Se eu quiser colocar uma nova ordem pendente, em meu Consultor Especialista, eu devo especificar a condição. A condição é o momento da transformação da ordem pendente na ordem de mercado, ou seja, deixe-nos ter uma ordem SellStop, assim que ela se tornar uma ordem de mercado, devemos abrir uma nova ordem SellStop a uma certa distância, etc.

Obrigado por sua consideração.

P.S. talvez você possa aconselhar onde procurar.

 
Gerkl:

Olá Companheiros Membros do Fórum!

Estou tendo problemas com isto, alguém pode me ajudar? Obrigado de antemão. O problema é este. Se eu quiser colocar uma nova ordem pendente, em meu Consultor Especialista, eu devo especificar a condição. A condição é o momento da transformação da ordem pendente na ordem de mercado, ou seja, suponha que tenhamos uma ordem SellStop, assim que ela se tornar uma ordem de mercado, devemos abrir uma nova ordem SellStop a uma certa distância, etc.

Obrigado por sua consideração.

P.S., talvez você possa me dizer onde procurar.

por exemplo, desta forma:

ao fazer um pedido, você o armazena em uma variável global:

int ticket = 0;

ticket = OrderSend(...);

e, em seguida, verificar se ela abriu ou não:

if (ticket > 0)
{
   if (OrderSelect(ticket, SELECT_BY_TICKET);        // выбираем ордер
      if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))     // проверяем его тип
      {
         // действия которые нужно выполнить после открытия ордера
      }
}
 
Obrigado pelo conselho, vamos tentar.
ilunga:

assim:

Quando você faz um pedido, você armazena o pedido em uma variável global:

e depois verificar se ela abriu ou não:

 
Gerkl:

Olá Companheiros Membros do Fórum!

Estou tendo problemas com isto, alguém pode me ajudar? Obrigado antecipadamente. O problema é este. Devo indicar em meu consultor especializado a condição de abrir uma nova ordem pendente. A condição é o momento da transformação da ordem pendente na ordem de mercado, ou seja, deixe-nos ter uma ordem SellStop, assim que ela se tornar uma ordem de mercado, devemos abrir uma nova ordem SellStop a uma certa distância, etc.

Obrigado por sua consideração.

P.S. talvez você possa aconselhar onde procurar.


Se você só pode ter 1 pedido SellStop aberto, então passe por todos os pedidos abertos

while (N<=OrdersTotal())
 {
 SelectOrder(OrdersTotal()-1+N,Select by pos, mode_trades);
 if (OrderType==OP_SELLLIMIT)
  {
  M=0;//типа SELLLIMIT найден
  }else
  {
  M=1;//selllimit не найден
  }
 N++;
 }
if M==1
 {
 OrderSend(...OP_SELLLIMIT...);
 }

Assim, há muitos erros - estou com pressa, espero que você entenda o ponto.

 
Você pode me dizer como simular pressionando a tecla Home para carregar rapidamente os dados históricos?
Razão: