FORTES. Questões de aplicação da lei - página 124

 

Abaixe seu pé, eles disseram

 

O servidor está estragando novamente (((.

Por 3 minutos ele fica pendurado e depois[Solicitar tempo limite].

2019.01.04 14:18:20.427 Trades  'xxxxx': modify #97538997 buy limit 1.00 BR-3.19 -> price: 57.39, sl: 0.00, tp: 0.00) done in 47.866 ms
2019.01.04 14:18:28.399 Trades  'xxxxx': modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00
2019.01.04 14:18:28.445 Trades  'xxxxx': accepted modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00
2019.01.04 14:18:28.445 Trades  'xxxxx': modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00 placed for execution
2019.01.04 14:18:28.461 Trades  'xxxxx': deal #56712593 sell 1.00 BR-3.19 at 57.51 done (based on order #97538868)
2019.01.04 14:21:28.407 Trades  'xxxxx': failed modify order #97538868 buy 0.00 BR-3.19 at market sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00 [Request timeout]

Servidor Discovery, terminal construído em 1947.
O que fazer?



 
Sergey Chalyshev:

O servidor está estragando novamente (((.

Fica pendurado por 3 minutos e depois[Request timeout].

Discovery server, Terminal build 1947.
O que eu devo fazer?



Serge!

Isto é algum tipo de fracasso (eu não o tinha visto antes).

Esta ordem foi executada pelo preço 57,51 antes da modificação.

Talvez isto seja uma falha da própria troca, porque o servidor MT5 enviou um pedido para a troca para modificação14:18:28.445,

e a transação foi feitaàs 14:18:28.461

2019.01.04 14:18:28.461 Trades  'xxxxx': deal #56712593 sell 1.00 BR-3.19 at 57.51 done (based on order #97538868)

Algo deve estar "congelado" no servidor (troca), e quando a ordem "congelada" não foi encontrada, então[Solicitar tempo limite].

A sua pergunta O que fazer?

A resposta é OnTradeTransaction (TRADE_TRANSACTION_DEAL_ADD).

Adicionado por

Utilizo o envio assíncrono de pedidos e o seguinte modelo de rastreamento de pedidos

//+------------------------------------------------------------------+
// Expert Trade Transaction function                                 |
//+------------------------------------------------------------------+
void OnTradeTransaction( const MqlTradeTransaction &trans,
                         const MqlTradeRequest &request,
                         const MqlTradeResult &result )
{
  switch(trans.type)
  {
    case TRADE_TRANSACTION_REQUEST:
      //Получение тикета ордера
    break;
    case TRADE_TRANSACTION_DEAL_ADD:
      //Произошла сделка (отложенный ордер)
    break;
    case TRADE_TRANSACTION_HISTORY_ADD:
     //Ордера нет (исполнился, отменен и т.д)
    break;
    case TRADE_TRANSACTION_ORDER_UPDATE:
      switch(trans.order_state)
      {
        case ORDER_STATE_PLACED:
          //Ордер размешен (модификация)  
        break;
        case ORDER_STATE_PARTIAL:
          //Ордер исполнился частично 
        break;
        case ORDER_STATE_REJECTED:
        case ORDER_STATE_EXPIRED:
          //    
        break;                       
      }
    break;
  }
}
 
prostotrader:

A resposta é usar a OnTradeTransaction (TRADE_TRANSACTION_DEAL_ADD), assim você não perderá um negócio e, portanto, você saberá o que aconteceu com o pedido.

Adicionado por

Utilizo o envio assíncrono de pedidos e o seguinte modelo de rastreamento de pedidos

Aqui está a questão:

se perdemos o evento requerido pela OnTradeTransaction por algum motivo (por exemplo, falha na internet, pacote perdido, reinicialização do computador ou simplesmente a fila do evento transbordou) - qual é o nosso próximo passo?

 
JRandomTrader:

Aqui vai uma pergunta:

Se por algum motivo perdemos o evento certo da OnTradeTransaction (por exemplo, a Internet falhou, um pacote foi perdido, o computador reinicializado ou simplesmente a fila de eventos transbordou) - qual é a nossa próxima ação?

Há ações para cada caso que você listou.

Por exemplo, se seu computador foi reinicializado e tivemos ordens pendentes, então depois que o Expert Advisor é carregado, nós verificamos

verificar as ordens definidas neste símbolo. (há muitas coisas a serem levadas em conta, mas tudo pode ser resolvido)

 
Aleksey Vyazmikin:

De um ponto de vista prático, sim, é útil, mas é difícil imaginar como o terminal então abrandaria tentando sincronizar tudo... e se a chegada assíncrona desses dados faz sentido - não tenho certeza.

Pedimos desculpas pela intrusão, provavelmente não é o momento certo. Apenas sentado aqui, relendo o fio. De forma assíncrona, como se diz). A chegada assíncrona de dados sobre os eventos do copo pode ser útil se você analisar apenas os dados do copo. Ou seja, o movimento de lances em níveis. Então, se de repente cada mudança no estado do copo estiver disponível para nós, podemos usá-lo independentemente do que acontecer a seguir. É mais ou menos assim.

 
Andrey Gladyshev:

Peço desculpas pela intromissão, talvez não seja o momento certo. Estou apenas aqui sentado relendo o fio. De forma assíncrona, como se diz). A chegada assíncrona de dados sobre os eventos do copo pode ser útil se você analisar apenas os dados do copo. Ou seja, o movimento de lances em níveis. Então, se de repente cada mudança no estado do copo estiver disponível para nós, podemos usá-lo independentemente do que acontecer a seguir. É mais ou menos assim.

Tanto quanto sei, o cego do copo é transmitido pela troca com uma certa freqüência, ou seja, toda mudança não é possível de se obter simplesmente.

E, eu ainda não entendo, o que deve fazer com ele? Especialmente se os dados vierem com um atraso quando houver fortes movimentos...
 
Aleksey Vyazmikin:

Tanto quanto sei, o elenco de ações é transmitido pela bolsa com uma certa freqüência, ou seja, toda mudança não é possível de obter apenas.

E, ainda não entendi, o que é suposto fazer com ele? Especialmente se os dados chegarem com um atraso quando houver fortes movimentos...

Farei uma contra pergunta e depois a responderei. Seria possível obter informações mais significativas (ou mais precisas, oportunas) sobre o estado das ações se eu literalmente me sentasse na bolsa? Estou falando de colocação, por exemplo.

 
Andrey Gladyshev:

Farei uma contra pergunta e depois a responderei. Seria possível obter informações mais significativas (ou devo dizer oportunas) sobre o estado das ações se eu literalmente estivesse na bolsa? Estou falando de colocação, por exemplo.

A troca também será transmitida. Ou você assume que há uma perda de quadros de tarifas?

 
E depende de qual troca. Eu não estou considerando o nosso.