Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1229

 
Elena Baranova:

Estimados profesionales, ¿podrían aconsejar si es posible obtener los valores del RSI para un plazo de una semana en el código del asesor, pero para calcular los valores de la semana, que no comienza el lunes, sino por ejemplo desde el miércoles (es decir, la semana desde el miércoles hasta el próximo miércoles). Que yo sepa no se puede hacer con iRSI?

Hasta ahora sólo puedo ver una manera de escribir el código a mí mismo para calcular. ¿Existe una solución más sencilla o una solución ya hecha?

Si se crea un asa de indicador en el marco temporal W1, significa que el indicador se calculará en barras W1: una barra, una semana.

Es necesario crear una manija del indicador en el marco de tiempo D1 (marco de tiempo diario).


En general, el significado de la frase "(es decir, una semana desde el miércoles hasta el próximo miércoles)" no está claro. Es indiferente el día de inicio de la semana, el indicador se calcula en barras.

 
Vladimir Karputov:

Si se crea un asa de indicador en el marco temporal W1, significa que el indicador se calculará en barras W1: una barra y luego una semana.

Es necesario crear una manija del indicador en el marco de tiempo D1 (marco de tiempo diario).


En general, el significado de la frase "(es decir, una semana desde el miércoles hasta el próximo miércoles)" no está claro. No importa el día en que comience la semana: el indicador se calcula utilizando barras.

Entiendo todo lo relacionado con los bares. Pero todos los bares semanales comienzan el lunes. Por lo tanto, para obtener, por ejemplo, una semana de miércoles a miércoles, creo que debería escribir mi propio código basado en barras diarias.

Tampoco entiendo muy bien el significado de este cálculo, pero el cliente lo pidió.

 
Elena Baranova:

Entiendo lo de los bares. Pero todos los bares semanales empiezan el lunes. Así que para obtener la semana de miércoles a miércoles por ejemplo, supongo que tengo que escribir mi propio código basado en las barras diarias.

Yo tampoco entiendo bien el significado de este cálculo, pero mi cliente me ha pedido que lo haga.

El Asesor Experto abre operaciones basadas en los valores del RSI. No entiendo el sentido de este cálculo, pero el cliente lo pidió y el EA abre órdenes los lunes sólo con la apertura de una nueva barra semanal.

 
Elena Baranova:

Entiendo lo de los bares. Pero todos los bares semanales empiezan el lunes. Así que para obtener la semana de miércoles a miércoles por ejemplo, supongo que tengo que escribir mi propio código basado en las barras diarias.

Tampoco entiendo bien el significado de ese cálculo, pero el cliente me ha pedido que lo haga.

No puedo entender el significado físico. Por lo tanto, me voy.

 

Ayuda a resolver el problema de la visualización de los gráficos en MT5. El gráfico se sigue actualizando y arrastrando hacia la izquierda. Y esto es en todos los instrumentos.

Más adelante sigue cambiando a la historia máxima. En general, no puede mostrar la información de la última semana correctamente. las velas del último día desaparecen constantemente, parpadean y se mueven a la izquierda. ¿Cómo solucionarlo?

 
Александр:

Ayuda a resolver el problema de la visualización del gráfico en MT5. El gráfico se sigue actualizando y arrastrando hacia la izquierda. Y esto es en todos los instrumentos.

Sigue desplazándose a la historia máxima. En general, no puede mostrar la información de la última semana con normalidad. Las velas del último día desaparecen constantemente, parpadean y se desplazan hacia la izquierda. ¿Cómo solucionarlo?

Es sólo una máquina del tiempo :)

Tal vez tenga algunos scripts/asesores/indicadores en funcionamiento, que pueden desplazar el gráfico.

 
Александр:

Ayuda a resolver el problema de la visualización del gráfico en MT5. El gráfico se sigue actualizando y arrastrando hacia la izquierda. Y esto es en todos los instrumentos.

Sigue desplazándose a la historia máxima. En general, no puede mostrar la información de la última semana con normalidad. Las velas del último día desaparecen constantemente, parpadean y se desplazan hacia la izquierda. ¿Cómo solucionarlo?

Eliminar los indicadores y EAs en funcionamiento. Retira el gato del teclado. Limpie el café derramado del teclado.

 
Vladimir Karputov:

Retire los indicadores de funcionamiento y los asesores. Retire el gato del teclado. Limpie el café derramado del teclado.

Gracias por los consejos. Problema resuelto, sólo había que elegir un servidor con un ping alto.

 

¿Por qué la zona azul no está sombreada? ¿Y cómo solucionarlo?
¿Es posible producir dos histogramas en un indicador?

#property indicator_chart_window                   
#property indicator_buffers   8                    
#property indicator_plots     8                    

#property indicator_color1    clrRed                
#property indicator_style1    STYLE_SOLID          
#property indicator_color2    clrRed               
#property indicator_style2    STYLE_SOLID          
#property indicator_color3    clrRed               
#property indicator_style3    STYLE_DOT            

#property indicator_color5    clrDodgerBlue        
#property indicator_style5    STYLE_SOLID          
#property indicator_color6    clrDodgerBlue        
#property indicator_style6    STYLE_SOLID          
#property indicator_color7    clrDodgerBlue        
#property indicator_style7    STYLE_DOT            

double
   Line_High_Up[], Line_High_Dn[], Hist_High_Up[], Hist_High_Dn[],
   Line_Low_Up[],  Line_Low_Dn[],  Hist_Low_Up[],  Hist_Low_Dn[];
   

void OnInit() 
   { 
   SetIndexBuffer     (0, Line_High_Up,      INDICATOR_DATA); 
   PlotIndexSetInteger(0, PLOT_DRAW_TYPE,    DRAW_LINE);      
   SetIndexBuffer     (1, Line_High_Dn,      INDICATOR_DATA); 
   PlotIndexSetInteger(1, PLOT_DRAW_TYPE,    DRAW_LINE);      
   SetIndexBuffer     (2, Hist_High_Up,      INDICATOR_DATA); 
   PlotIndexSetInteger(2, PLOT_DRAW_TYPE,    DRAW_HISTOGRAM2);
   SetIndexBuffer     (3, Hist_High_Dn,      INDICATOR_DATA);

   SetIndexBuffer     (4, Line_Low_Up,       INDICATOR_DATA);
   PlotIndexSetInteger(4, PLOT_DRAW_TYPE,    DRAW_LINE);     
   SetIndexBuffer     (5, Line_Low_Dn,       INDICATOR_DATA);
   PlotIndexSetInteger(5, PLOT_DRAW_TYPE,    DRAW_LINE);     
   SetIndexBuffer     (6, Hist_Low_Up,       INDICATOR_DATA);
   PlotIndexSetInteger(6, PLOT_DRAW_TYPE,    DRAW_HISTOGRAM2);
   SetIndexBuffer     (7, Hist_Low_Dn,       INDICATOR_DATA);
   }


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[]   )                   
   {  
   int i;
   for(i=prev_calculated; i<=rates_total-1; i++)      
      {
      Line_High_Dn[i] = Hist_High_Dn[i] = high[i];
      Line_High_Up[i] = Hist_High_Up[i] = Line_High_Dn[i] + 20*_Point;

      Line_Low_Up[i]  = Hist_Low_Up[i]  = low[i];
      Line_Low_Dn[i]  = Hist_Low_Dn[i]  = Line_Low_Up[i] - 20*_Point;
      }
   return(i-1);
   }           
 
User_mt5:

¿Por qué la zona azul no está sombreada? ¿Y cómo solucionarlo?
¿Es posible realizar dos histogramas en un indicador?

Si el grosor de ambos histogramas se fija en '3'

//+------------------------------------------------------------------+
//|                                                            2.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots   2
//--- plot Hist_High
#property indicator_label1  "Hist_High"
#property indicator_type1   DRAW_HISTOGRAM2
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot Hist_Low
#property indicator_label2  "Hist_Low"
#property indicator_type2   DRAW_HISTOGRAM2
#property indicator_color2  clrBlue
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- input parameters
input int      Input1=9;
//--- indicator buffers
double         Hist_HighBuffer1[];
double         Hist_HighBuffer2[];
double         Hist_LowBuffer1[];
double         Hist_LowBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Hist_HighBuffer1,INDICATOR_DATA);
   SetIndexBuffer(1,Hist_HighBuffer2,INDICATOR_DATA);
   SetIndexBuffer(2,Hist_LowBuffer1,INDICATOR_DATA);
   SetIndexBuffer(3,Hist_LowBuffer2,INDICATOR_DATA);
//---
   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[])
  {
//---
   int limit=prev_calculated-1;
   if(prev_calculated==0)
      limit=0;
   for(int i=limit; i<rates_total; i++)
     {
      Hist_HighBuffer1[i]=high[i]+20.0*Point();
      Hist_HighBuffer2[i]=high[i];
      Hist_LowBuffer1[i]=low[i];
      Hist_LowBuffer2[i]=low[i]-20.0*Point();
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+



Archivos adjuntos:
2.mq5  3 kb
Razón de la queja: