¡Pide! - página 95

 

La respuesta corta es No.

Como siempre, la barra 0 está temporalmente incompleta tanto para los EAs como para los indicadores, y su máximo, mínimo, cierre y volumen son casi con toda seguridad diferentes de cómo terminan cuando esa barra se completa y se convierte en la barra 1. Más exactamente, el valor de StochRSICurr al final de la barra diaria sólo se conoce en el primer tick de la siguiente barra diaria (y después). Creo que se hace un flaco favor al intentar utilizar los valores de la barra 0, ya que éstos, salvo excepciones, sólo reflejan el estado parcial de la barra incompleta.

Por lo que sé, el indicador se invoca en el momento de la primera llamada a iCustom con la combinación de valores del parámetro particular, durante cada invocación de la función EA start(). Las sucesivas llamadas a iCustom durante la llamada a la función de inicio del EA, al mismo indicador, con la misma configuración de valores de parámetros, reutiliza lo que produjo la primera llamada. La siguiente función start() del EA, llamando de nuevo a iCustom, volverá a invocar el indicador, en el contexto del tick que provocó la invocación de la función start.

Por lo tanto, a los ojos del indicador, se invoca una vez por cada tick que el EA permite invocar. Al decirle a un MA que utilice el precio de apertura o el precio alto, etc., sólo cambia los valores de la barra que mira, mientras que la forma de invocación seguirá siendo la misma: se invoca en cada tick (que el EA le permita).

 
 

Por favor, ayúdenme

Hola a todos,

Nadie quiere ayudarme. He publicado una vez más mi problema y por favor ayúdenme.

Sólo quiero entender por qué el resultado no es el con las dos formas de codificar el mismo indicador (ver el código y la imagen).

Manuel

Archivos adjuntos:
 

backtesting lento

Sólo quería dar las gracias a Ralph Ronnquist. Ahora tengo esa parte funcionando correctamente.

Tengo otra pregunta para cualquiera que pueda ayudar. Cuando trato de usar el Probador de Estrategias con mi EA, es extremadamente lento. Sé que funciona, ya que obtengo algunos resultados, pero necesito dejarlo encendido durante la noche para obtener resultados de 3 meses.

Mi EA se basa en la tendencia diaria utilizando el cruce del RSI estocástico (pruebas) y luego sólo la acción del precio. Cuáles podrían ser las principales razones de que sea tan lento. Está en la programación o es porque estoy llamando a un indicador externo o es que el estocástico RSI se traga mucha potencia.

Corro muchos otros EA's y todos son mucho más rápidos que el mío. Mi sistema es bastante potente con 3GB de Ram y procesador Intel Centrino Duo.

Cualquier sugerencia de ideas sería apreciada.

Putz

 

Cómo escribir

Hola Coders

Soy totalmente novato en la codificación Mql.4. Todavía estoy aprendiendo modificando los EAs existentes.

El siguiente ejemplo para un Pivote flotante:

para la Barra actual;

double Flow_Pivot0 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,0,0))/3.0;

para una barra atrás

donde debo establecer el "número" o la variable "shift_bars"

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Muchas gracias

 
 

No se ha encontrado ninguna solución

Hola Bongo

Lo siento, pero en este enlace no he encontrado una respuesta.

Caso normal

double High1 = iHigh(NULL,0,0); // Precio alto ahora

cuando necesito una entrada externa

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1); // Precio alto ahora

El verde significa cuántas barras atrás

pero en mi caso, donde debo insertar Barback_xxx, la línea completa de abajo debe ser una barra atrás

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

 

Tiempos de retorno

Badguy:
Hola Bongo

Lo siento pero en este enlace no he encontrado la respuesta.

Caso normal

double High1 = iHigh(NULL,0,0); // Precio alto ahora

cuando necesito una entrada externa

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1); // Precio alto ahora

El verde significa cuántas barras atrás

pero en mi caso, donde debo insertar Barback_xxx, la línea completa de abajo debe ser una barra atrás

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3,0;

Hola

Si quieres desplazar la línea hacia atrás 1 barra cada vez.

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440, 0)

+ iClose(NULL,TimeFrame_Flow, 0))/3.0; = Día actual

double Flujo_Pivote1 = (iHigh(NULL,1440, 1)+iLow(NULL,1440, 1)

+ iClose(NULL,TimeFrame_Flow,1))/3.0; = Retroceso 1 día

double Flujo_Pivote1 = (iHigh(NULL,1440,2)+iLow(NULL,1440, 2)

+ iClose(NULL,TimeFrame_Flow, 2))/3.0; = Retroceder 2 días

double Flujo_Pivote1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow, Barback_xxx))/3.0;

Barback_xxx = 1 ,2, 3, 4 etc se desplazará hacia atrás 1 barra a la vez.

 

Hola Cja

no es lo que quiero decir

cja:
Hola

Si quieres desplazar la línea hacia atrás 1 bar a la vez.

Eso es PIVOT flotante. ¿Correcto?

#1

double Flujo_Pivote1 = (iAlto(NULL,1440,0)+iBajo(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow, 0))/3.0; = Día actual

Ese es el PIVOT normal para hoy. ¿Verdad?

#2

double Flujo_Pivote1 = (iHigh(NULL,1440,1)+iLow(NULL,1440,1)

+ iClose(NULL,TimeFrame_Flow, 1))/3.0; = Retroceso 1 día

Eso es un PIVOT normal pero de ayer. ¿Verdad?

#3

double Flujo_Pivote1 = (iHigh(NULL,1440,2)+iLow(NULL,1440,2)

+ iClose(NULL,TimeFrame_Flow, 2))/3.0; = Back 2 Days

Necesito #1, pero xx barras atrás en cualquier Timeframe.

La misma función como esta Indi : PrevDayAndFloatingPivot_O.mq4. ( pero solo el FloatingPivot )

Indi se adjunta

double Flow_Pivot1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow, Barback_xxx))/3.0;

Barback_xxx = 1 ,2, 3, 4, etc., retrocederá 1 compás cada vez.
Archivos adjuntos:
 

tal vez sea una pregunta tonta... pero espero que me ayuden.

.... ¿como cerrar o abrir una orden(orden pendiente) cuando otra orden llega al tp?

¡gracias b4 !