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

 
Karputov Vladimir:
Os números sob seu avatar não pertencem a você, portanto você não tem poder sobre eles (você não pode mudá-los à vontade).

Não quero mudá-lo eu mesmo, por favor :)

Bem, se você não pode mudá-lo por 1000, pelo menos multiplique por 100.

 
prostotrader:

Não quero mudá-lo eu mesmo, por favor :)

Bem, se você não pode fazê-lo por 1.000, pelo menos multiplique por 100.

Você não pode. Não é permitido. Impossível.
 
Karputov Vladimir:

Os números sob seu avatar não pertencem a você, portanto você não tem controle sobre eles (você não pode mudá-los à vontade).

Adicionado.

Esqueça os pedidos antes da transação com o tipo TRADE_TRANSACTION_DEAL_ADD. Por que "esquecer"? Porque é a coisa errada a fazer.

Esqueça as transações, eu lhe direi em confidência que você pode descobrir sobre as transações a partir da história,

quando chegou a transação histórica. Não há ordem, então você pode ver o que a ordem "fez".

Com esta simples função:

double GetDealsVolume(const string a_symbol,const ulong a_ticket,const datetime start)
  {
   double volume=0;
   if(HistorySelect(start-180,TimeTradeServer()+180))
     {
      int deals=HistoryDealsTotal();
      if(deals>0)
        {
         for(int i=deals-1; i>=0; i--)
           {
            ulong deal_ticket=HistoryDealGetTicket(i);
            ulong ticket=ulong(HistoryDealGetInteger(deal_ticket,DEAL_ORDER));
            if(( ticket>0) && (ticket==a_ticket))
              {
               volume+=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
              }
           }
        }
     }
   return( volume );
  } 
 
prostotrader:

Esqueça as transações, eu lhe direi em confidência que você pode descobrir sobre as transações a partir da história,

quando a transação histórica chegou.

Com esta simples função:

Você está desatento:

...
Esqueça os pedidos até uma transação do tipo TRADE_TRANSACTION_DEAL_ADD. Por que "esquecer"? Porque isto é ERRADO.

Então você pode se lembrar sobre os mandados.

 
Karputov Vladimir:

Você está desatento:

Então você pode se lembrar sobre os mandados.

Obrigado, vou tentar não esquecer :)

Então, e o x100?

Adicionado:

Só aqui está o problema:

A Transação vem primeiro, como saber se é a primeira?

Ou vice-versa. A transação vem em primeiro lugar.

 
prostotrader:

Obrigado, vou tentar não esquecer :)

Então, e quanto ao x 100?

Eu já o fiz:

 
prostotrader:

...

Adicionado:

Só aqui está o problema:

O histórico da transação vem primeiro, mas como sei que é a primeira?

Ou vice-versa. A transação vem primeiro.

Necessidade de pensar sobre isso. Esclareça, é quando um pedido com mais de 1 volume é acionado?
 
Karputov Vladimir:
Preciso pensar sobre isso. Por favor, esclareça, é quando um pedido com um volume superior a 1 é acionado?
Não importa qual é a ordem ou o volume
 

Se tudo funcionasse comoMQ Alexanderdisse, então

não teriahavido nenhum problema.

Como está, é impossível dizer... :(

Porque a transação pode já estar na história antes dos Acordos feitos: 1.0.

E de acordo com as palavras de Alexandre, funcionaria assim ( e estaria certo! ):

Quando chega a transação histórica:

Volume inicial - Corrente de volume = transações feitas - Transação já chegada

Não coloque uma bandeira e lide com posições e ordens!

--------------------------------

Volume inicial - Volume atual != Transações feitas - Transação de transações é a próxima

Você deve colocar a bandeira, aguardar a transação de negócios e usar a bandeira para lidar com posições e ordens!

Isso é tudo!

 
Histórico das transações atualizado antes do TRADE_TRANSACTION_DEAL_ADD
Não processado, Iniciado em: 2016.08.15 18:43, #1537513