Ayuda a la codificación - página 522

 

Hola a todos,

Me gustaría saber si esta es la forma correcta de calcular el valor del indicador en un bucle for (a lo largo de todas las barras disponibles):

int OnCalculate(...)

{

//...

ArraySetAsSeries(SignalLine,false);

//...

for(int i=0; i<Bars; i++)

{

double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i);

//...

SignalLine=ma;

}

//...

}

//...

return total_de_tasas

}

P.D. Lógicamente en este caso sencillo me gustaría representar y trazar una réplica de MA por objeto iMA. Pero no estoy seguro de cómo configuro el bucle. Obtengo un poco de diferencia en comparación con el calculado con MT4 incorporado. No puedo entender por qué.

Gracias

 
har:
Hola a todos,

Deseo saber si esta es la forma correcta de calcular el valor del indicador en un bucle for (a lo largo de todas las barras disponibles):

int OnCalculate(...)

{

//...

ArraySetAsSeries(SignalLine,false);

//...

for(int i=0; i<Bars; i++)

{

double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i);

//...

SignalLine=ma;

}

//...

}

//...

return total_de_tasas

}

P.D. Lógicamente en este caso sencillo me gustaría representar y trazar una réplica de MA por objeto iMA. Pero no estoy seguro de cómo configuro el bucle. Obtengo un poco de diferencia en comparación con el calculado con MT4 incorporado. No puedo entender por qué.

Gracias

Cuando se utiliza iMA() no importa el orden

Pero la forma correcta debería ser for(int i=Bars-1; i>=0; i--) - así evitarás errores en muchos casos

 

Gracias mladen. Entonces si pongo ArraySetAsSeries(SignalLine,false) debería iterar con

for (int i = 0; i < Bares; i++)

mientras que, por el contrario, si ArraySetAsSeries(SignalLine, true) debería iterar con

for (int = Bars - 1; i >= 0; i--)

¿Es eso correcto?

 
har:
Gracias mladen. Esto es porque si usamos la función ArraySetAsSeries() entonces debemos iterar inversamente a través del array, ¿correcto? Gracias!

Eso no cambia nada - obtendrá el elemento 0 con el valor actual, y cuando llegue un nuevo valor actual, ese elemento 0 de la SignalLine será sobrescrito por el nuevo valor.

Si SignalLine es un buffer, simplemente no uses el ArraySetAsSeries(SignalLine,false) ;

 

Hola mladen mr tools e Igorad

Gracias de corazón por la sabiduría compartida de los suyos y ofreció ayuda.

Yo también estoy solicitando su ayuda de nuevo después de una larga gestación por lo que la esperanza obtendría su atención, su indicación T3 adaptativa ma _ica.mq4 es mi indi favorito para el comercio, aunque visualmente buena difícil de seguir manualmente debido a la no disponibilidad de tiempo, así que me gustaría que alguien me ayude en la codificación de un asesor de expertos con que las flechas del indicador como señales de compra y venta para tomar las órdenes con las comodidades normales EA como trailing, bep y sl, tp junto con el tamaño del lote.

Mladen e Igorad deben estar ocupados -si pueden ayudar estoy dotado, si no alguien dispuesto a ayudar puede ayudarme con esto.Si necesitas puedo adjuntar el indicador también. Esta es la página donde se encuentra el indicador T3 adaptive ma"https://c.mql5.com/forextsd/forum/167/t3_adaptive_ma_i-ca_2.01_alerts_nmc.mq4

También puedo pedir con otros indies con t3 cci pero cada indies trabajando seperate en un EA con el uso verdadero o falso option.Between cualquier persona interesada en lukas flechas y curvas indicador basado EA- todavía necesita mejorar en el análisis de la curva real de la vuelta de los precios, ya que su basado en el ma, el precio no se analiza, pero su todo LIMITADO en forex de lo contrario todo el mundo será un millonario por elección.

El sueño es grande, pero lo que está en la mano es el análisis de la curva real del giro del precio, ya que se basa en la ma, el precio no se analiza, pero todo es limitado en el mercado de divisas, de lo contrario todo el mundo va a ser millonario.

Dream es grande, pero lo que en la mano es Tiny.

 

Oh okkkk... Gracias.

En C++ no había este tipo de problemas..

 

Hola Mladen

Espero que usted considere esta ayuda, pls echar un vistazo a este post - # 5118 justo un puesto por encima de su puesto # 5220.

Sería un mejor regalo para mí con las manos claras en él como el suyo.

 
har:
Oh okkkk... ¡Gracias! En C++ no había este tipo de problemas..

Como siempre trabajo con arrays al modo de C/C++, la indexación en esos arrays va de 0 (más antiguo) a Bars-1 (más nuevo) bar. Si usas el índice 0 para la barra más nueva, siempre se reescribirá el elemento 0

Si quieres usarlo a la manera de C/C++, usa un array, comprueba si el tamaño es igual a Bars, si no, redimensiónalo al tamaño de Bars, y luego asigna valores a los elementos usando Bars-i-1 como índice

Si se trata de un buffer, la indexación se invierte en comparación con la forma C/C++ y entonces no tienes que cambiar nada en ese bucle - sólo eliminar la parte que establece el array como serie a false

 

Sí, lo he visto. Yo también lo he descubierto... De todos modos sólo pequeñas diferencias entre MQL y C ++. ¡Hay un montón de C en MQL por lo que vi! Pero definitivamente me gusta MQL

¡Deseo compartir mi indicador una vez listo (y si puedo entender si es útil) y dar una mano a ustedes!

 
har:
Sí, lo he visto. Yo también me he dado cuenta... De todos modos sólo pequeñas diferencias entre MQL y C++. ¡Hay un montón de C en MQL por lo que vi! ¡Pero definitivamente me gusta MQL Deseo compartir mi indicador una vez listo (y si puedo entender si es útil) y dar una mano a ustedes!

Aunque se parezcan, están lejos de ser similares cuando se ejecutan. ex4 es un código P. Su velocidad de ejecución es al menos 100 veces más lenta que la de su homólogo en C/C++.

Si puedes, escribe las partes cruciales en una dll de C/C++ - será mucho más rápido

Razón de la queja: