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

 
fxsaber:

Servidor Alpari-MT5-Demo. Este roteiro foi executado duas vezes.

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

Tais lentidões inesperadas ocorrem em quase todos os servidores demo. Portanto, o problema não diz respeito apenas aos FORTS.

Neste caso, os desenvolvedores deveriam ser mais fáceis de lidar, já que não há pontes. Dê uma olhada nesta situação.

Eu não tenho uma demonstração, eu tenho um REAL
 
prostotrader:
Eu não tenho uma demonstração, eu tenho um REAL

Portanto, no seu caso é muito mais difícil para os desenvolvedores resolverem o problema.

Demonstração - nada vai a lugar algum do ecossistema Metatrader. Ou seja, o problema não pode ser colocado em ninguém e, portanto, é mais fácil de localizar.

 
fxsaber:

Servidor Alpari-MT5-Demo. Este roteiro foi executado duas vezes.

Tais abrandamentos inesperados ocorrem em quase todos os servidores de demonstração. Portanto, o problema não diz respeito apenas aos FORTS.

Neste caso, os desenvolvedores deveriam ser mais fáceis de lidar, já que não há ponte. Dê uma olhada nesta situação.

Qual é o número de construção MT5?
 
Rashid Umarov:
Qual é o número de construção MT5?
1525.
 
Rashid Umarov:

Encontrei uma caixa reprodutível de freios!

Servidor FIBOGroup-MT5, demo, moeda base USD, Netting, build 1525.

Ainda executando o roteiro de teste (funcionará se o moderador atualizar a bíblia). Log de duas corridas consecutivas

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 vezes mais lento que outros modos! Reprodução.

 
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

Eu entendo corretamente que neste caso OrderSend retornou verdadeiro quase instantaneamente, mas 65 segundos foram observados(ENUM_ORDER_STATE)::OrderGetInteger(ORDER_STATE) == ORDER_STATE_STARTED?

Por favor, acrescente este cheque ao seu código.

 
fxsaber:

Eu entendo corretamente que neste caso OrderSend retornou verdadeiro quase instantaneamente, mas 65 segundos foram observados(ENUM_ORDER_STATE)::OrderGetInteger(ORDER_STATE) == ORDER_STATE_STARTED?

Por favor, acrescente este cheque ao seu código.

Eu estou usando OrderSendAsync

Mas se houver um atraso de mais de 1 segundo, eu verifico o status do pedido

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:

Eu uso OrderSendAsync

Mas, se houver um atraso de mais de 1 segundo, eu verifico o status do pedido

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;
Por isso, ainda começou.
 
fxsaber:
Então, Started ainda paira.

Não posso dizer com certeza, porque

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;
      }


Uma das quatro opções

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

A maior questão é esta

São 6-7 ms, ou os freios são incompreensíveis(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
Razão: