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?
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.
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.
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...
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.0317:25:57.693 Test_Pos_selct (GAZR-9.16,M1) OpenPosition: Order sent successfully for open position volume = 2.02016.08.0317:25:57.703 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Order resived #502780992016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Deal, based on order #50278099 done.
2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Position exists.
2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Position type: POSITION_TYPE_BUY2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Position volume: 12016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Order #50278099 add to history.
2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Order #50278099 not found.
2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Position exists
2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Position type: POSITION_TYPE_BUY2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Position volume: 22016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Deal, based on order #50278099 done.
2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Position exists.
2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Position type: POSITION_TYPE_BUY2016.08.0317:25:57.733 Test_Pos_selct (GAZR-9.16,M1) OnTradeTransaction: Position volume: 22016.08.0317:25:58.613 Test_Pos_selct (GAZR-9.16,M1) OnBookEvent: Position exists
2016.08.0317:25:58.613 Test_Pos_selct (GAZR-9.16,M1) OnBookEvent: Position type: POSITION_TYPE_BUY2016.08.0317:25:58.613 Test_Pos_selct (GAZR-9.16,M1) OnBookEvent: Position volume: 2
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.
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.
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?
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. 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 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.
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...
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!!!!!!!!!!):
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!!!!!!!!!!):
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!
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.
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!!!!!!!!!!):