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

 
Oleg:

Colegas, por favor, avisem por que o som pára de tocar quando o volume desejado da vela.

O arquivo de som está na pasta SOUNDS, quando eu defino o alerta o arquivo está tocando normalmente, mas não há som no indicador.

Ou, você precisa de uma pasta especial com sons para indicadores?


/---- O laço principal do cálculo do indicador

for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
Range=(high[bar]-low[bar])/_Point;
IndBuffer[bar]=Range;

if(Range<5)
{
if (prev_calculado > 0 && Flag==0)
{
Flag=1;
}
}
if(Range>=Threshold){
clr=0;
if (prev_calculated > 0 && Flag===1 )
{
Bandeira=0;

PlaySound("zummer");


}
}

for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
  Range=(high[bar]-low[bar])/_Point;
  IndBuffer[bar]=Range;

  if(Range<5)
  {
    if (prev_calculated > 0 && Flag==0)
    {
      Flag=1;
    }
  }

  if(Range>=Threshold) {
    clr=0;
    if (prev_calculated > 0 && Flag==1 )
    {
      Flag=0;
      ResetLastError();
      PlaySound("zummer");
      Print(__FUNCTION__, " Error #", GetLastError());
    }
  }
}



E afixe aqui o erro que ele dá.

 
Иван:
Olá. Pergunta: Como o testador calcula os resultados para posições fechadas em MT4 quando trabalha com cruzamentos (pares sem $) no testador, se a conta onde o teste é feito é uma conta em dólar? Para o recálculo dos totais de posição em dólares, o testador leva a taxa de câmbio da moeda base da cruz para o dólar no momento atual ou no momento do intervalo testado? Suspeito fortemente que seja no momento atual. Em caso afirmativo, não é possível fazê-la contar no momento do intervalo?

Taras Slobodyanik:

Leia o MODE_TICKVALUE para cada carrapato em si.

Bem, digamos que isso conta. Mas como o testador pode ser "solicitado" a exibir na tabela de resultados o valor que eu calculei, em vez de seu cálculo curvo?
 
Mihail Matkovskij:

Veja atentamente o exemplohttps://www.mql5.com/ru/forum/160683/page1208#comment_17279150 . Você não encontra nada lá...?

Esta é a função:

Você deveria ser um pouco mais cuidadoso!

Talvez não tenhamos nos entendido, ou talvez eu não tenha formulado minha pergunta com precisão, mas.... olhei cuidadosamente a lista de todas as funções na Referência MQL4 e na Referência MQL5

Eu não encontrei a função

searshValue(double & array2D[2][], const int _len, const int _index, const double _value)

Eu não encontrei nenhum. Eu olhei o exemplo em seu link. Eu vi o código com função desconhecida. Mas ainda não encontrei a resposta à minha pergunta - de que língua vem esta função. Se estivesse na MQL4 eMQL5, acho que estaria na lista de funções em seus diretórios.

E então eu assumi que era uma função personalizada. Mas o artigo de Kovalev diz que os cálculos da função personalizada são feitos fora dos limites inferiores de start()
. E também li que ao escrever código em MT pode-se usar funções de outros idiomas, não apenas MQL4 e MQL5 .

As variáveis com identificadores CONST são listadas como parâmetros desta função . Eu nunca os encontrei naMQL4 e isso também me confundiu.
Eu sei que suas habilidades de programação são muitas ordens de magnitude diferentes das minhas. Estou apenas no início da compreensão. Peço-lhes que não me julguem estritamente e que sejam indulgentes comigo se vou ser lento e fazer perguntas bobas. Serei grato a você se você puder me enviar alguns links para informações que eu preciso, ou me dizer onde ler.

Mais uma coisa.... Eu criei um novo EA, copiei o primeiro código que você me enviou, compilei o código sem erros. Eu não fiz nenhuma mudança nele ... Fiquei muito surpreso que a função Print() estivesse faltando no livro razão depois de executar a EA no testador. Embora tenha sido executado muitas vezes em nossa EA.
Mais uma vez, obrigado pelo apoio informativo e informações valiosas.

 
ANDREY:

Talvez não tenhamos nos entendido, ou talvez eu não tenha formulado a pergunta com precisão, mas.... olhei cuidadosamente a lista de todas as funções do Manual.. .

Andrey, não pense que estou julgando você duramente. Se você não entender de onde vem uma função, clique com o botão direito sobre ela e selecione "Mover para Alt+G definição". E não se envergonhe se não souber de alguma coisa. É normal.

Como aprender a programar. Para fazer isso, você precisa responder à pergunta, para que serve? Se é para criar robôs comerciais e programas de análise técnica, são apenas exemplos relevantes, lições e artigos em MQL. Talvez até mesmo livros. Entretanto, quandome familiarizei com a MQL, aprendi muito bem, por isso não li nenhum livro, apenas li a documentação. Aconselho-o a entender primeiro o que é o programa. Para isso, comece pelo estudo do modelo de eventos MQL: https://docs.mql4.com/ru/basis/function/events . Este é um modelo básico. Se você já dominou, você pode facilmente seguir em frente. Talvez isto o ajude: Começando com MQL5: Escrevendo um simples Expert Advisor e Indicador(eu usei o mecanismo de busca). Também:O básico do idioma. Particularmente:Chamada de função eparâmetros de passagem(onde você tem dúvidas). Se você tiver perguntas durante o estudo (e elas serão), você pode usar a busca no Google ou no YouTube. Ou fazer perguntas aqui.Idealmente, seria bom aprender C++. Se você pesquisar no Google algo sobre sintaxe, você também pode adicionar "C++".

Функции обработки событий - Функции - Основы языка - Справочник MQL4
Функции обработки событий - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
В языке MQL4 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL4: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
 
Mihail Matkovskij:

Andrei, não pense que o estou julgando severamente. Se você não entender de onde vem esta ou aquela função, clique com o botão direito sobre ela e selecione "Ir para Alt+G definição". E não se envergonhe se não souber de alguma coisa. É normal.

Como aprender a programar. Para fazer isso, você precisa responder à pergunta, para que serve? Se é para criar robôs comerciais e programas de análise técnica, são apenas exemplos, lições e artigos relevantes em MQL. Talvez até mesmo livros. Entretanto, quandome familiarizei com a MQL, aprendi muito bem, por isso não li nenhum livro, apenas li a documentação. Aconselho-o a entender primeiro o que é o programa. Para isso, comece pelo estudo do modelo do evento MQL: https://docs.mql4.com/ru/basis/function/events . Este é um modelo básico. Se você já dominou, você pode facilmente seguir em frente. Talvez isto o ajude: Começando com MQL5: Escrevendo um simples Expert Advisor e Indicador(eu usei o mecanismo de busca). Mais:O básico do idioma. Particularmente:Chamada de função eparâmetros de passagem(onde você tem dúvidas). Se você tiver perguntas durante o estudo (e elas serão), você pode usar a busca no Google ou no YouTube. Ou fazer perguntas aqui.Idealmente, seria bom aprender C++. Se você pesquisar algo no Google sobre sintaxe, sinta-se à vontade para adicionar 'C++' também.

Obrigado pelos conselhos e dicas. Tudo começou para mim quando fiz um curso forex gratuito na Teletrade em Moscou alguns anos atrás, por nada para fazer e pelo desejo de colocar meu dinheiro de sobra em algum lugar. Mas depois de completar o curso, imediatamente tive a idéia de que negociar ao acaso é uma perda de dinheiro garantida... mesmo apesar de vitórias ocasionais. Foi por isso que tomei a firme decisão de não jogar com meu próprio dinheiro até ter um sistema e, antes de me formar, eu nem sequer tinha um PC. Eu não sou matemático. Não posso me afastar do computador e do MT4 desde que comprei um computador e coloquei o MT4 na rota, não posso me afastar do computador e do MT4 até este momento. Estou me observando e não consigo entender de onde veio este desejo irresistível e irracional. Eu não acho que seja só o dinheiro. Eu estou bem com dinheiro. Eu não trabalho e tenho todo o meu tempo em mãos. E eu preciso de algo para ocupá-la para que não se arraste por muito tempo. Notei que quando estudo Forex e programo o tempo voa rápida e imperceptivelmente, então, depois que me formei no curso levei muito tempo para dominar o computador e ao mesmo tempo estava olhando para gráficos na MT e tentando entender como e por que o preço se move em uma direção ou outra. Pode-se dizer que fiquei fascinado e encantado com o gráfico e ele criou uma forte posição dominante em meu cérebro. À medida que avançava em meu entendimento do computador, da Internet e do câmbio, aprendi sobre o comércio algorítmico e decidi ler sobre ele. E isso também me atraiu ao ponto de aprender um pouco de codificação com o tutorial de Kovalev. Quanto mais eu entendia o material do livro e tentava aplicá-lo enquanto codificava, mais diferentes pensamentos me chegavam, que eu tentava codificar. Mas há alguns meses atrás, inesperada e acidentalmente, vi um padrão, que aparece muito claramente nos pares EUR-USD e FUNT-DOLLAR. Eu consegui codificar este padrão. E o Assessor Especialista com este código no testador vem desenhando um gráfico de equilíbrio no testador desde 2008, que está constantemente se movendo para cima com drawdowns aceitáveis. Este foi um ímpeto adicional e poderoso para que eu me tornasse mais entusiasmado em estudar a programação MQL4. No momento não dominei o suficiente para começar a estudar a MQL5.

Obrigado novamente pelos links e por seus comentários.

Este é um gráfico de equilíbrio

Tenho algumas idéias de como tornar este gráfico mais otimizado. Mas eu ainda não tenho experiência suficiente para codificá-las todas.

 
ANDREY:

Quando você aprender MQL4 e passar para MQL5, ele vai te puxar ainda mais... :)

 
Mihail Matkovskij:

Quando você aprender MQL4 e passar para MQL5, ele vai te puxar ainda mais... :)

Vamos ver a rapidez com que isso acontece...

 
Mihail Matkovskij:

Se você não entender de onde vem uma função, clique com o botão direito sobre ela e selecione "Ir para Alt+G definição". E não se envergonhe se não souber de alguma coisa. Tudo bem.

É um item de menu valioso para mim. E fiquei muito contente em ouvir de vocês sobre isso e sua funcionalidade. Mas por alguma razão, este item não funciona para mim. Eu tentei diferentes opções.

Passar o cursor sobre a função (em seu lugar antes dos parênteses) e clicar com o botão direito do mouse. O menu de contexto "Goto Alt+G" está ativo. Eu clico nele, mas nada acontece. Pressiono Alt+G em inglês e maiúsculas, nada acontece.

Acho que deveria ser jogado na Ajuda, ou melhor, no lugar onde a função é descrita com o botão direito do mouse.
Tenho o MT-4 build 1260
Li a Ajuda do MetaEditor, mas não consegui encontrar nada sobre este recurso. E este item é muito valioso para mim. Talvez faltem algumas configurações no MetaEditor?
Eu ficaria grato se você pudesse compartilhar suas idéias sobre o porquê de este item não funcionar para mim.

Esta é a barra de ferramentas do meu MetaEditor. Muitos dos botões não estão ativos. Poderia ser sobre um desses botões?


 
ANDREY:

