[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 295

 

Gracias. En principio, basta con sustituir "||" por "&&" (probablemente quería comprobar la desigualdad y luego continuar) y todo funcionará, pero en el probador funcionará igualmente. Aunque, por supuesto, su versión será más correcta.

 

Bueno, son matices. Sigo intentando reescribirlo para adaptarlo a mis necesidades. Yo, por ejemplo, no necesito la selección de medjic en absoluto (en esta función). También me di cuenta de que la selección en la función Figar0 era de la lista de la historia. Lo principal aquí es entender la idea. Por cierto, necesito órdenes de la piscina, así que todo resultó mucho más fácil.

Gracias por las ideas y la ayuda, gente.

PD: Y por favor, explique lo de

OrderType()>1
He visto varias veces que OrderType se compara como int. ¿Cuál es el truco aquí? Pensé que era una variable de cadena.
 
Pyro:

Bueno, son matices. Sigo intentando reescribirlo para adaptarlo a mis necesidades. Yo, por ejemplo, no necesito la selección de medjic en absoluto (en esta función). También me di cuenta de que la selección en la función Figar0 era de la lista de la historia. Lo principal aquí es entender la idea. Por cierto, necesito órdenes de la piscina, así que todo resultó mucho más fácil.

Gracias por las ideas y la ayuda, gente.

PD: ¿Podría explicar lo siguiente?

He visto varias veces la comparación de OrderType como int. ¿Cuál es el truco aquí? Pensé que era una variable de cadena.

Se trata de una correspondencia entre las constantes y sus valores.

OP_BUY corresponde a 0

OP_SELL corresponde a 1

__________________________________________________________________________________________________________-

Tipo de operación para la función OrderSend(). Puede ser cualquiera de los siguientes valores:

Constante Valor Descripción
OP_BUY 0 Comprar
OP_VENDER 1 Vender
OP_BUYLIMIT 2 Orden pendiente de Límite de Compra
OP_SELLLIMIT 3 Orden pendiente de VENTA LIMITADA
OP_BUYSTOP 4 Orden pendiente de COMPRA STOP
OP_SELLSTOP 5 Orden pendiente de venta de STOP
 
Pyro:

Por cierto, necesito órdenes de la piscina, por lo que resultó ser mucho más simple.

Al seleccionar una orden por índice, se utilizan dos listas: abierta y cerrada. Esto se establece especificando en qué lista quiere verlos ( grupo de parámetros).

Por lo tanto, si necesitamos seleccionar de una lista de órdenes abiertas, podemos omitir la especificación de este parámetro (se establece por defecto). Si queremos elegir entre una lista de órdenes cerradas, debemos especificar MODE_HISTORY como parámetro.

En consecuencia, si se quiere encontrar la última orden abierta, el bucle se realiza sobre las órdenes abiertas del terminal y se debe comprobar también la hora de apertura OrderOpenTime(), si se necesita la última orden cerrada (como en los ejemplos anteriores), el bucle se debe realizar sobre las órdenes cerradas del terminal y se debe comprobar OrderCloseTime() para saber cuándo se cerró la orden seleccionada.

Y para su referencia, si selecciona por ticket, el grupo de parámetros será ignorado en absoluto y el orden se encontrará en ambas listas. Una vez encontrada la orden, debemos comprobar su hora de cierre para saber de qué lista ha sido seleccionada. Si la hora de cierre es superior a cero, la orden está cerrada y ha sido seleccionada de la lista de órdenes cerradas. Si la hora de cierre de una orden abierta es siempre igual a cero. Así, si es igual a cero, la orden ha sido seleccionada de la lista de órdenes abiertas.

Además, si busca una orden pendiente por su ticket, puede aparecer en ambas listas. Esto ocurrirá si se convierte en una orden de mercado. Por lo tanto, también tendrá que comprobar el tipo de pedido que ha elegido. Y si la orden pendiente se cierra, y la orden de mercado con el mismo ticket no se cierra, significa que la orden pendiente se ha transformado en una orden de mercado.

 
Figar0:

Gracias. En principio, basta con sustituir "||" por "&&" (probablemente quería comprobar la desigualdad y luego continuar) y todo funcionará, pero en el probador funcionará igualmente. Aunque, por supuesto, su versión será más correcta.

Yo mismo a veces cometo errores tontos al publicar código aquí... Entonces corrijo el código como escaldado antes de que se lea de forma incorrecta... :)))
 
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 2

extern int period=24;
double Buf_0[],Buf_1[];

//+------------------------------------------------------------------+
int init()
  {
//---- 
   SetIndexBuffer(0,Buf_0);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   SetIndexBuffer(1,Buf_1);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
//----
   return;
  }
//+------------------------------------------------------------------+
int start()
  {
   int  i,counted_bars,maxValueIdx,minValueIdx; 
//----

   counted_bars=IndicatorCounted();
   i=Bars-counted_bars-1;
   
   while(i>=0)
   {
   maxValueIdx=ArrayMaximum(Close,(period-1),0); 
   minValueIdx=ArrayMinimum(Close,(period-1),0);
   Buf_0[i]=Close[maxValueIdx];
   Buf_1[i]=Close[minValueIdx];
   i--;
   }
   
   
//----
   return;
  }
//+------------------------------------------------------------------+
Hola, quería escribir un indicador que leyera el MÁXIMO y el MÍNIMO del precio de cierre de un determinado periodo. Estoy siguiendo el tutorial, pero los datos antiguos no se muestran en absoluto, muestra dos líneas horizontales con el MAX y el MIN actuales. ¿Puede decirme qué estoy haciendo mal?
 
borisis:
Hola, quería escribir un indicador que cuente el MÁXIMO y el MÍNIMO del precio de cierre para un periodo determinado. Como todo lo que hago en el tutorial, pero los datos antiguos no se dibujan en absoluto, muestra dos líneas horizontales con el MAX y el MIN actuales. ¿Puede decirme qué estoy haciendo mal?


maxValueIdx=ArrayMaximum(Close,(period-1), i);

minValueIdx= ArrayMinimum(Close,(period-1), i);

De lo contrario, seguirás encontrando los mismos índices en cada paso

 

Hola a todos. ¿Cómo averiguar a qué tipo de variable pertenece: int O double?

y en segundo lugar, ¿qué significa el error "número doble no válido como parámetro 1 para la función DoubleToStr"?

 
todem:

Hola a todos. ¿Cómo puedo saber el tipo de una variable: int O double?

¿Tiene curiosidad por saber por qué? ¿Puede describir una situación en la que esto sea necesario?
 
Mover.

Valdemar 01.04.2011 16:31
¡Saludos a todos los maestros de la programación! ¡Sugerencia de la idea correcta, si no te importa: Aquí yo, digamos que decidí al final de una hora determinada de comercio, poner una orden de parada, empujando lejos de la alta y baja de la hora en unos pocos puntos, lo que debería utilizar, escribir una función de programación!