Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 991

 
LuckyTrader:
El error ha desaparecido, con la misma redacción, ahora ha pasado a otra parte. Justo encima le escribí a Igor

inserta las impresiones donde se produce el error, tal vez puedas resolver tu problema de esa manera.

No hay otra manera, ya he explicado la razón de su error

 

Hola, decidí reescribir el indicador de MQL4 a MQL5 y me quedé atascado en los buffers del indicador... Creo que he introducido todo lo necesario, pero la línea del indicador sigue sin aparecer.

He aquí un ejemplo, quiero mostrar el precio de cierre de las últimas 30 barras, incluso pongo un comentario en el buffer, para ver si se llena con algo...

El buffer se llena pero el gráfico está vacío y no veo ninguna imagen (((

¿Cuál puede ser el problema? ¿Quizás las barras están al revés en MQL5?)


//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                                                                . |
//|                                                                . |
//+------------------------------------------------------------------+
#property copyright "."
#property link      "."
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 8         // Количество буферов индикатора
#property indicator_plots   8         // Количество графических серий

#property indicator_label1 "TestLine" 
#property indicator_type1 DRAW_LINE  
#property indicator_style1 STYLE_SOLID 
#property indicator_width1 1  
#property indicator_color1 Red  
//+------------------------------------------------------------------+
//|                        БУФЕРЫ                                    |
//+------------------------------------------------------------------+
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
//+------------------------------------------------------------------+
//|                     ПАРАМЕТРЫ БУфЕРА                             |
//+------------------------------------------------------------------+
int OnInit(){                   

SetIndexBuffer(0,Buffer1,INDICATOR_DATA);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);  
PlotIndexSetInteger(0,PLOT_LINE_WIDTH,1);         
PlotIndexSetInteger(0,PLOT_LINE_COLOR,Blue);   

return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
//| Деинициализация                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){
Comment("");}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| 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[]){
                
                
for(int Z = 30; Z>=0; Z--) {
Buffer1[Z] = iClose(NULL,0,Z);} 
Comment(Buffer1[0]);               

return(rates_total);}
//+------------------------------------------------------------------+

 
Nikita Zubarov:

Hola, decidí reescribir el indicador de MQL4 a MQL5 y me quedé atascado en los buffers del indicador... Creo que he introducido todo lo necesario, pero la línea del indicador sigue sin aparecer.

Aquí hay un ejemplo, quiero mostrar el precio de cierre de las últimas 30 barras, incluso pongo un comentario en el buffer, para ver si se llena con algo ...

El buffer se está llenando pero el gráfico está vacío y no lo veo (((

¿Cuál puede ser el problema? ¿Quizás las barras están al revés en MQL5?)


La numeración de las barras en MQL5 está invertida

for(int Z = rates_total-50; Z<rates_total; Z++)


La indexación se puede cambiar conhttps://www.mql5.com/ru/docs/array/arraysetasseries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Igor Makanu:

La numeración de las barras en MQL6 está invertida


puede cambiar la indexación utilizandohttps://www.mql5.com/ru/docs/array/arraysetasseries

Gracias!, añadí una línea y empezó a mostrarse con normalidad!

ArraySetAsSeries(Buffer1,true); 
pero creo que la numeración de las barras es la misma de derecha a izquierda, sólo que los topes van hacia atrás....
 
Nikita Zubarov:

Gracias, he añadido una línea y ya se ve bien.

pero me parece que la numeración de las barras es la misma de derecha a izquierda, sólo que los topes van hacia atrás....

En el 4, el compás número 0 es el más a la derecha.

En 5, la barra #0 es la más a la izquierda.

por defecto, la indexación de las memorias intermedias de los indicadores es la misma que la de las series temporales

si utiliza ArraySetAsSeries(), se aplicará sólo a una matriz - en su ejemplo a la matriz del buffer del indicador Buffer1 , para el cálculo correcto también debe aplicarlo a close

ArraySetAsSeries(Buffer1,true); 
ArraySetAsSeries(close,true); 
for(int Z = 30; Z>=0; Z--) 
{
Buffer1[Z] = сlose[i];
} 

o cambiar el bucle como se ha descrito anteriormente

 
Hola, Me pueden aconsejar si quiero que mi EA abra una posición en un símbolo distinto al del gráfico actual.
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
¿Estoy en lo cierto? Corrígeme si no es así
 
Averman:
Hola, Me pueden aconsejar si quiero que mi EA abra una posición en un símbolo distinto al del gráfico actual.
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
¿Estoy en lo cierto? Corrígeme si no es así

Por supuesto que no está bien.

OrderSend("EURUSD", OP_BUY, Lots, MarketInfo("EURUSD",MODE_ASK), Slip, 0, 0, "", Magic, 0, Blue) 
Si no me he equivocado en alguna parte, lo has hecho tú. Pero en cualquier caso, el significado debe ser comprensible.
 
Ya ha aparecido el MQL6, ¿alguien ha probado este shell?
 
Seric29:
Ya ha aparecido el MQL6, ¿alguien ha probado este shell?

¿Es hoy el 1 de abril?

 
Alexey Viktorov:

¿No es el 1 de abril?

Y me puse a buscar en Google)).

... encontré un sitio web de mql6 de una página y un enlace a un foro en mql5.com