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

 
Configurei as linhas para ver onde a EA irá trabalhar, substituí as linhas por uma condição para colocar e modificar os pedidos e a EA funcionou. Para ser honesto, estou feliz por ter funcionado. Esta é minha primeira EA independente. Eu entendi porque o testador estabeleceu apenas uma linha ))
 
Alexey Viktorov:

Verifique a passagem de MA não em 1 e 2 barras, mas em 3 e 4. E se houver um cruzamento, verifique os valores AO em 1 e 2 barras.

Obrigado. Vou continuar tentando.
 

Tenho outra dor de cabeça - explicar como escrever a chave KEY_TILDE para selecionar o objeto Rectangular Label, para que ele possa ser selecionado e movido para outro lugar no gráfico, não consigo descobrir. Anexei uma captura de tela com um exemplo no indicador Fork Neo. Entendi o mouse, mas não consigo encontrar nada sobre a atribuição das teclas.

int OnInit()
  {
RectLabelCreate(0,"RectLabel",0,10,200,149,143,C'55,55,55',BORDER_SUNKEN,CORNER_LEFT_LOWER,C'55,55,55',STYLE_SOLID,1,false,false,true,0);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam) // параметр события типа string
  {

    if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
            Print("Нажата KEY_TILDE");
            break;
        }
        ChartRedraw(); 
     }

  }
Arquivos anexados:
01.jpg  8 kb
02.jpg  3 kb
 
DYM:

Tenho outra dor de cabeça - explicar como escrever a chave KEY_TILDE para selecionar o objeto Rectangular Label, para que ele possa ser selecionado e movido para outro lugar no gráfico, não consigo descobrir. Anexei uma captura de tela com um exemplo no indicador Fork Neo. Entendi o mouse, mas não consigo encontrar nada sobre a atribuição das teclas.

    if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
         ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,true); 
         Print("Нажата KEY_TILDE");
         break;
        }
        ChartRedraw(); 
     }
 
MakarFX:
Muito obrigado pela dica. Percebi que precisava usar resolução e seleção, mas não consegui descobrir como aplicá-la. Mais uma vez, obrigado.
 
Colegas, estou em uma situação estranha. Funciona bem no testador, é definido de modo que uma ordem aleatória é aberta instantaneamente quando é adicionado ao gráfico. Isto é ótimo para GBPUSD. No entanto, não abre pedidos na demonstração. Tenho uma ampla gama, sem erros, mas, mais uma vez, as ordens não foram abertas por um dia, mas eu negociei bem no mesmo dia usando ticks baixados no testador. Todas as configurações do MetaTrader são normais, os rostos estão sorrindo e a conexão com o servidor do corretor também é normal. Eu tenho que olhar o que está errado com o código. Embora, este código não necessite de nenhum indutor e os parâmetros sejam válidos por suas condições para pular ordens de abertura. Estou confuso.
Arquivos anexados:
BlackJack.mq4  47 kb
 
Порт-моне тв:
Caros Colegas, terminei meu consultor especializado. Funciona bem no Testador de Estratégia mas foi configurado de tal forma que abre uma ordem aleatória imediatamente quando é adicionado ao gráfico. Isto é ótimo para GBPUSD. No entanto, não abre pedidos na demonstração. Tenho uma ampla gama, sem erros, mas, mais uma vez, as ordens não foram abertas por 24 horas, mas tenho negociado bem no mesmo dia usando ticks baixados no testador. Todas as configurações do MetaTrader são normais, os rostos estão sorrindo e a conexão com o servidor do corretor também é normal. Eu tenho que olhar o que está errado com o código. Embora, este código não necessite de nenhum indutor e os parâmetros sejam válidos por suas condições para pular ordens de abertura. Estou confuso.

Há muitos engarrafamentos. O código está mal escrito - manuseio de dados extremamente descuidado. Precisa de refatoração

 
Nikita Chernyshov:

Há muitos engarrafamentos. O código está mal escrito - manuseio de dados extremamente descuidado. Precisa de refatoração.

Sua avaliação abstrata não revela a causa.

 
Порт-моне тв:

que porra de gargalo...o que o @@##$ refactor

o código foi escrito "para meu eu amado, para a cerveja e enquanto me lembro dela" :-)

honestamente - fiz o download, olhei para ele na diagonal, não o entendi...

----

Qualquer código é documentado/comentado em caso de amnésia profissional pessoal súbita. É quando você esquece tudo, exceto a linguagem de programação.

Ninguém vai analisar um algoritmo desconhecido implementado de maneiras desconhecidas. De graça, pelo menos. Por dinheiro, eles apenas o reescreverão.

Você é um deles. Fazendo um intervalo de dois ou três meses, você não se lembrará por que havia tantas variáveis no OnTick e o que elas pretendiam ler

 
Maxim Kuznetsov:

que porra de gargalo...o que o @@##$ refactor

o código foi escrito "para meu eu amado, para a cerveja e enquanto me lembro dela" :-)

honestamente - fiz o download, olhei para ele na diagonal, não o entendi...

----

Qualquer código é documentado/comentado em caso de amnésia profissional pessoal súbita. É quando você esquece tudo, exceto a linguagem de programação.

Ninguém vai analisar um algoritmo desconhecido implementado de maneiras desconhecidas. De graça, pelo menos. Por dinheiro, eles apenas o reescreverão.

Você é um deles. Após um intervalo de dois ou três meses, você não se lembrará porque há tantas variáveis no OnTick e o que você queria ler delas

Há muitas coisas desnecessárias lá dentro, para testar, digamos, diferentes funções. Não deve interferir e não tem interferido em outros EAs, que apenas funcionam. Suspeito ter colocado um parêntese no lugar errado ou algo assim.