Andrey Khatimlianskii: Isso mesmo, a latência da rede. E o pedido leva muito tempo para enviar (ou receber confirmação) e o evento é perdido.
Não, não é!
1. isto não é um atraso "rede", mas um atraso do servidor MT5(talvez o hardware do corretor)
2. a TradeTransaction NÃO se perde sempre (SEMPRE), como visto acima, o atraso foi de 409 ms e o evento não foi perdido
É por isso que argumento que não é a rede mas o servidor MT5 (o hardware do corretor) que é o culpado pelos atrasos.
O tempo de resposta do servidor da função CheckOrders() é de 700 a 1200 ms (dependendo do
em que ponto do timer (período 500 ms) o comando foi enviado), que é 100 vezes maior do que o tempo de execução (na minha configuração) em modo normal ( 7-9 ms)
O fato de que com um atraso de 18 ms o evento foi perdido, e com 409 ms não foi, nos permite dizer que este é um "bug" do servidor MT5 e não outro
causas.
Também... Meu amigo, que mora em minha casa, negocia em dois terminais com meu robô através do meu provedor através do mesmo roteador da casa, e por alguma razão ele
nenhuma latência no momento!
2015.10.2214:14:05.041 Trades 'xxxxx': modify order #22486145 buy limit 2.00 ED-6.16 at 1.1326 sl: 0.0000 tp: 0.0000 -> 1.1332, sl: 0.0000 tp: 0.00002015.10.2214:14:05.049 Trades 'xxxxx': modify order #22486145 buy limit 2.00 ED-6.16 at 1.1326 sl: 0.0000 tp: 0.0000 -> 1.1332, sl: 0.0000 tp: 0.0000 placed for execution in8 ms
2015.10.2214:14:38.389 Trades 'xxxxx': cancel order #22486314 sell limit 2.00 Eu-12.16 at 828672015.10.2214:14:38.397 Trades 'xxxxx': cancel order #22486314 sell limit 2.00 Eu-12.16 at 82867 placed for execution in8 ms
Ou seja,abrimos uma posiçãocom uma ordem, fechamo-la com uma ordem inversa, e observamos o volume da posição como resultado.
Esperamos 0 (zero), temos 1 (um). Os toros estão abaixo (começar na parte inferior).
2015.10.2716:28:11.4762015.10.2610:05:08ExpertRemove() function called
2015.10.2716:28:11.4652015.10.2610:03:14 INFO>> *** VOLUME=1.0 *** ID=2 *** TYPE=POSITION_TYPE_SELL *** OrdersTotal()=02015.10.2716:28:11.4502015.10.2610:01:47 CLOSE Volume=1.02015.10.2716:28:11.4502015.10.2610:01:47 CLOSE OrdersTotal()=02015.10.2716:28:11.4502015.10.2610:01:47 CLOSE Deal=32015.10.2716:28:11.4502015.10.2610:01:47 CLOSE Order=32015.10.2716:28:11.4502015.10.2610:01:47 CLOSE Retcode=100092015.10.2716:28:11.4502015.10.2610:01:47 CLOSE OrderSend=true2015.10.2716:28:11.4492015.10.2610:01:47 order performed buy 1.00 at 9249 [#3 buy 1.00 SBRF-12.15 at 9249]
2015.10.2716:28:11.4492015.10.2610:01:47 deal performed [#3 buy 1.00 SBRF-12.15 at 9249]
2015.10.2716:28:11.4492015.10.2610:01:47 deal #3 buy 1.00 SBRF-12.15 at 9249 done (based on order #3)
2015.10.2716:28:11.4492015.10.2610:01:47 exchange buy 1.00 SBRF-12.15 at 9249 (9242 / 9249 / 9242)
2015.10.2716:28:11.4492015.10.2610:01:47 CLOSE>> *** VOLUME=1.0 *** ID=2 *** TYPE=POSITION_TYPE_SELL *** OrdersTotal()=02015.10.2716:28:11.4222015.10.2610:00:57 order performed sell 1.00 at 9205 [#2 sell stop 1.00 SBRF-12.15 at 9205]
2015.10.2716:28:11.4222015.10.2610:00:57 deal performed [#2 sell 1.00 SBRF-12.15 at 9205]
2015.10.2716:28:11.4222015.10.2610:00:57 deal #2 sell 1.00 SBRF-12.15 at 9205 done (based on order #2)
2015.10.2716:28:11.4222015.10.2610:00:57 order [#2 sell stop 1.00 SBRF-12.15 at 9205] triggered
2015.10.2716:28:11.4222015.10.2610:00:57 OPEN Volume=0.02015.10.2716:28:11.4222015.10.2610:00:57 OPEN OrdersTotal()=12015.10.2716:28:11.4222015.10.2610:00:57 OPEN Deal=02015.10.2716:28:11.4222015.10.2610:00:57 OPEN Order=22015.10.2716:28:11.4222015.10.2610:00:57 OPEN Retcode=100092015.10.2716:28:11.4222015.10.2610:00:57 OPEN OrderSend=true2015.10.2716:28:11.4222015.10.2610:00:57 sell stop 1.00 SBRF-12.15 at 9205 (9205 / 9227 / 9205)
2015.10.2716:28:11.4222015.10.2610:00:57 OPEN>> *** VOLUME=0.0 *** ID=0 *** TYPE=POSITION_TYPE_BUY *** OrdersTotal()=02015.10.2716:28:11.344 SBRF-12.15,M1: testing of Experts\Projects\CoinAge5\Helper_v01\mq5\Tst\TST006_Open_Close_Positions_001.ex5 from 2015.10.2600:00 to 2015.10.2700:00 started
Não, não é. É assim que eu lido com meu próprio código, enquanto em sua versão eu teria que analisar uma biblioteca não escrita por mim. Se você olhar dentro desta biblioteca, você encontrará aproximadamente o mesmo conjunto de operações que eu. É por isso que quero primeiro entender o mecanismo de fazer pedidos em FORTS e depois, talvez, usar as bibliotecas padrão.
Isso mesmo, a latência da rede. E o pedido leva muito tempo para enviar (ou receber confirmação) e o evento é perdido.
Não, não é!
1. isto não é um atraso "rede", mas um atraso do servidor MT5(talvez o hardware do corretor)
2. a TradeTransaction NÃO se perde sempre (SEMPRE), como visto acima, o atraso foi de 409 ms e o evento não foi perdido
É por isso que argumento que não é a rede mas o servidor MT5 (o hardware do corretor) que é o culpado pelos atrasos.
O tempo de resposta do servidor da função CheckOrders() é de 700 a 1200 ms (dependendo do
em que ponto do timer (período 500 ms) o comando foi enviado), que é 100 vezes maior do que o tempo de execução (na minha configuração) em modo normal ( 7-9 ms)
O fato de que com um atraso de 18 ms o evento foi perdido, e com 409 ms não foi, nos permite dizer que este é um "bug" do servidor MT5 e não outro
causas.
Também... Meu amigo, que mora em minha casa, negocia em dois terminais com meu robô através do meu provedor através do mesmo roteador da casa, e por alguma razão ele
nenhuma latência no momento!
Michael, por favor, não edite os postes. É melhor acrescentar novas, para não ter que procurar por atualizações com os olhos.
O quê?
O script faz OrderSelect em cada ordem antes de ser apagado e se for selecionado significa que não está na história e ativo, quais são os erros?
Após eliminar uma ordem, os números dos restantes não processados são deslocados por 1.
Michael, vamos ter outra "folha" com atrasos, está ficando entediante. :))))
Quando você vai para a abertura? :)))))))
Há o seguinte código:
Ou seja,abrimos uma posiçãocom uma ordem, fechamo-la com uma ordem inversa, e observamos o volume da posição como resultado.
Esperamos 0 (zero), temos 1 (um). Os toros estão abaixo (começar na parte inferior).
Qual é a razão?
Eis uma pergunta que eu tenho, para os conhecedores. Como zerar uma posição?(FORTS, Otkrytie-Broker, Real)
Há o seguinte código:
Ou seja,abrimos uma posiçãocom uma ordem, fechamo-la com uma ordem inversa, e observamos o volume da posição como resultado.
Esperamos 0 (zero), temos 1 (um). Os toros estão abaixo (começar na parte inferior).
Qual é a razão?
Não é mais simples?
?
Qual é a razão?
Não é mais simples?
?
Não, não é. É assim que eu lido com meu próprio código, enquanto em sua versão eu teria que analisar uma biblioteca não escrita por mim. Se você olhar dentro desta biblioteca, você encontrará aproximadamente o mesmo conjunto de operações que eu. É por isso que quero primeiro entender o mecanismo de fazer pedidos em FORTS e depois, talvez, usar as bibliotecas padrão.