WebAssembly (WASM) — новый бинарный формат, позволяющий запускать код в браузере...
Aplicações de WebAssembly:
-Menos tempo de carga -Velocidade de computação mais elevada -Utilizar código pronto C/C++
Considerando os rumores médios sobre um possível serviço web para a compilação de código MQL, há uma questão razoável sobre a viabilidade de implementar o projecto de executar Consultores Peritos personalizados directamente a partir de um browser baseado em WebAssembly.
Эта статья основана на моём выступлении на ITSubbotnik, прошедшем в Рязани 14 октября 2017 года. На русском пока что довольно мало материала на эту тему, надеюсь что статья будет вам полезна. Disclaimer: Автор не является экспертом ни в WebAssembly, ни в JavaScript. Данная статья есть компиляция мыслей и идей, полученных из выступлений других...
Apagar os troncos, fará mais sentido. Tanto o Conselheiro Especialista como o terminal.
Aba terminal
2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]
Especialista em separadores
Line 8103: 216:29:01.266 Forex V2 EURNZD,M1: open #4448742 sell 0.02 EURNZD at 1.68131 ok
Line 8104: 016:29:01.266 Forex V2 EURNZD,M1: Order #4448742 open
Line 10145: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 1 закрытия/удаления ордера #4448742 Ошибка: 3
Line 10146: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10147: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 2 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10148: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10149: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 3 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10150: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10151: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 4 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10152: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10153: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 5 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10154: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10155: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 6 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10156: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10157: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 7 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10158: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10159: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 8 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10160: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10161: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 9 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10162: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10163: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 10 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10164: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10165: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 11 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10166: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10167: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 12 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10168: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10169: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 13 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10170: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10171: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 14 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10172: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10173: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 15 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10174: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10175: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 16 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10176: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10177: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 17 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10178: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10179: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 18 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10180: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10181: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 19 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10182: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10183: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 20 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10184: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10185: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 21 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10186: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10187: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 22 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10188: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10189: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 23 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10190: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10191: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 24 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10192: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10193: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 25 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10194: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10195: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 26 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10196: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10197: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 27 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10198: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10199: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 28 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10200: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10201: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 29 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10202: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10203: 020:37:39.760 ExpertName EURNZD,H1: Неудачная попытка 30 закрытия/удаления ордера #4448742 Ошибка: 4108
Line 10204: 320:37:39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10243: 220:37:39.760 ExpertName EURNZD,H1: close #4448742 sell 0.02 EURNZD at 1.68131 at price 1.68356
Nenhum fecho ocorre realmente após o Erro 3. Eu compreendi-o.
O Expert Advisor #1 está a fechar e o segundo estava a tentar fechar a mesma posição ao mesmo tempo.
Fixei a lógica de trabalho e agora não há erros.
MAS: O número de erro muda de #3 para #4108 quando os parâmetros passam para OrderClose() dentro do laço permanecem inalterados.
Porquê primeiro o erro #3 e depois o #4108 é lançado? - Esta é a questão que permanece.
{Se olharmos para os horários, então temos uma tentativa de fechar uma ordem bloqueada (caso em que o próprio erro 139 não é mostrado), mas depois de fechada (e a ordem é desbloqueada em conformidade) obtemos o erro 3 }.
Porque é que o terminal não nos dá um erro específico de que a ordem está bloqueada e em vez disso obtemos um erro demasiado geral 3 ?
Não sei. Mas também é difícil chamar-lhe um insecto.
2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]
Se olhar para o registo do terminal, a mensagem de erro 3 é gerada após a posição ser fechada, e não quando o bloqueio no servidor deveria ter sido detectado.
A mensagem de erro 139 poderia ter sido mostrada quase 0,5 segundos antes. Todo este tempo, o Conselheiro Especialista "pendura" para obter o erro 3 após o encerramento da encomenda.
E a propósito, o erro 3 Parâmetros Inválidos está no registo terminal e 4108 apenas devido à sua saída e apenas no separador EA. Parece que 4108 é processamento do lado do cliente.
Só quero saber/entender a lógica para a colocar no código, em vez de a colocar com o método de calibragem científica... )
Em que outra situação se obteria um erro 139 que este...?
Que situação melhor para obter um erro 139 do que esta...?
Quando uma ordem pendente/SL/TP é accionada ou uma posição é fechada por uma paragem (também no servidor).
Não sei de 4108. Mas mais uma vez, não vejo razão para investigar - se 2 EAs dão simultaneamente uma ordem para fechar, um deles terá definitivamente um erro (que diferença faz?). O processamento é muito simples - fazer OrderSelect e verificar OrderCloseTime.
wtf? do moderador: Infelizmente, devido a uma falha técnica, o texto de descrição foi eliminado. Por favor, escreva-o novamente e envie o produto para verificação. Pedimos desculpa pelo incómodo causado.
Não é apenas um inconveniente, é uma dor no pescoço algumas vezes (cada vez - uma espera de 10 dias), e depois apagar e dizer: oops, desculpe, apagámos, de alguma forma restabelecemos nós próprios, depois esperamos mais 10 dias. - E quando tento fazê-lo o site cai...
Que diabos é isto? Que tipo de falha tem de acontecer para que isto se perca? que não há história para recuperar? A mensagem de descrição está em armazenamento há alguns dias. Porque é que a mensagem do moderador não apareceu desta vez?
Sei, de facto, que este problema de limpeza não acontece uma única vez. Esta alegada falha, na realidade não é uma falha (provavelmente atrasada), porque não me acontece só a mim e não ao mesmo tempo (o problema existe há mais de meio ano)! - Por favor comente...
E, por favor, conserte-o. Se não puder, contrate-me. Faço-o numa semana, por 2.000 euros.
Que fiasco.
Será que alguma vez recuperarão o material apagado? Metade da minha correspondência com o moderador desapareceu. As mensagens do fórum desapareceram. E os moderadores apagaram mensagens que ficaram em branco no rescaldo. Porque é que não há modo de manutenção? - É melhor dizer por esta ordem: primeiro é activado o modo, depois o trabalho está em curso, depois o modo é restaurado.
Assim que eu publiquei uma mensagem, o site está em baixo. Decidi refrescar - o site está em baixo...
wtf pela segunda vez. o comentário acima foi escrito há 4 dias. agora está de volta com um comentário que já corrigi. eu afixei uma nova versão do produto. agora desapareceu. para onde foi a nova versão? Isto não é maneira de trabalhar - bem, não é sério... Num novo comentário ao moderador, duplicei a descrição que faltava, para não perder mais. o que fazer com o produto? enviá-lo por e-mail? anexá-lo aos comentários? ou tentar novamente e esperar 24 horas?
Uma panorâmica bastante interessante da nova tecnologia WebAssemblyem https://habrahabr.ru/post/342180/
WebAssembly (WASM) — новый бинарный формат, позволяющий запускать код в браузере...
Aplicações de WebAssembly:
-Menos tempo de carga
-Velocidade de computação mais elevada
-Utilizar código pronto C/C++
Considerando os rumores médios sobre um possível serviço web para a compilação de código MQL,
há uma questão razoável sobre a viabilidade de implementar o projecto de executar Consultores Peritos personalizados directamente a partir de um browser baseado em WebAssembly.
Apagar os troncos, fará mais sentido. Tanto o Conselheiro Especialista como o terminal.
Aba terminal
Especialista em separadores
Nenhum fecho ocorre realmente após o Erro 3. Eu compreendi-o.
O Expert Advisor #1 está a fechar e o segundo estava a tentar fechar a mesma posição ao mesmo tempo.
Fixei a lógica de trabalho e agora não há erros.
MAS: O número de erro muda de #3 para #4108 quando os parâmetros passam para OrderClose() dentro do laço permanecem inalterados.
Porquê primeiro o erro #3 e depois o #4108 é lançado? - Esta é a questão que permanece.
{Se olharmos para os horários, então temos uma tentativa de fechar uma ordem bloqueada (caso em que o próprio erro 139 não é mostrado), mas depois de fechada (e a ordem é desbloqueada em conformidade) obtemos o erro 3 }.
Porque é que o terminal não nos dá um erro específico de que a ordem está bloqueada e em vez disso obtemos um erro demasiado geral 3 ?
MAS: Alterar o número de erro de #3 para #4108 quando os parâmetros passados para OrderClose() dentro do laço se mantêm inalterados.
Porque é que o erro #3 primeiro e depois #4108? - Esta é a questão que permanece.
Esta é a versão do código onde havia 1 OrderSelect, não é? Depois 4108 é justificado.
3 é quando outra EA fecha uma posição e 4108 é quando tentamos fechar uma posição já fechada.
Esta é a versão do código onde havia 1 OrderSelect, não é? Depois 4108 é justificado.
3 é quando outra EA fecha uma posição, 4108 é quando tentamos fechar uma posição já fechada.
Certo.
Mas porque é que o erro 139 não é gerado quando se tenta fechar uma encomenda que já foi fechada?
Afinal de contas, temos antes a situação de erro 139. Não é assim?
Texto de erro incorrecto
Correcto.
Mas porque é que o erro 139 não aparece quando se tenta fechar uma encomenda que já foi enviada para fechar?
Afinal de contas, temos antes a situação de erro 139. Não é assim?
Não sei. Mas também não se pode chamar um insecto.
Não sei. Mas também é difícil chamar-lhe um insecto.
Se olhar para o registo do terminal, a mensagem de erro 3 é gerada após a posição ser fechada, e não quando o bloqueio no servidor deveria ter sido detectado.
A mensagem de erro 139 poderia ter sido mostrada quase 0,5 segundos antes. Todo este tempo, o Conselheiro Especialista "pendura" para obter o erro 3 após o encerramento da encomenda.
E a propósito, o erro 3 Parâmetros Inválidos está no registo terminal e 4108 apenas devido à sua saída e apenas no separador EA. Parece que 4108 é processamento do lado do cliente.
Só quero saber/entender a lógica para a colocar no código, em vez de a colocar com o método de calibragem científica... )
Em que outra situação se obteria um erro 139 que este...?
Que situação melhor para obter um erro 139 do que esta...?
Quando uma ordem pendente/SL/TP é accionada ou uma posição é fechada por uma paragem (também no servidor).
Não sei de 4108.
Mas mais uma vez, não vejo razão para investigar - se 2 EAs dão simultaneamente uma ordem para fechar, um deles terá definitivamente um erro (que diferença faz?).
O processamento é muito simples - fazer OrderSelect e verificar OrderCloseTime.
wtf?
do moderador:
Infelizmente, devido a uma falha técnica, o texto de descrição foi eliminado. Por favor, escreva-o novamente e envie o produto para verificação.
Pedimos desculpa pelo incómodo causado.
Não é apenas um inconveniente, é uma dor no pescoço algumas vezes (cada vez - uma espera de 10 dias), e depois apagar e dizer: oops, desculpe, apagámos, de alguma forma restabelecemos nós próprios, depois esperamos mais 10 dias. - E quando tento fazê-lo o site cai...
Que diabos é isto? Que tipo de falha tem de acontecer para que isto se perca? que não há história para recuperar? A mensagem de descrição está em armazenamento há alguns dias.
Porque é que a mensagem do moderador não apareceu desta vez?
Sei, de facto, que este problema de limpeza não acontece uma única vez. Esta alegada falha, na realidade não é uma falha (provavelmente atrasada), porque não me acontece só a mim e não ao mesmo tempo (o problema existe há mais de meio ano)! - Por favor comente...
E, por favor, conserte-o. Se não puder, contrate-me. Faço-o numa semana, por 2.000 euros.
Que fiasco.
Será que alguma vez recuperarão o material apagado? Metade da minha correspondência com o moderador desapareceu. As mensagens do fórum desapareceram. E os moderadores apagaram mensagens que ficaram em branco no rescaldo.
Porque é que não há modo de manutenção? - É melhor dizer por esta ordem: primeiro é activado o modo, depois o trabalho está em curso, depois o modo é restaurado.
Assim que eu publiquei uma mensagem, o site está em baixo. Decidi refrescar - o site está em baixo...
Isto não é maneira de trabalhar - bem, não é sério...
Num novo comentário ao moderador, duplicei a descrição que faltava, para não perder mais.
o que fazer com o produto? enviá-lo por e-mail? anexá-lo aos comentários? ou tentar novamente e esperar 24 horas?