[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 227

 
Vinin:


ahora no se cierra.

aquí está la función donde se puede poner OrderClose() ?

//+-------------------------------------------------------------------------------------------+
//|  Описание : Возвращает цену открытия предпоследней открытой позиции или -1                |
//+-------------------------------------------------------------------------------------------+
//|  Параметры:                                                                               |
//|    sy - наименование инструмента   (""   - любой символ, NULL - текущий символ)           |
//|    op - операция                   (-1   - любая позиция)                                 |
//|    mn - MagicNumber                (-1   - любой магик)                                   |
//+-------------------------------------------------------------------------------------------+
double GetPrePricePos(string sy="", int op=-1, int mn=-1) {
  datetime o;
  double   l=-1;
  int      i, k=OrdersTotal()-1;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (o<OrderOpenTime()) {
                o=OrderOpenTime();
                l=OrderOpenPrice();
              }
            }
          }
        }
      }
    }
  }
  return(l);
}


// Utiliza el botón SRC //

 
¿Es posible conseguir que el indicador realice una nueva ejecución sin la llegada de otro tick?
 

Según tengo entendido, si hay más de 8 decimales, los cálculos se redondearán automáticamente a esos 8 decimales. ¿Es posible aumentar este valor?

 

En realidad, hay 15 dígitos decimales significativos. Pero tal número ocupa 8 bytes de memoria.
¿Por qué necesitas una precisión de cálculo tan asombrosa (más de 8 dígitos)?

 
MikeM:
¿Es posible hacer que el indicador realice una nueva ejecución sin la llegada de otro tick?
Scripts de servicio para MT4.
 
Lians:

Tengo una pregunta:

Sé que con los EAs y los scripts sólo se pueden crear y modificar archivos en la carpeta experts/files.

1. ¿Puedo trabajar con archivos en subcarpetas de esta carpeta?

2. Si es así, ¿puede mostrar un ejemplo de cómo se hace esto en el código?

¿O tal vez alguien tiene un dll-case que permite trabajar con archivos que no están en este directorio?

4. ¿O quizás quién conoce algún software externo para sincronizar continuamente la carpeta de archivos desde otra carpeta del ordenador?

1. Sí.

2. Añade otro nombre de carpeta a la carpeta de archivos con una barra: archivos\Ndirectorio.miarchivo.dat

3. Tengo una DLL, pero aún no la he probado. Existe una biblioteca de este tipo.

4. Esto puede y debe hacerse con enlaces simbólicos o duros y blandos. Es más fácil que sincronizar.

 
MikeM:

En realidad, los dígitos decimales significativos son 15. Pero tal número ocupa 8 bytes en la memoria.
¿Por qué necesitas una precisión de cálculo tan asombrosa (más de 8 dígitos)?

Tratando de trabajar con matrices... He intentado evitarlo, pero sigue apareciendo. Es un poco difícil de sortear, ya que las explicaciones lógicas de las acciones empiezan a perderse.

En cuanto a los 15 dígitos - comprobado, normalmente sólo 8 decimales, así que me pregunto si es posible ampliar.

 
dzhini:

Sobre los 15 dígitos - lo he comprobado, sólo 8 decimales, así que me pregunto si es posible ampliarlo.

¿Cómo lo has comprobado? Tengo 15.

MikeM:
¿Es posible obligar al indicador a volver a dibujarse sin la llegada de otro tick?
¿Redactar qué? ¿Objetos del gráfico o actualizaciones del gráfico?

 
Zhunko:

¿Rediseñar qué? ¿Objetos gráficos o una actualización gráfica?

Estamos hablando de actualizar los buffers de los indicadores y redibujar los gráficos de los indicadores, no de los objetos.
 

Hola, ¿podríais decirme si es posible escribir en un archivo binario de esta manera?

Tenemos un archivo con el contenido "11111 22222 33333 55555".

Necesito insertar la cadena de la forma "44444 " entre 33333 y 55555

Intento utilizar el operador FileWriteString, pero la salida se borra con cincos. Es decir, en mi caso, el proceso no va más allá de borrar unos con dos, dos con tres, etc.

todos estos 11111 etc. son condicionales, sólo es interesante entender si es posible la inserción completa sin machacar lo que está después del lugar de inserción?

Gracias.