Adeus robô - olá marasmus - página 3

 

Fiquei apreensivo com a mudança para novas construções, mas descobri que todos os indicadores, EAs e roteiros funcionaram como estão. Compilado, no entanto, com um conjunto de avisos. Mas o novo código compilado funciona muito mais rápido. As únicas novidades que utilizo são OnTimer(), novas opções para trabalhar com arquivos, aumento do número de buffers indicadores, algumas novas funções (seu aumento é apenas uma questão de tempo). Muito útil é o controle de sobreposição de array com indicação de string no código. Costumava ser: dividir por zero, e olhar onde você quiser. E seria ainda pior se o erro não ocorresse.

"O que há de novo na MQL4" pode ser escrito para aqueles que se lembram das coisas antigas. Não há mais novatos?

Se você quiser dar-lhes uma descrição da MQL4 Lite, você pode deixar de fora da documentação tudo que é fundamentalmente novo e desnecessário: estruturas, classes, recursos, apontadores de objetos, OOP, depurador, sinais, eventos gráficos, todas as funções que utilizam este novo conhecimento, etc. Tudo o que será deixado para trás não será muito mais complicado do que a antiga MQL4. Modificar ligeiramente o livro de texto para o novo, que é deixado intocado.

.

 

Renat 09.09.2014 02:55 #

Você pode metodicamente fazer argumentos novamente, explicar sobre multiplicação de características, salvar código antigo, corrigir bugs, etc. Isto tem sido feito muitas vezes, descrito em artigos e discutido em fóruns. Mas é mais fácil e mais preciso dizer que o autor está absolutamente errado e está inventando problemas a partir do nada.

Resposta à Renat!

----------------------------------------------------------------

Você está tentando inventar merdas sobre mim!

Você, como desenvolvedor, serve aos bancos,

não a comunidade! Você está construindo um carro de corrida

com uma bicicleta de criança movida a pedal!

Por isso, tenho que lhes dar os fatos.

Pergunta:

Onde o User32. dll

com as funções para chamar o script do eXpert, o indicador.

Tudo isso se foi! Abaixo está a prova.

o próprio linker me fez um ehpert por uma taxa, que

para chamar o roteiro quando necessário.

agora o roteiro é chamado apenas manualmente.

a chamada em si é cercada por diferentes janelas - permitir a chamada

ou quer invocar um segundo roteiro - a janela "você quer deixar o

Somente o comércio manual é possível!

O que um robô deve fazer? E todos os escritores de robôs?

Não sou contra o OOP e o desempenho supostamente mais rápido do MT4.

Se você quisesse acelerar o MT4, você teria limitado o

Eu uso 5-6 e recebo centenas de datas!

Símbolos desnecessários são lixo.

e eles só vêm! É aí que a velocidade e a capacidade de resposta

Mas isso é ruim para os bancos!

Pansa

Importação de funções do usuário32. Se o propósito deles não for imediato

// claro, então documentá-lo aqui francamente não vai ajuda muito. Requer

// "Permitir a importação de DLL" para ser ativada.

#importar "user32.dll

int RegisterWindowMessageA(string MessageName);

int PostMessageA(int hwnd, int msg, int wparam, string Name);

void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo);

#importar

// O parâmetro hWnd para todas estas funções é obtido usando o WindowHandle().

// Por exemplo, um EA/script pode obter a manipulação de seu próprio gráfico usando

// WindowHandle(Symbol(), 0). Se a EA/script souber que outro gráfico

// está aberto, então seu cabo pode ser obtido usando o símbolo conhecido e

// prazo. Comportamento imprevisível se houver múltiplos gráficos para

// o mesmo símbolo e cronograma. AutomaticallyAcceptDefaults compensa

// a janela de configuração para o novo indicador/EA/script simulando

// uma pressão da tecla Enter após uma pequena espera. Uma espera mais longa pode

// provam ser mais robustos. Nada disso é para os fracos de coração...

Indicador StartStandard vazio(int hWnd, string IndicatorName, bool AutomaticallyAcceptDefaults = falso)

{

int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message");

PostMessageA(hWnd, MessageNumber, 13, IndicatorName);

se (AutomaticallyAcceptDefaults) ClearConfigDialog();

}

InícioVálidoIndicador Personalizado(int hWnd, string IndicatorName, bool AutomaticallyAcceptDefaults = falso)

{

int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message");

PostMessageA(hWnd, MessageNumber, 15, IndicatorName);

se (AutomaticallyAcceptDefaults) ClearConfigDialog();

}

StartEA(int hWnd, string EAName, bool AutomaticallyAcceptDefaults = falso)

{

int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message");

PostMessageA(hWnd, MessageNumber, 14, EAName);

se (AutomaticallyAcceptDefaults) ClearConfigDialog();

}

void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false)

{

int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message");

PostMessageA(hWnd, MessageNumber, 16, ScriptName);

se (AutomaticallyAcceptDefaults) ClearConfigDialog();

}

ClearConfigDialog() vazio

{

Sleep(100);

keybd_event(13, 0, 0, 0, 0);

}

 
pansa:

Renat 09.09.2014 02:55 #

Você pode metodicamente fazer argumentos novamente, explicar sobre multiplicação de características, salvar código antigo, corrigir bugs, etc. Isto tem sido feito muitas vezes, descrito em artigos e discutido em fóruns. Mas é mais fácil e mais preciso dizer que o autor está absolutamente errado e está inventando problemas a partir do nada.

Resposta à Renat!

----------------------------------------------------------------

Você está tentando falar mal de mim de uma maneira descarada!

Por que elogiar quando estamos em níveis de compreensão completamente diferentes?


user32.dll não vai a lugar algum - é uma biblioteca do sistema operacional.

Use variações W(idechar/unicode) de funções em vez de funções A(nsi):

#import "user32.dll"

   int  RegisterWindowMessageW(string MessageName);
   int  PostMessageW(int hwnd, int msg, int wparam, string Name);

   void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo);

#import
 
Se você remover o símbolo da janela de observação do mercado, nenhum tráfego passará por ela. Este mecanismo tem funcionado durante 14 anos.
 

Para a moderadora, Renate!

sobre o nível de compreensão - é relativo,

Eu carrego uma lança ao lado do glorioso cavaleiro Dom Quixote

e eu estou à altura da tarefa.

Você, por outro lado, tem que se encontrar mais

maiores exigências e produzir produtos de maior

maior qualidade.

well user32,dllrefere-se a windos.

Seu conselho para ir de A a W não teve efeito!

Tente executar o script a partir do eXpert!

A remoção dos caracteres não afeta a carga da CPU ou da rede.

é uma chamada de tela e o fio é o mesmo!

Espero que vocês concordem comigo.

Panza

 

Vejo que você também o faz.

Mas aqui estamos falando de programação e programas escritos por programadores. Se você não entende o código fonte que está usando, você precisa aprender. Fizemos muito para isso: documentação extensa, tutorial, artigos, base de fontes, freelance, mercado de produtos prontos, sinais, fórum, etc.

 
pansa:

Tente mudar o caso da primeira letra do nome do roteiro/indicador. De alguma forma eu também estava lutando https://www.mql5.com/ru/forum/152533/page2#982156

P.S: bem, mudar o fio para char[]

 

CaroRenat, eu também recebi muitos avisos depois de compilar EAs, sem erros.

Eu tenho uma pergunta, o que significam estes avisos (principalmente, eles estão na frente da linha de retorno())? E eles não afetarão negativamente o funcionamento dos Consultores Especialistas?

É claro que não quero aprender a língua novamente e refazer meus EAs (sou um comerciante, não um programador).

 
vasabu2012:

CaroRenat, eu também recebi muitos avisos depois de compilar EAs, sem erros.

Eu tenho uma pergunta, o que significam estes avisos (principalmente, eles estão na frente da linha de retorno())? E eles não afetarão negativamente o funcionamento dos Consultores Especialistas?

É claro que não quero aprender a língua novamente e refazer meus EAs (sou um comerciante, não um programador).


Por favor, envie-me os erros ou o código do Expert Advisor em que você cometeu alguns erros.
 
vasabu2012:

Eu também recebi uma série de avisos após a compilação dos EAs - sem erros.

E a maior parte das advertências de lixo surgiram devido à passagem perfeitamente legal, correta e padrão da variável por referência para a função, quando o nome do modelo da função corresponde à própria variável como deveria estar nesta construção em seu uso padrão e típico, quando a própria variável é passada para a função com seu próprio nome.

Infelizmente, os MCs não puderam dar uma explicação competente e lógica para isto, dizendo que às vezes pode haver mal-entendidos em outras construções quando há nomes semelhantes. Mas aqui está o paradoxo, por exemplo, quando há uma função com um mesmo nome e um número diferente de parâmetros, o aviso não vai aparecer.

Portanto, temos que atribuí-lo a algumas superstições religiosas e crenças obscuras quando não há lógica alguma por trás desta advertência. Ainda não considero a versão de idiotice, como sugerido pelo autor do fio para explicar este fenômeno)).