[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 563

 
tente realizar uma operação inválida, por exemplo, dividindo por 0.
 
sergeev:
tente realizar uma operação inválida, por exemplo, dividindo por 0.
bobagem.
 
ditrader:
bobagem.

bobagem.
 
sss2019:

Diga-me por que pode haver um erro 130

ticket1 = OrderSend(Symbol(),OP_BUYLIMIT,Lot,Level,Slippage,0,0,0,MagicNumber,0,Green);

Definitivamente Nível. Verificar a exatidão do preço e sua normalização.

Para o nível de limite de compra deve estar abaixo do preço pedido, a uma distância não menor do que o StopLevel de sua corretora.

Isto é, se (Perguntar - StopLevel*Point < Nível) Nível = NormalizarDuplo(Perguntar - StopLevel*Point, Dígitos);

Onível deve ser normalizado para Dígitos antes de ser passado como parâmetro para OrderSend();

 
takeda:

Como terminar um Expert Advisor programmaticamente - algo como terminar(0) ?

A MQL4 tem essa possibilidade, ou só é possível terminar um Expert Advisor manualmente?

Obrigado de antemão.


Feche sua janela, dê a si mesmo um comando para apagar...

PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);
 
FAQ:


Feche sua janela, dê a si mesmo um comando para apagá-la...


Isto também é tortuoso.

Primeiro, a janela do gráfico se fechará (e pode haver indicadores úteis sobre ela naquele momento).

Em segundo lugar, o que acontecerá se várias janelas com o mesmo período forem abertas para um símbolo? A janela, na qual o Expert Advisor foi lançado, será fechada?

 
Dei um exemplo de um comando para me apagar como EA. Você pode fechar sua janela, e somente a janela em que a exp exp está em pé será fechada. Mas este é outro código.
 
takeda:

Como terminar um Expert Advisor programmaticamente - algo como terminar(0) ?

A MQL4 tem essa possibilidade, ou só é possível terminar um Expert Advisor manualmente?

Muito obrigado.


Portanto, desenhe sua variante: "programática":

"O encerramento da sessão atual da função especial de início() para programas de todos os tipos pode ser devido a É possível encerrar o programa a partir de um gráfico, mudança de um símbolo e/ou de um período gráfico, mudança de conta, fechamento de um gráfico ou como resultado do encerramento do terminal do cliente. Se a função especial start() estava em execução quando o comando de saída foi dado, o tempo permitido pelo terminal para terminar a função é de 2,5 segundos. Se a função especial start() continuar a funcionar por mais do que o tempo especificado após o comando de saída ser recebido, ela será forçada a parar no terminal do cliente.

Função especial deinit().


Uma função especial deinit() tem sua própria propriedade - ela é executada quando o programa é fechado (deinicializado). Se a função especial deinit() for descrita em um programa, ela será chamada (e executada) quando o programa for fechado. Se não houver nenhuma função especial deinit() no programa, nenhuma ação é realizada quando o programa é fechado.

A função especial deinit() é chamada para execução pelo terminal do cliente também no fechamento do terminal do cliente, no fechamento da janela do instrumento financeiro, logo antes da mudança de um instrumento financeiro e/ou período de um gráfico, na recompilação bem sucedida do programa no MetaEditor, na mudança dos parâmetros de entrada e também na mudança de uma conta.

Nos Expert Advisors e scripts, o fechamento do programa com a necessidade de chamar a função especial deinit() também ocorre devido à junção de um novo programa do mesmo tipo à janela do instrumento financeiro, substituindo o anterior.

 
Roman.:



A função especial deinit().


Chamar deinit() não fará com que o programa termine. O EA/indicador permanecerá na tabela e continuará a processar carrapatos.
 
PapaYozh:

Uma chamada da função deinit() não causa o término do programa. O Consultor/indicador especializado permanecerá na tabela e continuará processando os ticks.


E se você chama uma coruja diferente para trabalhar de forma programática:

"Nos EAs e scripts, o fechamento do programa com a necessidade de chamar a função especial deinit() também ocorre porque um novo programa do mesmo tipo foi anexado à janela da ferramenta financeira, substituindo o anterior".

Razão: