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

 
LRA:
A questão é relevante, por exemplo, para um sistema de treinamento. Para obter a distribuição, instale o MT4 em um pen drive. Ou copiar a pasta do terminal em um pen drive. Então esta pasta pode ser copiada para qualquer número de computadores a qualquer número de vezes. Tal distribuição é útil para fins de backup, backup, restauração... É melhor ligar o terminal com /portátil, caso contrário ele criará pastas inúteis inconvenientes em seu computador. Esta questão é abordada com mais detalhes em outro tópico no link a seguir

Como configurá-lo?

O instalador que eu descarrego não instala nada da Internet.

 

Quando inicio o instalador, aparece uma janela mostrando um indicador de download de arquivo.

Então outra janela aparece

O instalador exige que eu especifique as configurações de proxy, que eu não tenho.

 
 
polpolpol:

Quando inicio o instalador, aparece uma janela mostrando um indicador de download de arquivo.

Então outra janela aparece

O instalador exige que eu especifique as configurações de proxy, que eu não tenho.

Eu tenho que desligar o antivírus e reinicializá-lo a partir da memória.
 

Olá. Será que a seguinte entrada estará correta? A função quando chamada deve apagar todas as ordens pendentes.

void DeletedOrders()
         {
         for (int i=0; i<=OrdersTotal(), i++)
             {
             if (OrderSelect(i,SELECT_BY_POS))
                type=OrderType();
             if (type==2 || type==3 || type==4 || type==5)
                OrderDelete(i,clrNONE);
             }
         return();
         }  
 
bobrush:

Olá. Será que a seguinte entrada estará correta? A função deve apagar todas as ordens pendentes quando chamadas.

Não, é claro que não. Devemos especificar o bilhete, não o número do pedido no laço:OrderDelete(OrderTicket(),clrNONE);

E a condição é suficiente:if(type>1).

Eu também recomendo que você imprima o código de erro com mais freqüência - isso ajuda.

Oh, sim, as funções do tipo "vazio" não devem retornar nada, não precisamos retornar() na execução normal, somente quando a saída prematura da função é proporcionada por qualquer condição.

 
bobrush:

Olá. Será que a seguinte entrada estará correta? A função quando chamada deve apagar todas as ordens pendentes.

Tenha em mente que ainda existem tipos de pedidos não documentados com tipo=6 e com tipo=7 respectivamente para operações sobre saldo e sobre crédito em conta.

Em vez de i<=OrdensTotal(),i<OrdensTotal() seria melhor, sem chamar OrderSelect desnecessariamente

E o laço deve ser passado do final para o início, caso contrário, se a matriz de pedidos tiver tempo de ser atualizada depois que o i-ésimo elemento nele for removido, o antigo i+1º elemento no i-ésimo lugar será pulado. É melhor começar do final.

Se considerarmos que os desenvolvedores não garantem nenhuma ordem na matriz de ordens, não podemos realmente garantir que a seqüência de ordens na matriz deles permanecerá a mesma após a exclusão de uma delas. Isto seria bastante confiável. Fazemos loop através do loop até que a ordem pendente seja detectada. O loop é encerrado. Eliminar a ordem que encontramos. Esperamos que o Sleep (100) atualize o conjunto de pedidos. Depois voltamos ao loop para encontrar a ordem pendente, mas com uma nova matriz de ordens. Realizamos uma busca completa, mas não retomando o ciclo anterior. E temos que fazer isso em triplicata (loop para encontrar, apagar uma ordem, esperar que a matriz seja atualizada) até que a ordem pendente não possa ser encontrada.

 
evillive:

Não, é claro que não. O bilhete deve ser especificado, não o número do pedido no laço:OrderDelete(OrderTicket(),clrNONE);

E a condição é suficiente:if(type>1).

Eu também recomendo que você imprima o código de erro com mais freqüência - isso ajuda.

Oh, sim, as funções do tipo "vazio" não devem retornar nada, não precisamos retornar() na execução normal, somente quando a saída prematura da função é proporcionada por qualquer condição.


Obrigado!
 
Vlad143:

Observe que ainda existem tipos de pedidos não documentados com tipo=6 e com tipo=7 respectivamente para transações sobre saldo e sobre crédito em conta.

Em vez de i<=OrdensTotal(),i<OrdensTotal() seria melhor, sem chamar OrderSelect desnecessariamente

E o laço deve ser passado do final para o início, caso contrário, se a matriz de pedidos tiver tempo de ser atualizada depois que o i-ésimo elemento nele for removido, o antigo i+1º elemento no i-ésimo lugar será pulado. É melhor começar do final.

Se considerarmos que os desenvolvedores não garantem nenhuma ordem na matriz de ordens, não podemos realmente garantir que a seqüência de ordens na matriz deles permanecerá a mesma após a exclusão de uma delas. Isto seria bastante confiável. Fazemos loop através do loop até que a ordem pendente seja detectada. O loop é encerrado. Eliminar a ordem que encontramos. Esperamos que o Sleep (100) atualize o conjunto de pedidos. Depois voltamos ao loop para encontrar a ordem pendente, mas com uma nova matriz de ordens. Realizamos uma busca completa, mas não retomando o ciclo anterior. E temos que fazer isso em triplicata (loop para encontrar, apagar uma ordem, esperar que a matriz seja atualizada) até que a ordem pendente não possa ser encontrada.


Isto é, para(OrdensTotal()-1,i=0,i--) e no final do loop, dormir e quebrar?
 
Vlad143: Esperamos que o Sleep (100) atualize o conjunto de pedidos.
IMHO, IMHO, minha opinião pessoal em vez de Dormir (100) é melhor enquanto(!RefreshRates() ); ponto-e-vírgula no final.