Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1162

 
Aliaksandr Kryvanos:

Olá a todos, eu tenho uma pergunta, é possível mudar os parâmetros indicadores na hora, sem abrir a janela de ajustes?

https://www.mql5.com/ru/forum/213718#comment_5624828

Можно ли поменять входные параметры автоматически?
Можно ли поменять входные параметры автоматически?
  • 2017.08.17
  • www.mql5.com
Хочу сделать универсального солдата, который позволил бы, менять входные параметры на ходу, + чтобы советник переинициализовался Информации, по пов...
 
Сергей:

foi assim que o escrevi... Não entendo porque é que os pares de jpy estão mostrando incorretamente... tentar fixar a qualquer par sem jpy no terminal e depois a um par com jpy, os resultados são diferentes...

Encontrei-o - os pares com jpy têm um valor de Ponto diferente. Tomei MarketInfo("SYMBOL",MODE_POINT)). mudei a fonte, seu tamanho e cor. Corrigido mais um erro


Arquivos anexados:
 
STARIJ:
Descobrimos o que está errado - emparelhar com jpy o valor de Ponto é diferente. Tomei MarketInfo("SYMBOL",MODE_POINT)). mudei a fonte, seu tamanho e cor. Corrigido mais um erro



Eu poderia acrescentar o tempo, porque nem sempre um tique vem em todos os gráficos ao mesmo tempo e, se você mudar as barras, você receberá os dados errados...

Tenho praticamente o mesmo sistema e na vida real tenho visto discrepâncias nos resultados.

Resolvi desta maneira -

    BarShift_AUDUSD = iBarShift("AUDUSD",0,Time[1],true); if(BarShift_AUDUSD <= 0) return;
    BarShift_NZDUSD = iBarShift("NZDUSD",0,Time[1],true); if(BarShift_NZDUSD <= 0) return;
    BarShift_USDCAD = iBarShift("USDCAD",0,Time[1],true); if(BarShift_USDCAD <= 0) return;
    BarShift_USDJPY = iBarShift("USDJPY",0,Time[1],true); if(BarShift_USDJPY <= 0) return;

    vol = iMA("AUDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_AUDUSD);
    vo2 = iMA("NZDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_NZDUSD);
    vo3 = iMA("USDCAD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDCAD);
    vo4 = iMA("USDJPY",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDJPY);

sincroniza todas as leituras dos outros gráficos no gráfico aberto - ou seja, até que uma nova barra comece em todos os gráficos...

 
elmucon:
Você deve adicionar o tempo, porque nem sempre um tique vem em todos os gráficos ao mesmo tempo e quando você muda as barras você vai receber os dados errados...
Tenho praticamente o mesmo sistema e na vida real tenho visto discrepâncias nos resultados.
Resolvi desta maneira -
Ele sincroniza todas as leituras de outros gráficos no gráfico aberto - ou seja, até que uma nova barra comece em todos os gráficos...

Olhe atentamente o código postado. Em geral, o objetivo era apenas eliminar erros, para ajudar Sergei a obter um grande lucro

 


Você pode me dizer porque o valor do indicador iCustom é sempre 0. Mesmo na parte de cima. Isto se você obtiver os valores no indicador. Então, como na EA, sem problemas. O segundo buffer no indicador sem problemas.


//--------------------------------------------------------------------
#property indicator_separate_window    // Индик. рисуется в основном окне
#property indicator_buffers 2       // Количество буферов
#property  indicator_color1 Blue     // Цвет первой линии
#property  indicator_color2 Red      // Цвет второй линии
double zz; 
double Buf_0[],Buf_1[];             // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   SetIndexBuffer(1,Buf_1);         // Назначение массива буферу
   SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
  
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      zz=iCustom(NULL,0,"Zig_Zag",15,5,5,0,i);
      Buf_0[i]= zz;                 // Значение 0 буфера на i-ом баре
      Buf_1[i]=Low[i];              // Значение 1 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 
Александр:

Por favor, diga-me porque o valor do indicador iCustom é sempre igual a 0. Mesmo na parte de cima. É se eu receber valores no indicador. Então não há nenhum problema com isso no Expert Advisor. O segundo buffer no indicador sem problemas.

Veja se o roteiro anexo pode lhe ajudar. O ZigZag é zero em todos os lugares, exceto nos vértices. iCustom - função para calcular o indicador personalizado

Arquivos anexados:
 
STARIJ:

Veja se o roteiro anexo pode lhe ajudar. O ZigZag é zero em todos os lugares, exceto nos vértices. iCustom - função para cálculo de indicador personalizado

Eu disse especificamente: - "Mesmo nos vértices". Isto é, o iCustom deve mostrar valores no topo. Ele faz exatamente isso no Expert Advisor. Mas não o faz em um indicador. Por quê?

 
Александр:

Eu disse especificamente: - "Mesmo nos topos". Isto é, o iCustom deve mostrar valores no topo. Isso é o que faz no Expert Advisor. Mas não o faz no indicador. Por quê?

Veja o roteiro anexo - talvez você encontre uma resposta para sua pergunta. Em geral, com a ajuda de roteiros você pode verificar, descobrir, esclarecer ...
 
STARIJ:
Veja o roteiro postado aqui - talvez você encontre a resposta à sua pergunta. Em geral, você pode usar os roteiros para verificar, descobrir, esclarecer ...
OK
 
Александр OK

aprender roteiros, escrever roteiros é uma boa maneira de aprender uma língua e procurar por erros