FORTI. Problemi di applicazione - pagina 83

 
fxsaber:

Server Alpari-MT5-Demo. Questo script è stato eseguito due volte.

2017.02.08 22:55:13.170 Trades  '50075899': market buy 1.00 BRN
2017.02.08 22:55:15.817 Trades  '50075899': accepted market buy 1.00 BRN
2017.02.08 22:55:15.817 Trades  '50075899': deal #4163994 buy 1.00 BRN at 55.41 done (based on order #5506688)
2017.02.08 22:55:15.827 Trades  '50075899': order #5506688 buy 1.00 / 1.00 BRN at 55.41 done in 2658.948 ms
2017.02.08 22:55:15.827 Trades  '50075899': modify #5506688 buy 1.00 BRN sl: 0.00, tp: 0.00 -> sl: 54.41, tp: 56.41
2017.02.08 22:55:17.270 Trades  '50075899': accepted modify #5506688 buy 1.00 BRN sl: 0.00, tp: 0.00 -> sl: 54.41, tp: 56.41
2017.02.08 22:55:18.124 Trades  '50075899': modify #5506688 buy 1.00 BRN -> sl: 54.41, tp: 56.41 done in 2295.483 ms
2017.02.08 22:55:18.124 Trades  '50075899': market sell 1.00 BRN, close #5506688 buy 1.00 BRN 55.41
2017.02.08 22:55:23.246 Trades  '50075899': accepted market sell 1.00 BRN, close #5506688 buy 1.00 BRN 55.41
2017.02.08 22:55:23.246 Trades  '50075899': deal #4163995 sell 1.00 BRN at 55.27 done (based on order #5506689)
2017.02.08 22:55:23.246 Trades  '50075899': order #5506689 sell 1.00 / 1.00 BRN at 55.27 done in 5119.709 ms

2017.02.08 22:55:23.246 Trades  '50075899': buy limit 1.00 BRN at 54.40
2017.02.08 22:55:23.309 Trades  '50075899': accepted buy limit 1.00 BRN at 54.40
2017.02.08 22:55:23.314 Trades  '50075899': order #5506691 buy limit 1.00 / 1.00 BRN at market done in 66.501 ms
2017.02.08 22:55:23.314 Trades  '50075899': cancel order #5506691 buy limit 1.00 BRN at 54.40
2017.02.08 22:55:23.376 Trades  '50075899': accepted cancel order #5506691 buy limit 1.00 BRN at 54.40
2017.02.08 22:55:23.379 Trades  '50075899': cancel #5506691 buy limit 1.00 BRN at market done in 64.586 ms

2017.02.08 22:55:48.729 Trades  '50075899': market buy 1.00 BRN
2017.02.08 22:55:48.801 Trades  '50075899': accepted market buy 1.00 BRN
2017.02.08 22:55:48.801 Trades  '50075899': deal #4163999 buy 1.00 BRN at 55.39 done (based on order #5506694)
2017.02.08 22:55:48.809 Trades  '50075899': order #5506694 buy 1.00 / 1.00 BRN at 55.39 done in 78.782 ms
2017.02.08 22:55:48.809 Trades  '50075899': modify #5506694 buy 1.00 BRN sl: 0.00, tp: 0.00 -> sl: 54.39, tp: 56.39
2017.02.08 22:55:48.879 Trades  '50075899': accepted modify #5506694 buy 1.00 BRN sl: 0.00, tp: 0.00 -> sl: 54.39, tp: 56.39
2017.02.08 22:55:48.886 Trades  '50075899': modify #5506694 buy 1.00 BRN -> sl: 54.39, tp: 56.39 done in 77.030 ms
2017.02.08 22:55:48.886 Trades  '50075899': market sell 1.00 BRN, close #5506694 buy 1.00 BRN 55.39
2017.02.08 22:55:48.961 Trades  '50075899': accepted market sell 1.00 BRN, close #5506694 buy 1.00 BRN 55.39
2017.02.08 22:55:48.966 Trades  '50075899': deal #4164000 sell 1.00 BRN at 55.27 done (based on order #5506695)
2017.02.08 22:55:48.966 Trades  '50075899': order #5506695 sell 1.00 / 1.00 BRN at 55.27 done in 79.688 ms
2017.02.08 22:55:48.966 Trades  '50075899': buy limit 1.00 BRN at 54.39
2017.02.08 22:55:49.034 Trades  '50075899': accepted buy limit 1.00 BRN at 54.39
2017.02.08 22:55:49.041 Trades  '50075899': order #5506696 buy limit 1.00 / 1.00 BRN at market done in 75.393 ms
2017.02.08 22:55:49.041 Trades  '50075899': cancel order #5506696 buy limit 1.00 BRN at 54.39
2017.02.08 22:55:49.116 Trades  '50075899': accepted cancel order #5506696 buy limit 1.00 BRN at 54.39
2017.02.08 22:55:49.116 Trades  '50075899': cancel #5506696 buy limit 1.00 BRN at market done in 83.423 ms

Tali rallentamenti inaspettati si verificano su quasi tutti i server demo. Quindi il problema non riguarda solo le FORZE.

Gli sviluppatori in questo caso dovrebbero essere più facili da trattare, dato che non ci sono ponti. Date un'occhiata a questa situazione.

Non ho un demo, ho un VERO
 
prostotrader:
Non ho un demo, ho un VERO

Quindi nel vostro caso è molto più difficile da risolvere per gli sviluppatori.

Demo - niente va da nessuna parte nell'ecosistema Metatrader. Cioè, il problema non può essere attribuito a nessuno ed è quindi più facile da localizzare.

 
fxsaber:

Server Alpari-MT5-Demo. Questo script è stato eseguito due volte.

Tali rallentamenti inaspettati si verificano su quasi tutti i server demo. Quindi il problema non riguarda solo le FORZE.

Gli sviluppatori in questo caso dovrebbero essere più facili da trattare, dato che non ci sono ponti. Date un'occhiata a questa situazione.

Qual è il numero di build di MT5?
 
Rashid Umarov:
Qual è il numero di build di MT5?
1525.
 
Rashid Umarov:

Trovato un caso riproducibile di freni!

FIBOGroup-MT5 Server, demo, valuta base USD, Netting, build 1525.

Sto ancora eseguendo lo script di prova (funzionerà se il moderatore aggiornerà la bibbia). Registro di due corse consecutive

2017.02.09 09:28:19.404 Scripts script MT4Statement (EURUSD,M1) loaded successfully
2017.02.09 09:28:19.414 Trades  '1013175': exchange buy 1.00 EURUSD at market
2017.02.09 09:28:20.499 Trades  '1013175': deal #1542820 buy 1.00 EURUSD at 1.06721 done (based on order #2246203)
2017.02.09 09:28:20.499 Trades  '1013175': order #2246203 buy 1.00 / 1.00 EURUSD at 1.06721 done in 1078.071 ms

2017.02.09 09:28:20.499 Trades  '1013175': modify #2246203 buy 1.00 EURUSD sl: 0.00000, tp: 0.00000 -> sl: 1.06621, tp: 1.06821
2017.02.09 09:28:20.557 Trades  '1013175': modify #2246203 buy 1.00 EURUSD -> sl: 1.06621, tp: 1.06821 done in 57.672 ms
2017.02.09 09:28:20.557 Trades  '1013175': exchange sell 1.00 EURUSD at market, close #2246203 buy 1.00 EURUSD 1.06721
2017.02.09 09:28:21.624 Trades  '1013175': deal #1542821 sell 1.00 EURUSD at 1.06720 done (based on order #2246204)
2017.02.09 09:28:21.624 Trades  '1013175': order #2246204 sell 1.00 / 1.00 EURUSD at 1.06720 done in 1067.918 ms

2017.02.09 09:28:21.627 Trades  '1013175': buy limit 1.00 EURUSD at 1.06621
2017.02.09 09:28:21.687 Trades  '1013175': order #2246205 buy limit 1.00 / 1.00 EURUSD at market done in 60.036 ms
2017.02.09 09:28:21.687 Trades  '1013175': cancel order #2246205 buy limit 1.00 EURUSD at 1.06621
2017.02.09 09:28:21.747 Trades  '1013175': cancel #2246205 buy limit 1.00 EURUSD at market done in 59.555 ms
2017.02.09 09:28:21.747 Scripts script MT4Statement (EURUSD,M1) removed
2017.02.09 09:28:31.214 Scripts script MT4Statement (EURUSD,M1) loaded successfully
2017.02.09 09:28:31.227 Trades  '1013175': exchange buy 1.00 EURUSD at market
2017.02.09 09:28:32.302 Trades  '1013175': deal #1542822 buy 1.00 EURUSD at 1.06723 done (based on order #2246206)
2017.02.09 09:28:32.302 Trades  '1013175': order #2246206 buy 1.00 / 1.00 EURUSD at 1.06723 done in 1068.513 ms

2017.02.09 09:28:32.304 Trades  '1013175': modify #2246206 buy 1.00 EURUSD sl: 0.00000, tp: 0.00000 -> sl: 1.06623, tp: 1.06823
2017.02.09 09:28:32.364 Trades  '1013175': modify #2246206 buy 1.00 EURUSD -> sl: 1.06623, tp: 1.06823 done in 60.516 ms
2017.02.09 09:28:32.364 Trades  '1013175': exchange sell 1.00 EURUSD at market, close #2246206 buy 1.00 EURUSD 1.06723
2017.02.09 09:28:33.429 Trades  '1013175': deal #1542823 sell 1.00 EURUSD at 1.06722 done (based on order #2246207)
2017.02.09 09:28:33.432 Trades  '1013175': order #2246207 sell 1.00 / 1.00 EURUSD at 1.06722 done in 1068.809 ms

2017.02.09 09:28:33.432 Trades  '1013175': buy limit 1.00 EURUSD at 1.06623
2017.02.09 09:28:33.492 Trades  '1013175': order #2246208 buy limit 1.00 / 1.00 EURUSD at market done in 58.742 ms
2017.02.09 09:28:33.492 Trades  '1013175': cancel order #2246208 buy limit 1.00 EURUSD at 1.06623
2017.02.09 09:28:33.549 Trades  '1013175': cancel #2246208 buy limit 1.00 EURUSD at market done in 57.722 ms
2017.02.09 09:28:33.549 Scripts script MT4Statement (EURUSD,M1) removed

TRADE_ACTION_DEAL è 20 volte più lento degli altri modi! Riproduzione.

 
prostotrader:
2016.12.14 22:01:41.371 Trades  'xxxxx': cancel order #49932961 buy limit 1.00 CHMF-6.17 at 92501 placed for execution in 64873.549 ms

Ho capito bene che in questo caso OrderSend ha restituito true quasi istantaneamente, ma sono stati osservati 65 secondi(ENUM_ORDER_STATE)::OrderGetInteger(ORDER_STATE) == ORDER_STATE_STARTED?

Aggiungete questo controllo al vostro codice.

 
fxsaber:

Ho capito bene che in questo caso OrderSend ha restituito true quasi istantaneamente, ma sono stati osservati 65 secondi(ENUM_ORDER_STATE)::OrderGetInteger(ORDER_STATE) == ORDER_STATE_STARTED?

Per favore aggiungete questo controllo al vostro codice.

Sto usando OrderSendAsync

Ma se c'è un ritardo di più di 1 secondo, controllo lo stato dell'ordine

case ORDER_BUSY:
      switch(o_status)
      {
        case BUY_ORDER:
          BuyOrder.mem_time = GetMicrosecondCount();
          Print(__FUNCTION__, ": Buy ордер в переходном состоянии.");
        break;
        case SELL_ORDER:
          SellOrder.mem_time = GetMicrosecondCount();
          Print(__FUNCTION__, ": Sell ордер в переходном состоянии.");
        break;
      }
    break;
 
prostotrader:

Uso OrderSendAsync

Ma, se c'è un ritardo di più di 1 secondo, controllo lo stato dell'ordine

case ORDER_BUSY:
      switch(o_status)
      {
        case BUY_ORDER:
          BuyOrder.mem_time = GetMicrosecondCount();
          Print(__FUNCTION__, ": Buy ордер в переходном состоянии.");
        break;
        case SELL_ORDER:
          SellOrder.mem_time = GetMicrosecondCount();
          Print(__FUNCTION__, ": Sell ордер в переходном состоянии.");
        break;
      }
    break;
Quindi è ancora iniziato.
 
fxsaber:
Quindi Started è ancora in bilico.

Non posso dirlo con certezza, perché

switch(ord_data.state)
      {
        case ORDER_STATE_STARTED:
        case ORDER_STATE_REQUEST_ADD:
        case ORDER_STATE_REQUEST_MODIFY:
        case ORDER_STATE_REQUEST_CANCEL:
          ord_data.real_state = ORDER_BUSY;
        break;

        case ORDER_STATE_PARTIAL:
          ord_data.real_state = ORDER_EXIST_PARTIAL;
        break;
                                          
        case ORDER_STATE_PLACED:
          ord_data.real_state = ORDER_EXIST;
        break;
      }


Una delle quattro opzioni

case ORDER_STATE_STARTED:
        case ORDER_STATE_REQUEST_ADD:
        case ORDER_STATE_REQUEST_MODIFY:
        case ORDER_STATE_REQUEST_CANCEL:
 

La domanda più grande è questa

Sono 6-7 ms, e poi i freni sono incomprensibili(917.779)

2017.02.10 14:07:32.008 Trades  'xxxxx': buy limit 2.00 BR-7.17 at 56.89 placed for execution in 7.124 ms
2017.02.10 14:07:32.020 Trades  'xxxxx': cancel order #52361023 buy limit 2.00 BR-7.17 at 56.89
2017.02.10 14:07:32.025 Trades  'xxxxx': accepted cancel order #52361023 buy limit 2.00 BR-7.17 at 56.89
2017.02.10 14:07:32.026 Trades  'xxxxx': cancel order #52361023 buy limit 2.00 BR-7.17 at 56.89 placed for execution in 6.297 ms
2017.02.10 14:08:00.711 Trades  'xxxxx': modify order #52360848 sell limit 1.00 BR-9.17 at 58.40 sl: 0.00 tp: 0.00 -> 58.23, sl: 0.00 tp: 0.00
2017.02.10 14:08:01.628 Trades  'xxxxx': accepted modify order #52360848 sell limit 1.00 BR-9.17 at 58.40 sl: 0.00 tp: 0.00 -> 58.23, sl: 0.00 tp: 0.00
2017.02.10 14:08:01.629 Trades  'xxxxx': modify order #52360848 sell limit 1.00 BR-9.17 at 58.40 sl: 0.00 tp: 0.00 -> 58.23, sl: 0.00 tp: 0.00 placed for execution in 917.779 ms
2017.02.10 14:08:04.005 Trades  'xxxxx': modify order #52360848 sell limit 1.00 BR-9.17 at 58.23 sl: 0.00 tp: 0.00 -> 58.08, sl: 0.00 tp: 0.00
2017.02.10 14:08:04.011 Trades  'xxxxx': accepted modify order #52360848 sell limit 1.00 BR-9.17 at 58.23 sl: 0.00 tp: 0.00 -> 58.08, sl: 0.00 tp: 0.00
2017.02.10 14:08:04.012 Trades  'xxxxx': modify order #52360848 sell limit 1.00 BR-9.17 at 58.23 sl: 0.00 tp: 0.00 -> 58.08, sl: 0.00 tp: 0.00 placed for execution in 6.677 ms
Motivazione: