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

 

Hola estoy obteniendo los datos sobre el cierre de las velas horarias, lo dibujo, todo es normal, quiero obtener los datos del periodo N-ésimo atrás, escribe array fuera de rango

He intentado utilizar el buffer del indicador de la matriz, por favor, aconsejar cómo obtener los datos para el período anterior

{
 


if(prev_calculated<1) limit=rates_total-1;
if(prev_calculated>0)limit=rates_total-prev_calculated;
for(i=limit; i>=0; i--)
{  
int yesterday_weekday = TimeHour(iTime(Symbol(),0,i+1))-TimeHour(iTime(Symbol(),0,i));
if(yesterday_weekday!=0)  
  {
P=C; 
T = iTime(NULL,0,i+1); 
shift=iBarShift(NULL,PeriodGR,T); 
C= iClose(NULL,PeriodGR,shift);   
CB[n]=C;n++; 

 }
 CC[i]=C; 
 Comment(StringFormat("CC[i]=%G\r\nCB[n-2]=%G\r\n",CC[i],CB[n-2])); 
  }
   return(rates_total);
  }
 
PokrovMT5:

Buenas tardes, obtengo los datos del cierre de las velas horarias, los dibujo, todo está bien, quiero obtener los datos del periodo N-ésimo, escribe un array vacío, he intentado utilizar el buffer del indicador del array, aconsejen como obtener los datos del periodo anterior

Tal vez esto ayude

https://www.mql5.com/ru/code/7297

https://www.mql5.com/ru/code/20343

TZ-Breaktout
TZ-Breaktout
  • votos: 2
  • 2007.09.14
  • Scriptor
  • www.mql5.com
Индикатор TZ-Breaktout.
 
PokrovMT5:

Hola estoy obteniendo los datos sobre el cierre de las velas horarias, los dibujo, todo es normal, quiero obtener los datos del periodo N-ésimo de vuelta, escribe array fuera de rango

He intentado utilizar el buffer del indicador de la matriz, por favor, aconsejar cómo obtener los datos para el período anterior

limit=rates_total-1;

Su límite apunta a la primera barra de la historia. Pero tú quieres i+1 - por eso i está fuera de rango.

Prueba con

limit=rates_total-2;

... aunque es poco probable que sirva de ayuda - probablemente hay muchos más valores de cálculo que no compruebas...

 
Hola. Tengo una pregunta, el límite variable del indicador en mql4 muestra 3555 barras para el oro por día, mientras que mql5 muestra la mitad? ¿Dónde colocar las cotizaciones? Otra pregunta por favor, paralimit=rates_total-2; que se discutió anteriormente, en mi variante no hay desbordamiento de la matriz sólo cuandolimit=rates_total-5; el programa funciona. También he notado que en mql5 la compilación de código se ralentiza considerablemente, el proceso tarda unos 13 segundos, ¿es normal? Gracias.

 
mwwm:
Hola. Mi pregunta, ¿puede ser que el límite variable del indicador en mql4 muestra 3555 barras diarias para el oro y mql5 muestra dos veces menos? ¿Dónde colocar las cotizaciones? Otra pregunta por favor, paralimit=rates_total-2; que se discutió anteriormente, en mi variante no hay desbordamiento de la matriz sólo cuandolimit=rates_total-5; el programa funciona. También he notado que en mql5 la compilación del código se ralentiza considerablemente, el proceso tarda unos 13 segundos, ¿es normal? Gracias.

En MT5, las cotizaciones se descargan del servidor: lo que hay está ahí...

Sobre el límite no hay que adivinar y retocar, y hay que calcular con precisión - de qué variables depende el desplazamiento, y tomar una unidad de rates_total y los valores de estas variables (si no se calculan). Si se calculan las variables, se debe controlar el valor del índice del bucle y, si es mayor que rates_total-1, saltar esta iteración (continuar)

 

Hola, me puede decir alguien si lo sabe, cargo datos de tick para probar con el 99% como debe ser, todo funciona bien para el gráfico de 30 min, pero en cuanto cargo datos de H4 e intento ejecutar un EA sobre ellos en el tester, - no funciona, el tester da 2018.04.05 16:41:08.576 TestGenerator: no se puede abrir el archivo "C:\Nseruser\AppData\NRoaming\NMetaQuotes\NTerminal7E781795884A398A87F33ED1B942D689\Ntester\Nhistory\NUSDJPY240_0.fxt" [5]

Y 2018.04.05 16:41:08.535 TestGenerator: el archivo "C:\Nsers\user\AppData\Roaming\NMetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\Ntester\Nhistory\NUSDJPY240_0.fxt" es de sólo lectura

cuál podría ser la razón??????
 
pryn:

Hola, me puede decir alguien si lo sabe, cargo datos de tick para probar con el 99% como debe ser, todo funciona bien para el gráfico de 30 min, pero en cuanto cargo datos de H4 e intento ejecutar un EA sobre ellos en el tester, - no funciona, el tester da 2018.04.05 16:41:08.576 TestGenerator: no se puede abrir el archivo "C:\Nseruser\AppData\NRoaming\NMetaQuotes\NTerminal7E781795884A398A87F33ED1B942D689\Ntester\Nhistory\NUSDJPY240_0.fxt" [5]

Y 2018.04.05 16:41:08.535 TestGenerator: el archivo "C:\Nsers\user\AppData\Roaming\NMetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\Ntester\Nhistory\NUSDJPY240_0.fxt" es de sólo lectura

cuál podría ser la razón??????
No es necesario multiplicar las preguntas, por favor.
 
Artyom Trishkin ...Siel tiempo actual es mayor, entonces guárdalo en una variable para comprobarlo...

Gracias, he encontrado lo que buscaba.

Otra pregunta - Cierro una posición parcialmente, ¿cómo tengo en cuenta esta ganancia o pérdida cerrada al calcular el beneficio actual?

 
PolarSeaman:

Gracias, he encontrado lo que buscaba.

Otra pregunta - Cierro una posición parcialmente, ¿cómo tengo en cuenta esta ganancia o pérdida cerrada al calcular el beneficio actual?

Exactamente igual que para el cierre completo. La posición se divide: la parte cerrada pasa al historial y la parte restante obtiene un nuevo billete y permanece en el mercado.

 
Artyom Trishkin:

una parte cerrada entra en la historia.

¿Cómo sé que en la historia de esta posición particular parte cerrada?

Abrí una posición con 1.0 lote, y la cerré con 0.5 lote y 10$ de pérdida. Más tarde cerré otro lote de 0.25 con 5$ de beneficio. Lo cerraré todo con 50$ de beneficio. De hecho, ahora tengo 50 dólares de beneficio.

if (OrderProfit()+OrderSwap()>=50) ClosePosBySelect();

¿Cómo cierro -10 dólares y +5 dólares en el cálculo del beneficio actual? Para cerrar con 55 dólares de beneficio

Razón de la queja: