[¡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 607

 

cp no preste atención :) ¡¡¡¡Voy a echar un vistazo si hay alguna pregunta voy a llamar a la puerta!!!!

 
rigonich:


No trabaje en la barra de cero, no hay otra manera.

P.D. En general, este es el principal problema de todas las estrategias de indicadores. Todos los indicadores se retrasan. Algunos son más sensibles y otros menos. Cuanto más sensible sea el indicador __ más falsos positivos tendrá. Si la sensibilidad es baja, se pierde la mayor parte del movimiento, y como resultado el beneficio disminuye, si es alta, las pérdidas aumentarán debido a las operaciones falsas. Para encontrar la "media de oro" se realiza la optimización de los parámetros. El funcionamiento en la barra de cero aumenta la sensibilidad del indicador no de forma gradual, sino bruscamente, con todo lo que ello implica.


Gracias de nuevo. Lo pensaré y lo intentaré...
 

Por favor, indíqueme cómo hacer una entrada en el archivo.

Mientras el EA se ejecuta, calcula el valor de 4 variables cuyos valores se almacenan en memoria, y si el terminal no está sobrecargado, todo va bien. Sin embargo, después de reiniciar el terminal, pierde estos valores y en el primer arranque vuelven a ser todos ==0.

Lo que necesito es hacer que en el primer arranque lea los valores del archivo y luego, si cambian durante la operación, vuelva a guardar los nuevos valores en el archivo. Y debería crear un archivo con un nombre único, tal vez derivado de un par de divisas, porque hay unos cuantos Asesores Expertos en el terminal del cliente y los nuevos valores no deberían interferir entre sí.

El Asesor Experto fue realizado por una persona que actualmente no está disponible para mí, y el tema es importante porque se puede perder dinero real. Puedo dar un trozo de código donde se calculan estas variables, si alguien me escribe inmediatamente cómo escribirlas en un archivo.

 
rigonich:

Siguiente fractal superior.

Gracias por la respuesta, pero me refería a cómo puedo saber si el fractal actual se ha roto o no antes de que aparezca el siguiente fractal
 
xant:

Por favor, indíqueme cómo hacer una entrada en el archivo.

Mientras el EA se ejecuta, calcula el valor de 4 variables cuyos valores se almacenan en memoria, y si el terminal no está sobrecargado, todo va bien. Sin embargo, después de reiniciar el terminal, pierde estos valores y en el primer arranque vuelven a ser todos ==0.

Lo que necesito es hacer que en el primer arranque lea los valores del archivo y luego, si cambian durante la operación, vuelva a guardar los nuevos valores en el archivo. Y debería crear un archivo con un nombre único, tal vez derivado de un par de divisas, porque hay unos cuantos Asesores Expertos en el terminal del cliente y los nuevos valores no deberían interferir entre sí.

El Asesor Experto fue realizado por una persona que actualmente no está disponible para mí, y el tema es importante porque se puede perder dinero real. Puedo dar un trozo de código, donde se calculan estas variables, si alguien me escribe inmediatamente cómo escribirlas en un archivo.


Utilizar variables de terminal GlobalVariableGuardan los valores cuando se recarga el terminal .

¿Escribir más detalles sobre cómo utilizarlos?
 
i999i:

Gracias por la respuesta, pero lo que quería decir es cómo saber si el fractal actual se ha roto o no antes de que aparezca el siguiente fractal

Es posible que el fractal anterior no se rompa antes de que aparezca el siguiente en la misma dirección. Por favor, vuelve a leer a Williams. Detalla diferentes formas de trabajar con los fractales.
 
rigonich:

El fractal anterior no puede romperse cuando aparece el siguiente en la misma dirección. Vuelve a leer a Williams. Describe con detalle las diferentes formas de trabajar con los fractales.

Todavía me gustaría saber cómo determinar si el precio estuvo por encima del valor de un fractal desde el momento de su ocurrencia hasta el momento actual
 
i999i:

Todavía me gustaría saber cómo determinar si el precio estuvo por encima del valor de un fractal desde el momento de su aparición hasta el momento actual

int iMayor( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)
Devuelve el índice del valor más alto encontrado (desplazamiento relativo a la barra actual).
Parámetros:
símbolo - Nombre del símbolo cuyos datos se buscarán. NULL significa símbolo actual.
marco temporal - Período. Puede ser uno de los períodos de un gráfico. 0 indica el período del gráfico actual.
tipo - El identificador de la serie temporal. Puede ser cualquiera de los identificadores de series temporales.
contar - Número de elementos de la serie temporal (en la dirección de la barra actual al índice ascendente), entre los que se debe realizar la búsqueda.
iniciar - El índice (desplazamiento desde la barra actual) de la barra de inicio desde la que comenzará la búsqueda del valor más alto. Los valores negativos se ignoran y se sustituyen por valores cero.
 

Hola de nuevo a todos.

Cómo hacer un retardo en un EA antes de abrir una nueva operación tras el final de una operación anterior.

Es decir, el acuerdo terminó t / p y después de que tengo que esperar, por ejemplo, 15 minutos y sólo entonces la fórmula seguirá trabajando:)

Encontrado

OrderCloseTime( )
Lo he encontrado, pero cómo conectarlo con el tiempo del programa y evitar conflictos con la ejecución del historial de EA. Gracias de antemano
 
Tragedy:

Hola de nuevo a todos.

Cómo hacer un retardo en un EA antes de abrir una nueva operación tras el final de una operación anterior.

Es decir, el acuerdo terminó t / p y después de que tengo que esperar, por ejemplo, 15 minutos y sólo entonces la fórmula seguirá trabajando:)

Encontrado

OrderCloseTime( )
Pero cómo enlazo esto con el tiempo del programa, y para que no haya conflicto con la ejecución del EA a través del historial. Gracias de antemano


https://www.mql5.com/ru/forum/131859

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество секунд после открытия последней позиций. |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
datetime SecondsAfterOpenLastPos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersTotal();

  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 (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(TimeCurrent()-t);
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество секунд после закрытия последней позиций. |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
datetime SecondsAfterCloseLastPos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) t=OrderCloseTime();
            }
          }
        }
      }
    }
  }
  return(TimeCurrent()-t);
}