[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 585

 
Usar ObjectCreate() e ObjectSet()
 

Boa tarde a todos. Você pode, por favor, aconselhar um usuário inexperiente? Eu uso o indicador "123" e gosto muito da maneira como ele desenha níveis. Eu nunca tinha experimentado antes, apenas não sabia o que fazer e não tenho certeza se vou usá-lo. O problema é: eu inseri o indicador no gráfico e ele traçou níveis, mas dez minutos depois o preço ricocheteou 70 pontos e os níveis não mudaram. Tenho que desativar e reativar o indicador cada vez que o preço se move e ele continua desenhando novos níveis. Por favor, informe se você pode introduzir alguns parâmetros no programa do indicador para que ele seja desativado e reativado a cada dez minutos com níveis já atualizados. Eu não sou bom em programação, portanto, explique se e como isso pode ser feito. Agradecemos antecipadamente a todos vocês.


Arquivos anexados:
123.mq4  15 kb
 

Oishimoku re-desenhado é um indicador para profissionais?)

Acho que como o "desenvolvedor" nunca terminou seu indicador, ele foi de pouca utilidade:)

 
alsu:

O ishimoku re-desenhado é um indicador para profissionais?)

Acho que como o "desenvolvedor" nunca terminou seu indicador, ele foi de pouca utilidade:)


Então você acha que não há maneira de automatizar este indicador? Eu sei que não é um indicador super legal, mas gosto dos níveis que ele desenha. Estou me perguntando se é possível adicionar alguma função para que possa atualizar os níveis automaticamente.
 
alsu:
Usar ObjectCreate() e ObjectSet()

Desliza flechas, mas em cada barra, quando necessário, somente quando a primeira vela foi quebrada.

https://www.mql5.com/ru/forum/111497/page583

.

 
mazan:

Então você acha que é impossível automatizar este indicador? Sei que não é um indicador super-duper, mas gosto dos níveis que ele desenha e sou bom em trabalhar com eles, mas a questão é que ocasionalmente preciso atualizar os níveis manualmente. Estou me perguntando se é possível adicionar alguma função para que possa atualizar os níveis automaticamente.

aqui está o corrigido. Os níveis são atualizados a cada tique.


E mesmo agora apaga seus próprios objetos quando o próprio indicador é removido do gráfico. Fi. "Desenvolvedor".

Arquivos anexados:
123_1.mq4  16 kb
 
gince:

Ele desenha setas, mas em cada barra, quando necessário, somente quando a primeira vela é quebrada.

https://www.mql5.com/ru/forum/111497/page583

.

É necessário analisar apenas as barras formadas, pois no zero Alto e Baixo são constantemente atualizadas.

Tente contar não para(shift=0; ..., mas para(shift=1;..., então não haverá recálculo na barra de zero. E mudar as barras analisadas de 0,1,2 para 1,2,3.

 
alsu:

Você deve analisar apenas as barras formadas, porque Alto e Baixo são constantemente atualizados na barra zero.

Tente contar não para(shift=0; ..., mas para(shift=1;..., então na barra de zero não ocorrem recálculos. Reverta as barras analisadas de 0,1,2 para 1,2,3.

Desculpe, eu não entendi.

Suas condições são confusas. Isto é tudo:

      if (d1_h1 < d1_h2 && d1_l1 > d1_l2  && d1_l1 > d1_l0) 

e deve ser

      if (d1_h1 < d1_h2 && d1_l1 > d1_l2  && d1_h1 < d1_h0) 
e o mesmo com a seta para baixo
 
alsu:

aqui está a solução. Os níveis são atualizados a cada tique.


E mesmo agora apaga seus próprios objetos quando o próprio indicador é removido do gráfico. Fi. "Desenvolvedor".


Muito obrigado, coloque na tabela, tudo funciona, obrigado mais uma vez. Um profissional é um profissional. Respeito!
 

Boa tarde, tentando descobrir como escrever uma EA. Peguei o modelo EA do artigo mql4 no site, adicionei minhas próprias condições para entender a depuração e a funcionalidade, e entrei nas condições de abertura de posições:

        MyATR = ((High[0] - Low[0])/Low[0]);
	 BT = Open[0] + Open[0]*iMAOnArray(MyATR ,0,PerB,0,MODE_SMA,1);
        ST = Open[0] - Open[0]*iMAOnArray((MyATR ,0,PerS,0,MODE_SMA,1);

   if (Ask >=  BT)                       // Если разница между
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
   if (Bid <= ST)                       // Если разница между
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

Adicionei minhas próprias condições (ou alterei as existentes) para que as ordens sejam executadas uma vez.

Razão: