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

 

Estoy escribiendo un EA. No lo estoy probando en un probador, sino en el comercio real.

¿Es posible borrar el archivo de registro (pestaña "Expertos") al iniciar un Asesor Experto?

Por el momento, la única forma de eliminar este archivo es cerrar el terminal. La forma de borrar el archivo con el terminal abierto estaría bien.

 
pivomoe:

¿Es posible borrar el archivo de registro (pestaña "Expertos") cuando se inicia un Experto?

Es posible hacerlo manualmente: en la pestaña, (botón derecho del ratón) -> "Borrar"

 
Ivan Ivanov:

Puede hacerlo manualmente: en la pestaña, (clic derecho) -> "Borrar".

Sólo desaparecerá el texto de la ficha del experto. El archivo permanecerá en su lugar. Necesito eliminar o borrar el archivo.

 

Quiero enseñar a la máquina a encontrar un plano exacto. Sus condiciones son las siguientes: para que haya una barra en el gráfico


Conel fin de formar un piso, que quiero encontrar que necesita para formar 3 barrasopuestas a la 1 ª barra entre su altura HL (es decir, sólo 4 barras que se encuentran en un rango) para comparar las barras y encontrar los niveles escribió esta condición

        if(
        Bar_Op[qt+2]<=Bar_Hi[qt+3]&&Bar_Cl[qt+2]>=Bar_Lo[qt+3]&& 
        Bar_Op[qt+2]>=Bar_Lo[qt+3]&&Bar_Cl[qt+2]<=Bar_Hi[qt+3]&&
        Bar_Op[qt+1]<=Bar_Hi[qt+3]&&Bar_Cl[qt+1]>=Bar_Lo[qt+3]&&
        Bar_Op[qt+1]>=Bar_Lo[qt+3]&&Bar_Cl[qt+1]<=Bar_Hi[qt+3]&&
        Bar_Op[qt+0]<=Bar_Hi[qt+3]&&Bar_Cl[qt+0]>=Bar_Lo[qt+3]&&
        Bar_Op[qt+0]>=Bar_Lo[qt+3]&&Bar_Cl[qt+0]<=Bar_Hi[qt+3])         
        {

Según tengo entendido, la comparación se lleva a cabo, pero tengo un problema con el dibujo de los niveles

double Price_Ur = Bar_Cl[qt+2];

Quiero construir un nivel que pase por el precio de cierre de la segunda barra.


Tengo una pregunta ¿cómo devolver el precio más bajo de la condición o cómo encontrarlo puede ser que mi condición no devuelva el precio sino que sólo compare los máximos de las velas que pasan por el OP y el CL? He utilizado la siguiente notación

int iLwCL=iLowest(_Symbol,PERIOD_D1,MODE_CLOSE,3,qt+1); int iLwOP=iLowest(_Symbol,PERIOD_D1,MODE_OPEN,3,qt+1);
double Price_Ur = Bar_Cl[iLwCL]<Bar_Op[iLwOP] ? Bar_Cl[iLwCL]:Bar_Op[iLwOP];

La funcióniLowest determina el tope más bajo relativo a la barra 0, pero en mi caso no encuentra el precio más bajo. ¿Cómo puedo devolver el precio más bajo de la condición para construir un nivel como en el caso dedouble Price_Ur = Bar_Cl[qt+2];?

 
¿Puedes decirme si hay una forma de transferir un array de un EA a otro?
Las variables GV son muy inconvenientes para esto.
 
User_mt5:
¿Puedes decirme si hay una forma de transferir un array de un EA a otro?
Las variables GV son muy inconvenientes para esto.

Tal vez esto ayude a https://www.mql5.com/ru/code/818. Yo nunca lo he utilizado.

 
User_mt5:
¿Puedes decirme si hay una forma de transferir un array de un EA a otro?
Las variables GV son muy inconvenientes para esto.

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

Bibliotecas: TradeTransactions

fxsaber, 2018.09.20 16:23

// Пример хранения/обмена данными через Ресурсы внутри Терминала
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166

void OnStart()
{  
  const RESOURCEDATA<int> ResourceINT("::int"); // Ресурс для обмена int-ами. const - как доказательство, что ничего не пишется в объект класса
  
  int ArrayINT[] = {1, 2, 3};
  int Num = 5;
  
  ResourceINT = ArrayINT;  // Ресурс хранит массив.
  ResourceINT += Num;      // Добавили в ресурс еще значение.
  ResourceINT += ArrayINT; // Добавили массив.
  
  int ArrayINT2[];  
  ResourceINT.Get(ArrayINT2); // Считали данные из ресурса.
  ArrayPrint(ArrayINT2);      // Вывели: 1 2 3 5 1 2 3

  ResourceINT.Free();                // Удалили данные из ресурса
  Print(ResourceINT.Get(ArrayINT2)); // Убедились, что данных нет: 0

  const RESOURCEDATA<MqlTick> ResourceTicks("::Ticks"); // Ресурс для обмена тиками. const - как доказательство, что ничего не пишется в объект класса
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick))
    for (int i = 0; i < 3; i++)
      ResourceTicks += Tick; // Добавили в ресурс тики

  MqlTick Ticks[];
  ResourceTicks.Get(Ticks); // Считали данные из ресурса.
  ArrayPrint(Ticks);        // Вывели.
  
  // Это полное имя ресурса для обращения из другой программы
  const string NameOut = StringSubstr(MQLInfoString(MQL_PROGRAM_PATH), StringLen(TerminalInfoString(TERMINAL_PATH)) + 5) + "::Ticks";  
  Print(NameOut); // Вывели полное имя ресурса.
  
  const RESOURCEDATA<MqlTick> Resource(NameOut); // Ресурс для доступа к данным (read-only) из другой программы
  
  MqlTick TicksOut[];
  Resource.Get(TicksOut); // Считали данные из ресурса.
  ArrayPrint(TicksOut);   // Вывели.
  
  Resource.Free();   // Не получится повлиять на данные read-only-ресурса.
  Print(_LastError); // ERR_INVALID_PARAMETER - Ошибочный параметр при вызове системной функции.
}
 
pivomoe, @fxsabe, gracias. Lo investigaré.
 

No entiendo cómo en este asesor

https://www.mql5.com/ru/code/20254

No sé cómo evitar que se dibuje la barra actual (aún no formada). ¿Alguien puede darme una pista?

Renko 2.0 Offline
Renko 2.0 Offline
  • www.mql5.com
Неторгующий советник Renko 2.0 Offline генерирует информацию по пользовательскому символу на минутном графике. Полный график Ренко с фитилями. Доступен и оффлайн! Ссылается на библиотеку Symbol для MetaTrader 5, написанную пользователем fxsaber. Настраивается с...
 
EgorKim:

No entiendo cómo en este asesor

https://www.mql5.com/ru/code/20254

Para evitar la extracción de la barra actual (aún no formada). ¿Puede alguien darme una pista?

Deberías preguntar en el hilo de discusión del Asesor Experto).