Obrigado pelos conselhos e dicas. Para mim, tudo começou quando fiz um curso gratuito de forex na Teletrade em Moscou há alguns anos, por nada fazer e por um desejo de colocar meu dinheiro de sobra em algum lugar. Mas depois de completar o curso, imediatamente tive a idéia de que negociar ao acaso é uma perda de dinheiro garantida... mesmo apesar de vitórias ocasionais. Foi por isso que tomei a firme decisão de não jogar com meu próprio dinheiro até ter um sistema e, antes de me formar, eu nem sequer tinha um PC. Eu não sou matemático. Não posso me afastar do computador e do MT4 desde que comprei um computador e coloquei o MT4 na rota, não posso me afastar do computador e do MT4 até este momento. Estou me observando e não consigo entender de onde veio este desejo irresistível e irracional. Eu não acho que seja só o dinheiro. Eu estou bem com dinheiro. Eu não trabalho e tenho todo o meu tempo em mãos. E eu preciso de algo para ocupá-la para que não se arraste por muito tempo. Notei que quando estudo Forex e programo o tempo voa rápida e imperceptivelmente, então, depois que me formei no curso levei muito tempo para dominar o computador e ao mesmo tempo estava olhando para gráficos na MT e tentando entender como e por que o preço se move em uma direção ou outra. Pode-se dizer que fiquei fascinado e encantado com o gráfico e ele criou uma forte posição dominante em meu cérebro. À medida que avançava em meu entendimento do computador, da Internet e do forex, aprendi sobre o comércio algorítmico e decidi ler sobre ele. E isso também me atraiu ao ponto de aprender a codificar um pouco usando o tutorial de Kovalev. Quanto mais eu entendia o material do livro e tentava aplicá-lo enquanto codificava, mais diferentes pensamentos me chegavam, que eu tentava codificar. Mas há alguns meses atrás, inesperada e acidentalmente, vi um padrão, que aparece muito claramente nos pares EUR-USD e FUNT-DOLLAR. Eu consegui codificar este padrão. E o Assessor Especialista com este código no testador vem desenhando um gráfico de equilíbrio no testador desde 2008, que está constantemente se movendo para cima com drawdowns aceitáveis. Este foi um ímpeto adicional e poderoso para que eu me tornasse mais entusiasmado em estudar a programação MQL4. No momento não dominei o suficiente para começar a estudar a MQL5.

Obrigado novamente pelos links e por me colocar no caminho certo.

Este é um gráfico de equilíbrio

Tenho algumas idéias de como tornar este gráfico mais otimizado. Mas ainda me falta a experiência para codificá-las completamente.

O mais importante para um programador é ser capaz de definir uma tarefa e encontrar maneiras de resolvê-la. E isto define uma mentalidade matemática. Se você puder mudar sua maneira de pensar, se Deus quiser.

E se você estiver tentando escrever em mql4, estará sempre olhando a documentação mql5 para encontrar semelhanças entre os idiomas, então considere que tendo lidado com mql4, você já lidou com mql5. Os idiomas são tão similares que é mais fácil listar as diferenças do que listar as semelhanças.

O livro de Kovalev foi escrito há tanto tempo que, na maioria dos casos, antes de escrever algo, você precisa encontrar métodos modernos, mesmo que os utilizados nos exemplos do livro de texto funcionem por algum tempo.

Este artigo pode ajudar muito, não apenas a mudar para mql5, mas também a entender a diferença entre o mql4 descrito por Sergei Kovalev e o mql4 moderno.
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
Alexey Viktorov:

O mais importante para um programador é ser capaz de definir um problema e encontrar maneiras de resolvê-lo. E isso é o que define uma mentalidade matemática. Se você for capaz de mudar sua mentalidade, Deus o ajude.

E se você estiver tentando escrever em mql4, estará sempre olhando para a documentação mql5 para encontrar semelhanças nos idiomas, então considere que tendo lidado com mql4 você já lidou com mql5. Os idiomas são tão similares que é mais fácil listar as diferenças do que listar as semelhanças.

O livro de Kovalev foi escrito há tanto tempo que, na maioria dos casos, antes de escrever algo, você precisa encontrar métodos modernos, mesmo que os utilizados nos exemplos do livro de texto funcionem por algum tempo.

Obrigado pelas informações valiosas.

Em relação à mentalidade matemática. Como sou do zero .... embora demasiado tempo .... Estou um pouco familiarizado com o livro de Kovalev, e até aprendi a escrever código primitivo que compila sem erros, e até mesmo codifiquei algo semelhante ao "grail" ....., o que significa que minha mentalidade está mudando na direção que eu preciso..... , como me parece.
Por favor me diga se está tudo bem ... Você pode executar as funções MQL5 no MetaEditor 4?

Obrigado

Razão: