Como abrir corretamente uma ordem de mercado? - página 6

 
Gennady Mazur:

Você foi corretamente avisado sobre a pausa. Já havia um tópico no fórum que uma pausa de vários milissegundos após o envio do pedido é freqüentemente suficiente para continuar trabalhando com a posição. É melhor não contar com a OnTradeTransaction() se isso for possível.

E em geral, para ser mais confiável, tente verificar se existe uma posição após o envio do pedido no próximo tick. Se houver uma posição, não envie mais pedidos.

 
Alexey Kozitsyn:

A OnTradeTransaction(), se possível, não é de confiança.


Por que será?
 
prostotrader:
Por que será?

1. Não é certo que ela virá;

2. Comportamento inapropriado antes no testador. Não sei agora;

Adicionado:

3. alguns parâmetros de ordem ou transação (não se lembram exatamente) como a enumeração podem ter "valores padrão" que não são. Isto é, MQ não fez WRONG_VALUE mas, por exemplo, ORDER_TYPE_BUY. Pode ser enganoso;

 
Alexey Kozitsyn:

Você foi corretamente avisado sobre a pausa. Já havia um tópico no fórum que uma pausa de vários milissegundos após o envio do pedido é freqüentemente suficiente para continuar trabalhando com a posição. É melhor não confiar na OnTradeTransaction() se isso for possível.

E, em geral, para ser mais confiável, tente verificar a disponibilidade da posição no próximo tick depois que o pedido for enviado. Se houver uma posição, não envie mais pedidos.

Em princípio, eu faço isso, mas em Forts uma ordem é freqüentemente aceita com sucesso... mas não há posição no próximo tick.
É aqui que a abertura adicional pode passar por .... resolvendo parcialmente o problema como a seguir, se a ordem for aceita, eu aumento a variável Int, e após o aumento as condições de abertura são ligeiramente diferentes, então uma nova abertura não acontece, mas.... se a ordem não for aceita a variável não aumenta, e aqui está a parte complicada... Não identifiquei corretamente o estado e encomendas extras estão chegando.
 
Alexey Kozitsyn:

1. Não é certo que ela venha;

2. Comportamento inapropriado antes no testador. Não sei agora;

Você provavelmente não viu a mensagem dos desenvolvedores de que agora, OnTradeTransaction() está garantida.

Кроме того, транзакции могут потеряться при доставке от сервера к терминалу.
Что касается этой фразы.

Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.

Quantos segundos para fazer uma pausa? 1 segundo 2, talvez 10?

2016.12.14 22:01:41.371 Trades  'xxxxx': cancel order #49932961 buy limit 1.00 CHMF-6.17 at 92501 placed for execution in 64873.549 ms

Adicionado

Não esqueça que você está trabalhando com um pedido de CUSTOMER - SERVIDOR (resposta de solicitação)

 
prostotrader:

Você provavelmente não viu a mensagem dos desenvolvedores de que agora, OnTradeTransaction() está garantida.

Кроме того, транзакции могут потеряться при доставке от сервера к терминалу.
Что касается этой фразы.

Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.

Por quanto tempo devemos fazer uma pausa? 1sec 2, talvez 10?

2016.12.14 22:01:41.371 Trades  'xxxxx': cancel order #49932961 buy limit 1.00 CHMF-6.17 at 92501 placed for execution in 64873.549 ms

Sim, você está certo, não viu a frase, nem os cadáveres :)

Sobre a pausa - você deu um caso bastante exótico, porém, é claro, é possível. Referia-me ao caso de trabalhar com instrumentos líquidos, contratos atuais e de trabalhar com o tick atual imediatamente após o envio do pedido. Na grande maioria dos casos, vários milissegundos são suficientes. E, é claro, após a pausa, é necessário verificar a presença do cargo para continuar a trabalhar com ele.

 
Gennady Mazur:
Em princípio eu faço isso, mas em Forts a ordem é freqüentemente aceita com sucesso...mas no próximo tick ainda não há posição...
É aqui que a abertura adicional pode escorregar .... resolver parcialmente o problema desta forma, se o pedido for aceito, eu aumento a variável int, e após o aumento as condições de abertura são ligeiramente diferentes, então uma nova abertura não acontece, mas.... se o pedido não for aceito a variável não aumenta, mas aqui está o truque... Eu julguei mal o estado e ordens extras começaram a aparecer.
Em qualquer caso não claro, como já sugerido, utilize o corte avançado, e não apenas um retorno de sim/não. Especialmente na fase de desenvolvimento.
 
Alexey Kozitsyn:

Sim, você está certo, eu não vi a frase, e nem os cadáveres:)

Sobre a pausa - você citou um caso bastante exótico, porém, é claro, é possível. Referia-me ao caso de trabalhar com instrumentos líquidos, contratos atuais e de trabalhar com o tick atual logo após o envio do pedido. Na grande maioria dos casos, vários milissegundos são suficientes. E, é claro, após a pausa, é necessário verificar a presença do cargo para continuar a trabalhar com ele.

Alexey!

Um instrumento bastante líquido :)

2016.12.14 22:01:41.431 Trades  'xxxxx': cancel order #49931802 sell limit 1.00 GOLD-9.17 at 1190.2 placed for execution in 64926.078 ms

Não se trata de instrumento (liquidez), trata-se de atraso, que pode ocorrer em QUALQUER instrumento.

Há quase 4 anos eu tenho usado ativamente o EAs.

Em nenhum dos meus EAs há pausas (exceto pausa enquanto se espera que os dados sejam baixados do servidor em INDICADORES),

Se você fizer uma pausa, é um sinal certo de que sua EA não o fez direito :(

 
prostotrader:

Alexey!

Eu tenho negociado ativamente com EAs há quase 4 anos.

Eu não tenho nenhuma pausa em nenhum dos meus EAs (exceto pausa para esperar que os dados sejam baixados do servidor em INDICADORES),

Se você estiver entrando em uma pausa, é um sinal VERDADEIRO de que você criou erroneamente o algoritmo de sua EA :(

Michael, se você não viu ou não fez algo, isso não significa que não seja possível ou não seja necessário.
 
Alexey Kozitsyn:
Michael, se você não viu ou não fez algo, isso não significa que seja impossível ou desnecessário.

Concordo plenamente com você!

Todos fazem o que querem ou o que podem.