Renat: Конечно после принятия сервером - это же очевидно. Кроме того, функция называется OrderSEND.
OK, estou vendo!
Quanto à "obviedade", isso é principalmente para aqueles que estão trabalhando com o sistema há mais de um ano. Eu me deparei com a questão de saber se a frase do livro de referência (para a função OrderSend() "in case of a successful basic check of structures, true is returned") pode ser considerada como uma condição suficiente para retornar true. Acontece que não, ela não pode: é apenas uma condição necessária, mas não suficiente.
Interesting: Na minha opinião, você não deve tirar conclusões apenas do true, deve analisar também o código de resposta do servidor (e o último é de maior prioridade, ao que me parece)...
Sim, essas poucas horas me fizeram sentir como se um véu tivesse caído: não há código para "verificação bem-sucedida da estrutura de base" (vamos chamá-lo assim) entre os códigos de retorno, e é por isso que true não pode ser retornado imediatamente após a verificação de base.
Quanto à análise detalhada do código de retorno, sim, ela é recomendada no livro de referência. Eu apenas continuo procurando maneiras de reduzir razoavelmente o número de verificações disponíveis.
Você pode explicar o que isso significa. O mandado foi colocado na fila de espera?
A seguinte situação
2011.01.26 12:59:26 Network '716201': conexão com MetaQuotes-Demo perdida 2011.01.26 12:59:26 Trades '716201' : falha na compra instantânea de 1.00 EURUSD a 1.37136 [Sem conexão] 2011.01.26 12:58:40 Trades '716201' : compra instantânea de 1.00 EURUSD a 1.37136 2011.01.26 12:56:17 Network '716201': terminal sincronizado com MetaQuotes Software Corp.
Negociação manual: pressiono Comprar no mercado sem stops e TP. Uma mensagem é exibida, a ordem é colocada na fila... a conexão é interrompida... é restaurada... a ordem não é executada.
O que é essa fila? Onde ela está localizada? Se a ordem já foi aceita pelo servidor, por que ela não é executada? Motivo?
void CheckStartDateInTradeHistory()
{
//--- intervalo inicial, como se tivéssemos começado a trabalhar agora mesmodatetime curr_start=TimeCurrent()-days*PeriodSeconds(PERIOD_D1);
//--- certifique-se de que o limite inicial do histórico de negociação não foi ultrapassado //--- mais de 1 dia após a data pretendidaif(curr_start-start>PeriodSeconds(PERIOD_D1))
{
//--- devemos corrigir a data de início do histórico a ser carregado no cache
start=curr_start;
PrintFormat("New start limit of the trade history to be loaded: start => %s",
TimeToString(start));
//--- agora carregue novamente o histórico de negociações para o período corrigidoHistorySelect(start,end);
//--- corrigir o número de negócios e pedidos no histórico para comparação posterior
history_orders=HistoryOrdersTotal();
deals=HistoryOrdersTotal();
}
}
O artigo fala sobre eventos de negociação assíncronos, quando o recebimento de um tíquete de ordem ao enviar uma solicitação com a função OrderSend() e o aparecimento da ordem no terminal podem não coincidir no tempo. Tudo está claro aqui. No outono passado, as pessoas foram aconselhadas a superar essa assincronia adormecendo por três segundos. Mas qual é o tempo garantido em que o valor do tíquete e o próprio pedido aparecerão no terminal (depois que o servidor aceitar o pedido)? Posso esperar por 20 segundos, se necessário, mas gostaria de saber qual é o período de tempo garantido para assegurar essa "sincronização manual".
Renat:
Конечно после принятия сервером - это же очевидно. Кроме того, функция называется OrderSEND.
OK, estou vendo!
Quanto à "obviedade", isso é principalmente para aqueles que estão trabalhando com o sistema há mais de um ano. Eu me deparei com a questão de saber se a frase do livro de referência (para a função OrderSend() "in case of a successful basic check of structures, true is returned") pode ser considerada como uma condição suficiente para retornar true. Acontece que não, ela não pode: é apenas uma condição necessária, mas não suficiente.
Na minha opinião, você não deve tirar conclusões apenas do true, deve analisar também o código de resposta do servidor (e o último é de maior prioridade, ao que me parece)...
Sim, essas poucas horas me fizeram sentir como se um véu tivesse caído: não há código para "verificação bem-sucedida da estrutura de base" (vamos chamá-lo assim) entre os códigos de retorno, e é por isso que true não pode ser retornado imediatamente após a verificação de base.
Quanto à análise detalhada do código de retorno, sim, ela é recomendada no livro de referência. Eu apenas continuo procurando maneiras de reduzir razoavelmente o número de verificações disponíveis.
Você pode explicar o que isso significa. O mandado foi colocado na fila de espera?
A seguinte situação
2011.01.26 12:59:26 Network '716201': conexão com MetaQuotes-Demo perdida
2011.01.26 12:59:26 Trades '716201' : falha na compra instantânea de 1.00 EURUSD a 1.37136 [Sem conexão]
2011.01.26 12:58:40 Trades '716201' : compra instantânea de 1.00 EURUSD a 1.37136
2011.01.26 12:56:17 Network '716201': terminal sincronizado com MetaQuotes Software Corp.
Negociação manual: pressiono Comprar no mercado sem stops e TP. Uma mensagem é exibida, a ordem é colocada na fila... a conexão é interrompida... é restaurada... a ordem não é executada.
O que é essa fila? Onde ela está localizada? Se a ordem já foi aceita pelo servidor, por que ela não é executada? Motivo?
está vendo as duas últimas linhas?
Elas deveriam ser:
history_orders=HistoryOrdersTotal(); // ok, parece correto
deals=HistoryDealsTotal(); //um erro de digitação, talvez?
O artigo fala sobre eventos de negociação assíncronos, quando o recebimento de um tíquete de ordem ao enviar uma solicitação com a função OrderSend() e o aparecimento da ordem no terminal podem não coincidir no tempo. Tudo está claro aqui. No outono passado, as pessoas foram aconselhadas a superar essa assincronia adormecendo por três segundos. Mas qual é o tempo garantido em que o valor do tíquete e o próprio pedido aparecerão no terminal (depois que o servidor aceitar o pedido)? Posso esperar por 20 segundos, se necessário, mas gostaria de saber qual é o período de tempo garantido para assegurar essa "sincronização manual".
Muito obrigado. Isso realmente me ajudou a resolver algumas confusões.
Atenciosamente,
Umer Aziz