[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 243

 
qual é o valor máximo de escorregamento?
 
joo:
Experimentamos projetos diferentes - o mesmo problema.
Adicione um arquivo .def. Há muitas diferenças entre MT5 e MT4 a este respeito, e para melhor.
 
TheXpert:
Adicione um arquivo .def. Há muitas diferenças entre MT5 e MT4 a este respeito, e para melhor.

Acrescentei-o, não ajudou.

 

Olá a todos. Você pode me dizer como converter variável int em string, de modo que o comprimento da string foi sempre o mesmo - 2 caracteres (só que eu tenho dois dígitos e um diferente, e isso é irritante). Conselhos sobre do que fugir, não peço uma solução específica:) Obrigado antecipadamente.


PS: Em princípio, você pode fazer (se x < 10) e adicionar um zero à esquerda, mas talvez haja alguma função de conversão de dados embutida?

 
joo:

Acrescentei-o, não ajudou.

Provavelmente não o acrescentou corretamente.
 

Amigos, digam-me qual é a minha lógica...

Resumindo:

 bool signal_MACD() 
  { 
    bool signal_MACD = false; //изначально сигнал стоит false
    double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); //это текущий бар MACD
    for(int i=1;i<=7;i++) //цикл for первый
    { 
      for(int j=2;j<=7;j++) //цикл for второй (я подозреваю, что именно в for у меня ошибка)
      {
            if((iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,j)*tmp)>0.0) //если текущий бар MACD находится по одну сторону с одним из баров MACD, сдвинутых на 2 назад
            { 
              if((iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,i)*tmp)<0.0) //если текущий бар MACD находится по разные стороны с одним из баров MACD, сдвинутых на 1 назад

              {
            
                 signal_MACD = true; 
                 break; 
            
              }   
            } 
      }      
    } 
    return(signal_MACD);
  } 

ou seja, a MACD estava de um lado de 0, depois acabou do outro lado e voltou de novo. O MACD rompe a linha zero e volta... mas no testador de estratégia, não está nem perto... a questão é... por quê?

 
nadya:
Qual é o valor máximo de escorregamento?

De quanto você precisa?


Pyro:

Olá a todos. Você pode aconselhar como converter variável int em string, para que o comprimento da string seja sempre o mesmo - 2 caracteres (só que ela acontece diferente e tem dois dígitos e um valor único, e isso irrita). Conselhos sobre o que correr, não peço uma solução específica:) Obrigado antecipadamente.


PS: Basicamente, você poderia fazer (se x < 10) e adicionar um zero à esquerda, mas talvez haja alguma função de conversão de dados embutida?

Eu sempre faço exatamente isso.
 
nemo811:
Eu não estou rindo...

É que a propagação em diferentes momentos do dia e em dias diferentes pode ser muito diferente. Portanto, não é motivo de riso.
 
prorab:

Eu fiz algo com o arquivo editável <indicator.mq4>, ou o movi para algum lugar ou o copiei com um nome diferente, mas após a compilação, na lista de indicadores do terminal, o nome ficou cinza e inativo.

No entanto, o indicador está disponível através do menu lateral na barra da janela esquerda na "árvore da lista" e é arrastado para o gráfico.

Se você encontrou tal situação, por favor, informe como remediá-la?

Sinceramente.

Você não vai acreditar!

O motivo era muito óbvio: muitos indicadores na pasta <indicadores>!

Uma vez que movi *.mq4 desnecessário para <Arxiv>, reduzindo o número de indicadores na pasta em 2/3, tudo funciona.

Quem teria pensado?

 
CLAIN:

Amigos, digam-me qual é a minha lógica...

Resumindo:

ou seja, a MACD estava de um lado de 0, depois acabou do outro lado e voltou de novo. O MACD rompe a linha zero e volta... mas o testador de estratégia nem chega perto... a questão é... por quê?

for(int i=1;i<=7;i++) //цикл for первый
    { 
      for(int j=2;j<=7;j++) //цикл for второй (я подозреваю, что именно в for у меня ошибка)

depois disso imprima os valores i e j e veja o que acontece

Presumo que precisamos corrigir o segundo laço para

for(int j=i+1;j<=7;j++)