Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 780

 
LookingFor:
   for(bars=start; bars<rates_total; bars++)



Colegas, por favor ajudem-me

Não entendo o que há de errado com o laço, os dados do Handle não vão para a matriz psa1


No OnInit() faça o seguinte:

  ArraySetAsSeries(pca1,true);

depois disso, altere o seu laço em conformidade:

   for(bars=start; bars<rates_total; bars++)

Considerando que agora a barra mais à direita do seu indicador tem o índice "0".

 

Como é que termino um guião premindo qualquer tecla ou uma tecla específica?

 
Vladimir, obrigado, não há nada que possa fazer sem alterar a indexação?
 
LookingFor:
Vladimir, obrigado, não pode fazer nada sem alterar a indexação?

Se não quiser fazer nada, então comece a testar com a depuração dos dados históricos. Passo a passo. Ver os dados de ONDE a barra é copiada.

 
LookingFor:

Colegas, por favor ajudem-me

Não entendo o que há de errado com o laço, os dados do Handle não vão para a matriz psa1


Procurando:
Vladimir, obrigado, mas não pode fazer nada sem alterar a indexação?

Primeiro de tudo, é necessário tornar o código legível por humanos(Styler - Work with Source Code - Program Development - MetaEditor)

//+------------------------------------------------------------------+ 
//| Custom indicator iteration function                              | 
//+------------------------------------------------------------------+ 
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   if(prev_calculated==0)
     {
      i=bars=start=1;
     }
   else
     {
      start=prev_calculated;
     }
   for(bars=start; bars<rates_total; bars++)
     {
      CopyBuffer(pulse_Handle,0,start,1,pca1);

      if(pca1[bars]!=pca1[bars-1])
        {
         pca2[i]=pca1[bars]; i++;
         string s="";
         s=IntegerToString(pca1[bars])+"  ";
         Print(s); continue;
        }
      else
         continue;
     }
//--- return value of prev_calculated for next call 
   return(rates_total);
  }

DEVE também verificar - mas o que foi devolvido pela função CopyBuffer? Consultar oCopyBuffer:

Valor devolvido

Número de elementos de matriz copiados ou -1 em caso de erro.

Além disso, estabelecemos pontos de interrupção e efectuamos a depuração de dados históricos

executar a depuração de dados históricos

e controlar algumas variáveis:

time[rates_total-1]
time[0]
bars
pca1[???]

df

Стилизатор - Работа с исходным кодом - Разработка программ - Справка по MetaEditor
Стилизатор - Работа с исходным кодом - Разработка программ - Справка по MetaEditor
  • www.metatrader5.com
Данная функция предназначена для оформления исходного кода в соответствии с рекомендуемым стандартом. Это позволяет сделать код более читаемым...
 

Ajude a traduzir para um A

double GetExtremumZZPrice(string symb="0",ENUM_TIMEFRAMES tf=0,int ne=0,int dp=12,int dv=5,int bs=3) {
 if(symb=="0") symb=Symbol();
  double zz;
  int ke=0;
   for(int i=0; i<Bars(symb, tf)-1; i++) {
    zz=iCustom(symb, tf, "ZigZag", dp, dv, bs, 0, i);
    if(zz!=0) {
      ke++;
      if(ke>ne) return(zz);
  }}
  return(0);
 }
 
Vitaly Muzichenko:

Ajude a traduzir para um A

Leia o buffer indicador e na matriz resultante procure por zz

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyBuffer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:

Ajude a traduzir para um A

Primeiro pegue o manípulo indicador! Depois use CopyBuffer para obter um conjunto de valores desejados e depois faça um loop através deles.
 

Obrigado a todos!

Outra questão: procurei no fórum e na kodobase e não consigo encontrar nenhuma aplicação para "Trend.mqh", parece estar tudo lá. Se houver um link para a candidatura, por favor envie-o aqui ou dê-me um exemplo por código.

Encontrei muitos EAs utilizando Rsi, Ma, Adh e outros EAs, mas nenhum deles utilizou SB. É assim tão mau, ou ainda não encontrei os códigos, quem os usa?


O que eu preciso: Há um código, nele recebo MA de vários prazos

_ma1 = iMA(Symbol,PERIOD_M15,MAFast,0,MAMethod,MAPrice,i)
_ma2 = iMA(Symbol,PERIOD_M30,MAFast,0,MAMethod,MAPrice,i)
_ma3 = iMA(Symbol,PERIOD_H1, MAFast,0,MAMethod,MAPrice,i)

Para não criar várias dezenas de pegas em mql5 no OnInit, espero que a SB resolva o meu problema.

 
Vitaly Muzichenko:

Obrigado a todos!

Outra questão: procurei no fórum e na kodobase e não consigo encontrar nenhuma aplicação para "Trend.mqh", parece estar tudo lá. Se houver um link para a candidatura, por favor envie-o aqui ou dê-me um exemplo por código.

Encontrei muitos EAs utilizando Rsi, Ma, Adh e outros EAs, mas nenhum deles utilizou SB. É assim tão mau, ou ainda não encontrei o código, quem o usa?


O que eu preciso: Há um código, nele recebo MA de vários períodos de tempo

Para não criar várias dezenas de pegas em mql5 no OnInit, espero que a SB resolva o meu problema.


Tenho de criar todas as pegas ou objectos da classe "Trend.mqh::CiMA".