Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 35

 
oDin48:

De hecho, lo único que hay que hacer es asignar un número de compás y escribirlo en una variable, que luego se puede comparar con el valor actual.

No es necesario. Cada bar ya tiene su propio número. Todo lo que necesita saber es en qué barra se cerró una posición de stop. ¿Para qué sirven las variables? ¿Qué pasa si se reinicia el Asesor Experto? El valor de la variable se perderá. Y de esta manera, puede encontrar la barra en la que se cerró cualquier posición cerrada seleccionada, en cualquier momento.

Si tienes experiencia en programación, puedes entender e implementar la lógica que he descrito.

 
artmedia70:

Todo lo que necesita saber es en qué barra se cerró la posición de parada.

Esto no es un problema ya que necesito que la primera y la segunda no se abran en la misma barra.

Escribo algo como:

si ((Total==0)&&(Condición)) {Opn_B=true;} //ejemplo.

La segunda orden no se abre, pero si la primera falla, se cierra en el stop y la condición se dispara de nuevo y se abre la segunda barra, que es exactamente lo que no necesito. Pero si la siguiente barra dispara el SL y la condición se cumple, entonces es bienvenida.

Me disculpo si estoy siendo obtuso.

Pero la forma en que yo lo veo es la siguiente.

1) Al abrir una orden, debemos escribir en una variable el número de la barra en la que se abre.

2) Cuando el número de pedidos es 0. Comprobamos el beneficio de la última operación (ya escrita).

3) Al abrir la siguiente orden basada en la señal, comprobamos si la orden anterior fue rentable o no. Si fue perdedora, comprobamos los números de la barra actual y de la barra en la que se abrió la última orden. Si no coinciden, abrimos un pedido. (no hay problema para escribir)

Conclusión: Sólo necesito una función que me permita conocer el número de la barra para poder asignar este valor a la variable en el paso 1 y compararlo con el valor actual (número de la barra) en el paso 3.

 
oDin48:

Esto no es un problema ya que necesito que la primera y la segunda no se abran en la misma barra.

Escribo algo como:

si ((Total==0)&&(Condición)) {Opn_B=true;} //ejemplo.

La segunda orden no se abre, pero si la primera falla, se cierra en el stop y la condición se dispara de nuevo y se abre la segunda barra, que es exactamente lo que no necesito. Pero si la siguiente barra dispara un SL y se cumple la condición, entonces es bienvenida.

Me disculpo si estoy siendo obtuso.

Pero la forma en que yo lo veo es la siguiente.

1) Al abrir una orden, debemos escribir en una variable el número de la barra en la que se abre.

2) Cuando el número de pedidos es 0. Comprobamos el beneficio de la última operación (ya escrita).

3) Al abrir la siguiente orden basada en la señal, comprobamos si la orden anterior fue rentable o no. Si fue perdedora, comprobamos los números de la barra actual y de la barra en la que se abrió la última orden. Si no coinciden, abrimos un pedido. (no hay problema para escribir)

Conclusión: Sólo necesito una función que me permita conocer el número de la barra para poder asignar este valor a la variable en el paso 1 y compararlo con el valor actual (número de la barra) en el paso 3.

En fin... ve al hilo de Igor Kim, allí encontrarás muchos ejemplos. No tengo tiempo todavía, lo siento...
 
artmedia70:
Utilice un delta de 2 - 3 puntos cuando compruebe la desviación de la máscara


¿Agrego pips a cada uno? ¿Es posible programar estos dos o tres puntos?
 
oDin48:

Esto no es un problema ya que necesito que la primera y la segunda no se abran en la misma barra.

Escribo algo como:

si ((Total==0)&&(Condición)) {Opn_B=true;} //ejemplo.

La segunda orden no se abre, pero si la primera falla, se cierra en el stop y la condición se dispara de nuevo y se abre la segunda barra, que es exactamente lo que no necesito. Pero si la siguiente barra dispara un SL y se cumple la condición, entonces es bienvenida.

Me disculpo si estoy siendo obtuso.

Pero la forma en que yo lo veo es la siguiente.

1) Al abrir una orden, debemos escribir en una variable el número de la barra en la que se abre.

2) Cuando el número de pedidos es 0. Comprobamos el beneficio de la última operación (ya escrita).

3) Al abrir la siguiente orden basada en la señal, comprobamos si la orden anterior fue rentable o no. Si fue perdedora, comprobamos los números de la barra actual y de la barra en la que se abrió la última orden. Si no coinciden, abrimos un pedido. (no hay problema para escribir)

Conclusión: Sólo necesito una función que me permita conocer el número de la barra para poder asignar este valor a la variable en el paso 1 y compararlo con el valor actual (número de la barra) en el paso 3.



Esta función devuelve el número de barra de la última posición cerrada

Llamando a

if(Total==0 && NumberOfBarCloseLastPos()!=0)
   {
   Opn_B=true;
   }
 

Muchas gracias. Ya pensé que estaba explicando algo mal, dándome cuenta de que la solución debería ser sencilla.

Ha sido de gran ayuda.

 

¿Puede alguien decirme, al escribir un script o un EA, cuál es el número máximo de elementos que puedo meter en un array?

 
Dikii:

¿Puede alguien decirme, al escribir un script o un EA, cuál es el número máximo de elementos que puedo meter en un array?

De un hilo vecino........

 

¡Chicos!

cómo especificar en OrderSend la hora de vencimiento de la orden pendiente "hoy".

 
smartemiy:

¡Chicos!

cómo especificar en OrderSend la hora de vencimiento de la orden pendiente "hoy".

Más correcto sería BorrarOrden a la hora señalada. ¡Rara vez el CC realiza este vencimiento y elimina la orden a la orden del EA!
Razón de la queja: