Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1040

 
Estimados colegas, es necesario definir programáticamente en qué intervalo de tiempo tendrá lugar la optimización. ¿Puede indicar si existe esa posibilidad? En OnInit.
 
Anzhela Sityaeva:

La coma no juega ningún papel en la fórmula, tienes razón, sólo separa el valor del tipo, para facilitar la comprensión nada más. El 5º grado fue hace mucho tiempo :), y nunca se me han dado bien las matemáticas, como es el caso. Pero sí recuerdo el orden de las operaciones.

La cuestión es precisamente que en ambas versiones de los cálculos el resultadoes el mismo, ¿qué opción considerar correcta?

Me atrevo a decir que naciste cuando yo ya había terminado no sólo el quinto grado, sino parte del siguiente. Así que fue como si fuera ayer para mí... Y si recuerdas el orden de las operaciones, ¿por qué te surge esta pregunta? Si el resultado de los cálculos es el mismo, ¿puede una opción ser más correcta que la otra? Pues es obvio que no hay diferencia.
 
Alexey Viktorov:
Me atrevo a decir que naciste cuando yo ya había terminado no sólo el quinto grado, sino también los siguientes. Así que fue como si fuera ayer para mí... Y si recuerdas el orden de las operaciones, ¿por qué tienes esa duda? Si el resultado de los cálculos es el mismo, ¿puede una opción ser más correcta que la otra? Bueno, obviamente no hay diferencia.
No es habitual preguntar a una chica por su edad, y es irrelevante. Quería la opinión de alguien que estuviera en el tema y además de mí, dudas, ya sabes :)
 
Anzhela Sityaeva:
No es habitual preguntar a una chica por su edad, y es irrelevante. Quería la opinión de alguien que estuviera en el tema y además de mí, dudas, ya sabes :)

No he preguntado por tu edad. Sólo he sugerido que aún eres muy joven y que sólo pretendes no recordar nada más.

 
Decromor:

Hola a todos...

Estoy tratando de eliminar un indicador que añadí de un EA. Estoy haciendo lo siguiente:

En el Indicador:

Se añade el indicador, el número de subventana y el nombre corto son correctos, pero hay un error al borrar:

2019.05.08 12:01:10.068 2019.04.03 12:39:31 Fallo al eliminar el indicador blablabla de la ventana #2. Código de error 4014

4014 - "La función del sistema no puede ser llamada". ¿Podría aconsejar qué significa, cómo eliminar el indicador?

Uno de los indicadores es utilizado por el Asesor Experto durante un corto período de tiempo, el resto del tiempo no es necesario y sus ajustes se vuelven irrelevantes. Por eso, la primera opción que consideré fue la de eliminar el indicador en el momento en que no es necesario y, en el momento adecuado, añadirlo con una nueva configuración. Pero por alguna razón no puedo hacerlo.

Otra variante es: Variables Globales. Supongamos que el indicador estará siempre en la ventana, pero cambiaré sus parámetros de entrada a través de variables globales en el momento necesario.

¿Verdad? ¿Existen otras variantes?

 
Decromor:

Uno de los indicadores es utilizado por el Asesor Experto durante un corto período de tiempo, el resto del tiempo no es necesario, y sus ajustes se vuelven irrelevantes. Por esta razón, la primera opción que consideré fue eliminar el indicador en el momento en que no es necesario y añadirlo en el momento adecuado con nuevos ajustes. Pero por alguna razón no puedo hacerlo.

Otra variante es: Variables Globales. Supongamos que el indicador estará siempre en la ventana, pero cambiaré sus parámetros de entrada a través de variables globales en el momento necesario.

¿Verdad? ¿Existen otras variantes?

Un indicador experto en un gráfico es como el pivote de un perro.

 
Alexey Viktorov:

El indicador en el gráfico es como una vuelta de perro.

Es perfecto para crear un experto.

Así es como lo añado, pero no puedo quitarlo.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Preguntas de los principiantes MQL5 MT5 MetaTrader 5

Decromor, 2019.05.08 09:17

Hola a todos...

Intentando eliminar un indicador que añadí yo mismo de un EA. Estoy haciendo lo siguiente:

//Объявляю переменные
int win_ind=-1,
    handle_ind = INVALID_HANDLE;

//Создаю
   handle_ind= iCustom(NULL,0,"ind");
   if(handle_ind== INVALID_HANDLE){
      Print("Не удалось создать индикатор. Код ошибки: ",GetLastError());
      return(false);
   }
   win_ind=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); //--- получим номер нового подокна, в которое добавим индикатор 
   if(!ChartIndicatorAdd(0,win_ind,handle_ind)){
      Print("Не удалось добавить индикатор на окно графика. Код ошибки: ",GetLastError());
      return(false);
   }

//Удаляю
   string name = ChartIndicatorName(0, win_ind, 0);
   bool res = ChartIndicatorDelete(0, win_ind, name); 
   if (!res) PrintFormat("Не удалось удалить индикатор %s с окна №%d. Код ошибки %d", name,win_ind,GetLastError());

En el indicador:

int OnInit(){
   IndicatorSetString(INDICATOR_SHORTNAME,"blablabla");

Se añade el indicador, el número de subventana y el nombre corto son correctos, pero hay un error al borrar:

2019.05.08 12:01:10.068 2019.04.03 12:39:31 Fallo al eliminar el indicador blablabla de la ventana #2. Código de error 4014

4014 - "No se puede llamar a la función del sistema". Por favor, indíqueme qué significa, cómo eliminar el indicador.


 
Decromor:

Para crear un experto, está bien.


Eso no es una respuesta a mi pregunta. Para ser más precisos, es una réplica. Entonces puse mi pensamiento en forma de pregunta: ¿Por qué el EA necesita un indicador en el gráfico?

Si queremos rechazar de la manija del indicador no utilizado, hay otra función para esto. ¿Y el propio indicador en el gráfico para qué?

 
¿Existe alguna solución para no reinventar la rueda?
Tenemos que responder a una simple pregunta - cuántas operaciones cerradas (llamémoslo así) ha habido en la historia (para un par o período específico no es importante, lo principal es el principio). Según tengo entendido no es una tarea trivial en mql5. Ni siquiera tengo un nombre para esta entidad))
 
Evgeny Dyuka:
¿Tiene una solución lista sin tener que reinventar la rueda?
Tenemos que responder a una simple pregunta - cuántas operaciones cerradas (llamémoslo así) ha habido en la historia (para un determinado par o período no es importante, lo principal es el principio). Según tengo entendido no es una tarea trivial en mql5. Ni siquiera tenemos un nombre para esta entidad))

¿Por qué no?

bool  HistorySelect(
   datetime  from_date,     // с даты
   datetime  to_date        // по дату
   );

Y luego, en un bucle, tamizamos lo que necesitamos.

O para un puesto específico.

bool  HistorySelectByPosition(
   long   position_id     // идентификатор позиции - POSITION_IDENTIFIER
   );
Документация по MQL5: Торговые функции / HistorySelect
Документация по MQL5: Торговые функции / HistorySelect
  • www.mql5.com
Функция HistorySelect() создает в mql5-программе список ордеров и список сделок для дальнейшего обращения к элементам списка посредством соответствующих функций. Размер списка сделок можно узнать с помощью функции HistoryDealsTotal(), размер списка ордеров в истории можно получить с HistoryOrdersTotal(). Перебор элементов списка ордеров лучше...