FORTI. Problemi di applicazione - pagina 124

 

Hanno detto: "Metti giù il piede".

 

Il server si sta incasinando di nuovo (((.

Per 3 minuti si blocca e poi[Request timeout].

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]

Discovery server, terminale build 1947.
Cosa fare?



 
Sergey Chalyshev:

Il server si sta incasinando di nuovo (((.

Si blocca per 3 minuti e poi[Request timeout].

Discovery server, Terminal build 1947.
Cosa devo fare?



Serge!

Questo è una specie di fallimento (non l'ho visto prima).

Questo ordine è stato eseguito al prezzo di 57,51 prima della modifica.

Forse questo è un glitch della borsa stessa, perché il server MT5 ha inviato un ordine alla borsa per la modifica14:18:28.445,

e la transazione è stata fatta14: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)

Qualcosa deve essere "congelato" nel server (scambio), e quando l'ordine "congelato" non è stato trovato, quindi[Richiesta timeout].

Alla tua domanda Cosa fare?

La risposta è OnTradeTransaction (TRADE_TRANSACTION_DEAL_ADD).

Aggiunto da

Uso l'invio asincrono degli ordini e il seguente modello di tracciamento degli ordini

//+------------------------------------------------------------------+
// 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:

La risposta è usare OnTradeTransaction (TRADE_TRANSACTION_DEAL_ADD), allora non perderai un affare e quindi saprai cosa è successo all'ordine.

Aggiunto da

Uso l'invio asincrono degli ordini e il seguente modello di tracciamento degli ordini

Ecco la domanda:

se abbiamo perso l'evento OnTradeTransaction richiesto per qualche motivo (ad esempio un guasto a internet, un pacchetto perso, un computer riavviato, o semplicemente la coda degli eventi è traboccata) - qual è la nostra prossima mossa?

 
JRandomTrader:

Ecco una domanda:

Se per qualche motivo abbiamo perso l'evento OnTradeTransaction giusto (ad esempio, Internet è andato in crash, un pacchetto è stato perso, il computer si è riavviato, o semplicemente la coda degli eventi è traboccata) - qual è la nostra prossima azione?

Ci sono azioni per ogni caso che hai elencato.

Per esempio, se il computer è stato riavviato e avevamo ordini pendenti, allora dopo che l'Expert Advisor è stato caricato, controlliamo

controllare gli ordini impostati su questo simbolo. (ci sono molte cose da prendere in considerazione, ma tutto può essere risolto)

 
Aleksey Vyazmikin:

Da un punto di vista pratico, sì, è utile, ma è difficile immaginare come il terminale rallenterebbe poi cercando di sincronizzare tutto... e se l'arrivo asincrono di questi dati abbia senso - non sono sicuro.

Scusate l'intrusione, probabilmente non è il momento giusto. Sto qui seduto a rileggere il thread. In modo asincrono, come si dice). L'arrivo asincrono dei dati sugli eventi nella tazza può essere utile se si analizzano solo i dati della tazza. Cioè il movimento delle offerte a livelli. Poi, se improvvisamente ogni cambiamento nello stato della tazza è disponibile per noi, possiamo usarlo indipendentemente da ciò che succede dopo. Va più o meno così.

 
Andrey Gladyshev:

Mi scuso per l'intrusione, forse non è il momento giusto. Sono qui seduto a rileggere il thread. In modo asincrono, come si dice). L'arrivo asincrono dei dati sugli eventi nella tazza può essere utile, se si analizzano solo i dati della tazza. Cioè il movimento delle offerte a livelli. Poi, se improvvisamente ogni cambiamento nello stato della tazza è disponibile per noi, possiamo usarlo indipendentemente da ciò che succede dopo. Va più o meno così.

Per quanto ho capito, il cieco della tazza è trasmesso dallo scambio con una certa frequenza, cioè non è possibile ottenere solo ogni cambiamento.

E, ancora non capisco, cosa dovrebbe farci? Soprattutto se i dati arriveranno con un ritardo quando ci sono forti movimenti...
 
Aleksey Vyazmikin:

Per quanto ho capito, il cast delle azioni è trasmesso dalla borsa con una certa frequenza, cioè non c'è modo di ottenere solo ogni cambiamento.

E, ancora non capisco, cosa dovrebbe farci? Specialmente se i dati arriveranno con un ritardo quando ci sono forti movimenti...

Farò una contro-domanda e poi risponderò. Sarebbe possibile ottenere informazioni più significative (o più precisamente, tempestive) sullo stato delle azioni se mi sedessi letteralmente in borsa? Sto parlando della colocazione, per esempio.

 
Andrey Gladyshev:

Farò una contro-domanda e poi risponderò. Sarebbe possibile ottenere informazioni più significative (o dovrei dire tempestive) sullo stato delle azioni se mi sedessi letteralmente in borsa? Sto parlando della colocazione, per esempio.

Anche lo scambio sarà trasmesso. O si presume che ci sia una perdita di fotogrammi di tasso?

 
E dipende da quale scambio. Non sto considerando il nostro.