"Posição flutuanteSelect() erro - página 3

 
Karputov Vladimir:

Eu disse acima - não se deixe levar pelas ordens: veja as transações. Aqui está um código curto que mostra quando o volume da posição muda e que tipo de transação é:

E aqui estão as impressões, no fechamento parcial:

Você pode ver claramente que assim que um evento comTRADE_TRANSACTION_DEAL_ADD tipo de transação comercial tiver passado, isto é, os dados de posição no terminal são atualizados.

Estou realmente chocado!

Você está fazendo isso de propósito ou não lê o que estou escrevendo?

 
prostotrader:

Estou apenas chocado!

Você está fazendo isso de propósito ou você não lê o que eu escrevo?

Parece-me que você não quer entender que uma ordem não é tudo. E o registro de um acordo na história é um sinal para o programador de que os dados sobre a posição já foram alterados.
 
Karputov Vladimir:
Parece-me que você não quer entender que uma ordem não é tudo. Mas o registro de uma troca na história é um sinal para o programador de que os dados de posição já foram alterados.
Tudo está claro, obrigado.
 
prostotrader:
Tudo limpo, obrigado.

Um mandado é uma pulga, pode ou não se inscrever. Acima da ordem está uma troca. Acima de um comércio é uma posição. As mudanças nos dados de posição ocorrem depois que o negócio é registrado no histórico.

O que às vezes você pega - bem, apenas o mérito de computadores rápidos e da Internet. Se você quiser - por acaso.

Acrescentado: embora seja interessante ouvir a resposta à sua aplicação a partir do ServiceDesk.

 
prostotrader:

1. >Sem conhecer o algoritmo exato (O QUE você precisa do programa), é difícil avaliar se ele foi implementado corretamente...

Pensei que não era difícil entender o que o programa faz, bem, se não está claro, então

Um Expert Advisor abre uma posição no mercado FORTS com volume de 2 contratos; se a posição for aberta, ela é parcialmente fechada com um volume de 1 contrato,

então a posição será completamente fechada. Repita este procedimento até o contador tr_cnt<50

2. Você pode "correr" PositionSelect() um milhão de vezes - não vai mudar nada, porque

o eventoTRADE_TRANSACTION_DEAL_ADD não será recebido até que você esteja no loop, e portanto, o terminal não será atualizado

informações sobre a posição.

Bem, talvez o objetivo do programa esteja correto, mas os meios para alcançá-lo são lixo, perdão ao meu francês...

Por que você precisa verificar as ordens históricas? Você precisa olhar para os ofícios. Vladimir está absolutamente certo aqui!

Só um louco poderia executar tal programa no verdadeiro...

 
Dennis Kirichenko:

Portanto, sim! O objetivo do programa pode estar correto, mas os meios para alcançá-lo são lixo, perdão meu francês...

Por que diabos as ordens históricas são verificadas? Você precisa olhar para os ofícios. Vladimir está absolutamente certo aqui!

Somente um louco executaria um programa desse tipo no mercado real.

Eu entendo "Professor", mas não se trata da minha insanidade, trata-se do erro do termo.

A propósito, aqui está outro que eu encontrei (e é depois do LOCK!!!!!!!!!!):

2016.08.03 17:25:57.693 Test_Pos_selct (GAZR-9.16,M1)   OpenPosition: Order sent successfully for open position volume = 2.0
2016.08.03 17:25:57.703 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Order resived #50278099
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Deal, based on order #50278099  done.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position exists.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position type: POSITION_TYPE_BUY
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position volume: 1
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Order #50278099  add to history.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Order #50278099  not found.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position exists
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position type: POSITION_TYPE_BUY
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position volume: 2
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Deal, based on order #50278099  done.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position exists.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position type: POSITION_TYPE_BUY
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position volume: 2
2016.08.03 17:25:58.613 Test_Pos_selct (GAZR-9.16,M1)   OnBookEvent: Position exists
2016.08.03 17:25:58.613 Test_Pos_selct (GAZR-9.16,M1)   OnBookEvent: Position type: POSITION_TYPE_BUY
2016.08.03 17:25:58.613 Test_Pos_selct (GAZR-9.16,M1)   OnBookEvent: Position volume: 2
 
prostotrader:

Eu vejo "Professor", mas não se trata da minha insanidade, trata-se da presença de um erro no termeal.

A propósito, aqui está outro que surgiu (e é depois do WORK!!!!!!!!!!):

Por favor, traga seu código para o meu - você não tem o tipo de transação comercial impresso. Remova a verificação de pedidos - você não precisa dela aqui.
 

Mais uma vez, para "candidatos", "médicos", "professores" e "acadêmicos".

Qualquer evento vindo à OnTradeTransaction() pode ser perdido

É por isso que eu acho que é um erro que após receber um evento significativoTRADE_TRANSACTION_HISTORY_ADD

os dados no terminal não são atualizados!

 
Karputov Vladimir:
Por favor, traga seu código para a mina - seu tipo de transação comercial não é impresso. Remova a verificação de pedidos - você não precisa dela aqui.
Obrigado por sua persistência.
 
prostotrader:

Eu vejo "Professor", mas não se trata da minha insanidade, trata-se da presença de um erro no termeal.

A propósito, aqui está outro que surgiu (e é depois da WORD!!!!!!!!!!):

Eu cometi um erro, não percebi que havia dois acordos.
Razão: