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

 
Alex:

Obrigado pelas vossas respostas e paciência.


Vladimir, provavelmente já o aborreci:) Mas estou a passar um mau bocado com o básico. Tentei fazer uma tarefa de teste com funções de cópia... O indicador não é desenhado, embora existam números na Printe. Não compreendo nada.


Um e o mesmo conjunto UpBar vai para dois amortecedores: 0 e 1.

E para os índices para os quais não quer definir valores, escreva valores vazios.

E, tanto quanto sei, está a escrever valores de 3 a 3 barras. Isto significa que os valores mais antigos serão escritos, não os mais recentes (a ordem de numeração é diferente do mql4).

 
Alex:

Obrigado pelas vossas respostas e paciência.


Vladimir, provavelmente já o aborreci:) Mas estou a passar um mau bocado com o básico. Tentei fazer uma tarefa de teste com funções de cópia... O indicador não é desenhado, embora existam números na Printe. Não compreendo nada.


//+------------------------------------------------------------------+
//|                                                        PBars.mq5 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot UpBar
#property  indicator_label1  "UpBar"
#property  indicator_type1   DRAW_HISTOGRAM
#property  indicator_color1  clrGreen
#property  indicator_style1  STYLE_SOLID
#property  indicator_width1  6
////--- plot DnBar
//#property indicator_label2  "DnBar"
//#property indicator_type2   DRAW_HISTOGRAM
//#property indicator_color2  clrRed
//#property indicator_style2  STYLE_SOLID
//#property indicator_width2  6
//--- input parameters
input int   Histori=30;
input ENUM_TIMEFRAMES TimeFrame=0;
input string  Simvol="EURUSD";
//--- indicator buffers
double         UpBar[];
//double         DnBar[];
double         O_Price[];
double         C_Price[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UpBar,INDICATOR_DATA);
//SetIndexBuffer(1,UpBar,INDICATOR_DATA);
   SetIndexBuffer(1,O_Price,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,C_Price,INDICATOR_CALCULATIONS);
//---
   ArraySetAsSeries(O_Price,true);
   ArraySetAsSeries(C_Price,true);
   ArraySetAsSeries(UpBar,true);
   ArrayInitialize(UpBar,0.0);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(close,true);

   if(prev_calculated==0)
     {
      ArrayInitialize(UpBar,0.0);
      ArrayInitialize(O_Price,0.0);
      ArrayInitialize(C_Price,0.0);
      Print(__FUNCTION__);
      ResetLastError();
      if(CopyOpen(Simvol,TimeFrame,0,Histori,O_Price)==-1)
         Print("Error CopyOpen #",GetLastError());
      ResetLastError();
      if(CopyClose(Simvol,TimeFrame,0,Histori,C_Price)==-1)
         Print("Error CopyClose #",GetLastError());
      for(int t=3; t<Histori; t++)
        {
         UpBar[t]=MathAbs(NormalizeDouble((O_Price[t]-C_Price[t]),Digits()));
         Print(IntegerToString(t)," ",DoubleToString(UpBar[t],Digits()));
         int g=0;
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+

E o resultado:

Resultado

 
Karputov Vladimir:

E o resultado:


Mais uma vez, muito obrigado.
 
Alex:
Mais uma vez, muito obrigado.
Seja bem-vindo. Não hesite em contactar-me se tiver alguma dúvida sobre a MQL5.
 

Existe alguma função na MQL4 que forneça valores de preço máximo/mínimo para um determinado número de barras?

Acho que havia um, mas não o encontro...

 
-Aleks-:

Existe alguma função na MQL4 que forneça valores de preço máximo/mínimo para um determinado número de barras?

Acho que havia um, mas não o encontro...

https://docs.mql4.com/ru/series/ihighest

https://docs.mql4.com/ru/series/ilowest

iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Sim, sim obrigado - não procurei o suficiente - eu próprio já o encontrei.
 
-Aleks-:
Sim, obrigado - não procurei o suficiente - eu próprio já o encontrei.
Funções compatíveis com mql5 CopyHigh e CopyLow então na matriz resultante ArrayMaximum e ArrayMinimum
 
É verdade que cada conjunto de variáveis que compõem um sistema comercial tem uma distribuição aleatória de lucros e perdas?
 
Евгений:
É verdade que cada conjunto de variáveis que compõem um sistema comercial tem uma distribuição aleatória de lucros e perdas?

Uma contra pergunta.

Pensa que o movimento de qualquer par de moedas: gráfico, preços de compra e venda, etc., depende do conjunto das suas variáveis?

Razão: