Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 835

 
Maxim Kuznetsov:

mesmo o compilador destacará "o resultado da OrderSelect deve ser verificado" no primeiro caso ;-)

Se você mudar para o primeiro se (!OrderSelect(...)) continuar; então as opções são idênticas.

No primeiro o código é visualmente linear, no segundo parece uma escadaria. Eu prefiro o primeiro, é mais fácil de ler e, em geral, o aparecimento de abas lógicas profundas {{{{ }}}} indica que é hora de mudar alguma coisa :-)

Obrigado. Escrever em escadas afeta a velocidade do código? É mais fácil para mim entender a escrita escalonada.

 
novichok2018:

Obrigado. O registro de escadas afeta a velocidade de execução do código? É mais fácil para mim entender a escrita em escadas.

É o algoritmo que influencia, em primeiro lugar, a velocidade de execução. E como você o representa no código não importa realmente.

Não é sobre isso que você pensa.

Você escreve o código para que possa trabalhar com ele mais tarde. Por isso, escreva como quiser e não incomode sua mente com problemas que você não encontra na realidade.

Bem, você não tem nenhum problema de velocidade que precisa evitar com truques e peculiaridades de codificação. Simplesmente garantido, você não tem.

Quando (o que é improvável) eles aparecerem, então você otimizará o desempenho.

 
Maxim Kuznetsov:

A velocidade de execução é afetada principalmente pelo algoritmo. E como você o representa no código não é tão importante assim.

Não é nisso que você está pensando.

Você escreve o código para que possa trabalhar com ele mais tarde. Por isso, escreva como quiser e não incomode sua mente com problemas que você não encontra na realidade.

Bem, você não tem nenhum problema de velocidade que precisa evitar com truques e peculiaridades de codificação. É garantido, você não.

Quando (o que é improvável que aconteça) você otimizará seu código.

Muito obrigado! Muito compreensível.

 
É possível nas antigas pastas do programa mt4 trabalhar ainda no XP vindos e instalado, se for o caso, como.
 
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.06
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Alexander Layzerevich:
Por favor, me ajude com esta pergunta :https://www.mql5.com/ru/forum/160683/page833#comment_11585085

Duvido que isso o ajude, mas é tudo:

- Você pegou parte do código do MT5 e está tentando "aparafusá-lo" ao MT4, não é assim que os indicadores são chamados no MT4

- Você não declarou corretamente o cabeçalho da função

- O MT4 não tem a função CopyBuffer() incorporada

Isso não funcionará em geral, procure outras opções para adicionar mais algumas partes de código - a sintaxe da MQL4 e MQL5 é 95% semelhante, mas você não pode copiar imprudentemente partes de código entre plataformas

 
Igor Makanu:

Duvido que isso o ajude, mas é tudo:

- Você pegou parte do código do MT5 e está tentando "aparafusá-lo" ao MT4, não é assim que os indicadores são chamados no MT4

- Você não declarou corretamente o cabeçalho da função

- O MT4 não tem a função CopyBuffer() incorporada

a sintaxe da MQL4 e MQL5 é 95% semelhante, mas você não pode copiar imprudentemente seções de código entre plataformas

Desculpe, esqueci de especificar o código para MT5

Ele simplesmente não chama a função de Desvio (int kanal).

Eu queria perguntar como fazer isso corretamente ?

 
Igor Makanu:

realizar um exemplo a um do artigohttps://www.mql5.com/ru/articles/18

Como opção, você compilou um projeto para a dll de 64 bits, o terminal MT4 é de 32 bits, você precisa configurar e compilar o projeto para .dll de 32 bits

Também estou fazendo perguntas lá, experimentei os exemplos propostos lá, de fato, coloquei fotos com experimentos. Bem, sim há algo com estas versões, normalmente tudo isto deve estar na ajuda, como conectar que nuances. Recebi alguns links com códigos, abri estas aulas e as fechei, em geral zombaria de informação, não o que você quer e faz. Bem, com licença, vou voltar a este tópico após 20 anos de experiência em programação. Como sei que a compilação é para 64, como posso descobrir?

 
Seric29:

Como eu sei que a dll é compilada para 64?

Veja as propriedades do projeto no Visual Studio, deve haver uma opção para qual plataforma compilar a dll - MT4 precisa de código de 32 bits

PS: google encontrar a configuração VS

 
Igor Makanu:

Duvido que isso o ajude, mas é tudo:

- Você pegou parte do código do MT5 e está tentando "aparafusá-lo" ao MT4, não é assim que os indicadores são chamados no MT4

- Você declarou um cabeçalho de função errado

- O MT4 não tem a função CopyBuffer() incorporada

a sintaxe da MQL4 e MQL5 é 95% semelhante, mas você não pode copiar imprudentemente seções de código entre plataformas

Você tem os seguintes fragmentos de código?

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos.

Qualquer pergunta, ajuda e discussão sobre algoritmos e códigos para iniciantes da MQL4

Alexander Layzerevich, 2019.05.06 17:21

Estou tentando receber dados indicadores no MT5 usando esta função:

//************************************************************************************************/
double Envelopes(string symb, ENUM_TIMEFRAMES TF_1, int period, int method, int shift, int price,double Deviation(ENUM_TIMEFRAMES TF_2, int kanal), int buff, int index)
{
  double buf[1];
  int handle=iEnvelopes(Symbol(), TF_1, period, method, shift, price, Deviation(TF_2, kanal), buff);
   if(handle<0)
   {
    Print("Failed to create handle ATR, Error: ",GetLastError());
    return(WRONG_VALUE);
   } else
   {
    if(CopyBuffer(handle,0,index,1,buf)<0)
    {
     Print("Failed to copy data from the indicator ATR, Error: ",GetLastError());
     return(WRONG_VALUE);
    }
   }
   return(buf[0]);
}
//************************************************************************************************/

Eu recebo erro :


Favor informar como corrigir o código para MT5

Destacado não é diferente de uma declaração de função. Acontece que uma função é declarada nos parâmetros de entrada da função.