Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Pergunta sobre a função Sleep(). Compreendo correctamente que a utilização desta função num Expert Advisor interrompe apenas a execução desta EA e transfere recursos da CPU (kernel) para as tarefas seguintes na lista de tarefas deste kernel? Por outras palavras, é correcto que a função Sleep() não abranda o próprio fio onde o Expert Advisor está a ser processado, mas funciona como um interruptor entre o Expert Advisor actual e outros programas captados por um kernel em particular?
Tanto quanto sei, se eu definir Sleep(0), a EA será interrompida por um número especificado de milissegundos.
Ao mesmo tempo, tanto quanto sei, cada Expert Advisor é um fio separado e cada um desses fios reclama tempo de processamento (a verificação do estado do fio é realizada a cada 100 milissegundos de acordo com a ajuda).
Assim, se um fio estiver inactivo, qualquer que seja a razão, o tempo de CPU é passado para outro fio e o estado do fio que "decidiu dormir" é verificado após 100 milissegundos.
PS
Quanto à distribuição de núcleos entre fios, cabe aos programadores.
Pergunta sobre a função Sleep(). Compreendo correctamente que a utilização desta função num Expert Advisor interrompe apenas a execução dessa EA, e transfere recursos da CPU (kernel) para as tarefas seguintes na lista de tarefas desse kernel? Por outras palavras, é correcto que a função Sleep() não abranda o fio em si onde o Expert Advisor está a ser processado, mas actua como um interruptor entre o Expert Advisor actual e outros programas captados por um kernel em particular?
Pergunta sobre a estrutura MqlTradeResult. Alguém se lembra se havia uma pergunta sobre a introdução de um campo de tempo adicional na estrutura MqlTradeResult? Necessidade de retirar uma ordem pendente se esta entrar subitamente na história.
O pedido não é claro. Se a ordem foi aberta, então armazenará o tempo de abertura. Porque é que precisa do tempo de resposta do servidor?
O destino da encomenda é seguido pelo bilhete, certo? No entanto, a devolução do bilhete pela função OrderSend() não garante o êxito da execução da operação comercial. De acordo com a lógica do programa, é suficiente verificar se o meu bilhete apareceu entre as ordens históricas e que acordos foram feitos após a sua colocação. Para isso, gostaria de carregar a quantidade mínima de histórico na cache de histórico - isto é, desde a resposta do servidor ao pedido inicial, e não mais. Não precisamos de trabalhar com as propriedades de uma ordem aberta - que seriam pedaços redundantes de código. A encomenda pode nem sequer abrir. Assim, o tempo de resposta do servidor é necessário para descarregar o tamanho óptimo (quantidade) de um novo histórico, usando a função HistorySelect(). Então, é claro que se trata de "tirar uma ordem da história"?
Tanto quanto sei, a questão da introdução de um campo temporal adicional na estrutura MqlTradeResult ainda não foi levantada.
Sobre Sleep() Entendi que o atraso do fio do Expert Advisor não afecta a execução de outros programas. Obrigado.
Outra questão sobre Dormir(). O comentário diz: "Não se pode chamar função Sleep() a partir de indicadores personalizados, uma vez queos indicadores são executados no fio da interface e não deve abrandá-la". Li o fórum, mas ainda não percebi o seguinte: a frase "não se pode chamar-lhe de indicadores" - é uma proibição predefinida ou uma recomendação ao programador?
O destino da encomenda é seguido pelo bilhete, certo? No entanto, a devolução do bilhete OrderSend() não garante a boa execução do negócio.
Outra questão sobre Dormir(). O comentário diz: "Não se pode chamar função Sleep() a partir de indicadores personalizados, uma vez queos indicadores são executados no fio da interface e não deve abrandá-la". Li o fórum, mas ainda não percebi o seguinte: a frase "não se pode chamar-lhe de indicadores" - é uma proibição predefinida ou uma recomendação ao programador?
xxm.... deve dar uma vista de olhos num livro de texto sobre o envio de uma encomenda.
Bem, já percebeu o ponto. Digo-lhe meticulosamente, pode verificar: a função OrderSend() devolve um valor booleano. Neste caso, se o pedido for verificado com sucesso, o bilhete de encomenda é escrito em variável da estrutura MqlResult. Chamo-lhe "função de devolução do bilhete de encomenda" para mim. Aqui está o link para a fonte:"Ao enviar um pedido de compra utilizando a função OrderSend(), pode ver imediatamente o bilhete da encomenda que foi criada se o pedido for verificado com sucesso.
Pela resposta sobre a "proibição" - obrigado, consegui-a.
Bem, já percebeu o ponto.
Infelizmente, ainda não percebi.
precisa de ter um campo "tempo" na estrutura de retorno por alguma razão. use o tempo na ordem que aparece. Isto é suficiente para controlar um pouco de história.