Decidió averiguar cuánto ganarán 2 agentes en el servicio MQL5 Cloud Network para construir una plancha con un procesador multinúcleo en el futuro. He añadido los agentes mediante el Gestor de Agentes. Parece que se han añadido bien.
Nada parecesospechoso... He entrado en mi cuenta MQL5.COM. He visto los agentes creados en la sección "Agentes" del Área Personal. También encontré dos servicios, MetaTester-1 y MetaTester-2 en el administrador de tareas. Pero durante medio día no hay tareas para los agentes. Todo es nulo. ¿Por qué no funcionan los agentes?
Y ahora veo que todos los agentes fueron borrados de mi oficina.
Los servicios MetaTester-1 yMetaTester-2 en el Administrador de Tareasse muestran y en el Administrador de Agentes. Sin embargo, el Administrador de Agentes muestra que los servicios están desactivados. Y no están en el Gabinete, a pesar de que estaban ayer... ¿A qué se debe este comportamiento de MQL5 Cloud Network?
Y ahora veo que los agentes han sido borrados en mi gabinete.
Los servicios MetaTester-1 yMetaTester-2 aparecen en el Administrador de Tareas y en el Administrador de Agentes. Sin embargo, el Administrador de Agentes muestra que los servicios están desactivados. Y no están en el gabinete, a pesar de que estaban allí ayer... ¿Cuál es la razón por la que MQL5 Cloud Network se comporta así?
Ayúdame a solucionar el problema del tamaño del contenido, no consigo que cambie. Cuando se cambia el tamaño de la ventana del gráfico, hay que cambiar su altura.
Y el desplazamiento se pierde cuando se vuelve a activarOnCalculate()
//+------------------------------------------------------------------+//+------------------------------------------------------------------+#include <Controls\Dialog.mqh>
#include <Controls\ListView.mqh>
//+------------------------------------------------------------------+//| Class CPanelDialog |//| Usage: main dialog of the SimplePanel application |//+------------------------------------------------------------------+class CPanelDialog : public CAppDialog
{
public:
CListView m_list_view1; // the list object
CListView m_list_view2; // the list objectpublic:
CPanelDialog(void);
~CPanelDialog(void);
virtualbool Create(constlong chart,conststring name,constint subwin,constint x1,constint y1,constint x2,constint y2);
virtualbool OnEvent(constint id,constlong &lparam,constdouble &dparam,conststring &sparam);
virtualvoid OnChangeListView(void);
protected:
bool CreateListView(void);
virtualbool OnResize(void);
bool OnDefault(constint id,constlong &lparam,constdouble &dparam,conststring &sparam);
};
//+------------------------------------------------------------------+//| Event Handling |//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CPanelDialog)
ON_EVENT(ON_CHANGE,m_list_view1,OnChangeListView)
ON_OTHER_EVENTS(OnDefault)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+//| Constructor |//+------------------------------------------------------------------+
CPanelDialog::CPanelDialog(void)
{
}
//+------------------------------------------------------------------+//| Destructor |//+------------------------------------------------------------------+
CPanelDialog::~CPanelDialog(void)
{
}
//+------------------------------------------------------------------+//| Create |//+------------------------------------------------------------------+bool CPanelDialog::Create(constlong chart,conststring name,constint subwin,constint x1,constint y1,constint x2,constint y2)
{
if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
return(false);
//--- create dependent controlsif(!CreateListView())
return(false);
//--- succeedreturn(true);
}
//+------------------------------------------------------------------+//| Create the "ListView" element |//+------------------------------------------------------------------+bool CPanelDialog::CreateListView(void)
{
//--- coordinatesint x1=0;
int y1=0;
int x2=ClientAreaWidth();
int y2=ClientAreaHeight();
//--- create
m_list_view1.Create(0,m_name+"ListView",0,x1,y1,x2,y2);
m_list_view1.ColorBackground(clrMistyRose);
Add(m_list_view1);
m_list_view1.Alignment(WND_ALIGN_HEIGHT,0,0,0,0);
//--- succeedreturn(true);
}
//+------------------------------------------------------------------+//| Handler of resizing |//+------------------------------------------------------------------+bool CPanelDialog::OnResize(void)
{
//--- call method of parent classif(!CAppDialog::OnResize())
return(false);
//--- succeedreturn(true);
}
//+------------------------------------------------------------------+//| Event handler |//+------------------------------------------------------------------+void CPanelDialog::OnChangeListView(void)
{
//+------------------------------------------------------------------+
}
//+------------------------------------------------------------------+//| Rest events handler |//+------------------------------------------------------------------+bool CPanelDialog::OnDefault(constint id,constlong &lparam,constdouble &dparam,conststring &sparam)
{
//--- let's handle event by parentreturn(false);
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+//+------------------------------------------------------------------+//+------------------------------------------------------------------+//+------------------------------------------------------------------+//+------------------------------------------------------------------+#property version"1.00"#property strict#property indicator_chart_windowstring symbols[];
//+------------------------------------------------------------------+//| Global Variables |//+------------------------------------------------------------------+
CPanelDialog ExtDialog;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- create application dialogif(!ExtDialog.Create(0,"Spread",0,12,12,250,300))return(INIT_FAILED);
//--- run applicationif(!ExtDialog.Run())
return(INIT_FAILED);
//--- okreturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- destroy application dialog
ExtDialog.Destroy(reason);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime& time[],
constdouble& open[],
constdouble& high[],
constdouble& low[],
constdouble& close[],
constlong& tick_volume[],
constlong& volume[],
constint& spread[])
{
//---ExtDialog.m_list_view1.ItemsClear();// Очистим списокint k=MarketWatch();
for(int i=0; i<k; i++)
{
string str = (string)(i+1)+" из "+(string)k+": "+symbols[i]+" = "+(string)SymbolInfoInteger(symbols[i],SYMBOL_SPREAD);
ExtDialog.m_list_view1.ItemAdd(str); // Заполним строками
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+//| ChartEvent function |//+------------------------------------------------------------------+voidOnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam)
{
ExtDialog.OnEvent(id,lparam,dparam,sparam);
if(id==CHARTEVENT_CHART_CHANGE || (id==CHARTEVENT_OBJECT_CLICK && StringFind(sparam,"MinMax")>0))
{
if(ExtDialog.Height()>40) // Если окно не свёрнуто
{
ExtDialog.Height((int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS)-50); // Изменим высоту диалог-окнаExtDialog.m_list_view1.Height(ExtDialog.Height()-40); // Изменим высоту содержимого в диалог-окне
}
}
//---
}
//+--- Список символов с MarketWatch --------------------------------+int MarketWatch()
{
int s=SymbolsTotal(true);
ArrayResize(symbols,s);
for(int i = 0; i < s; i++)
symbols[i] = SymbolName(i,true);
return(s);
}
//+------------------------------------------------------------------+
Ayúdame a solucionar el problema del tamaño del contenido, no consigo que cambie. Cuando se cambia el tamaño de la ventana del gráfico, hay que cambiar su altura.
Y el desplazamiento se pierde cuando se activa de nuevoOnCalculate().
Pruebe la versión parcheada de la biblioteca de ventanas y controles de ControlsPlus descrita en este artículo. Las propiedades de la goma se admiten automáticamente allí.
В этой статье мы завершаем описание концепции построения оконного интерфейса MQL-программ с помощью конструкций языка MQL. Специальный графический редактор позволит интерактивно настраивать раскладку, состоящую из основных классов элементов GUI, и затем экспортировать её в MQL-описание для использования в вашем MQL-проекте. Представлено внутреннее устройство редактора и руководство пользователя. Исходные коды прилагаются.
¿Hay alguna manera de saber que un programa MQL se inicia como resultado del propio inicio de la terminal (es decir, automáticamente al inicio de la sesión), en lugar de hacerlo de forma interactiva por el usuario?
Stanislav Korotky: ¿Existe una forma de averiguar que el programa MQL se inicia como resultado del inicio de la terminal (es decir, automáticamente al comienzo de la sesión) y no de forma interactiva por el usuario?
Servicios, sin bucle. Cuando el terminal se inicie, el servicio se ejecutará una vez, si no está en bucle. Qué tipo de lógica se pone en el servicio es una tarea específica para los requisitos requeridos.
Stanislav Korotky: ¿Existe una forma de detectar que un programa MQL se inicia como resultado del inicio de la terminal (es decir, automáticamente al comienzo de una sesión) y no de forma interactiva por un usuario?
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
¡Tiene un borrado inválido! Su código:
A medida que eliminas cada elemento, la lista se hace más pequeña. Por eso debes hacerlo así:
O incluso más simple:
Gracias por su respuesta. El problema sigue siendo añadir elementos
Decidió averiguar cuánto ganarán 2 agentes en el servicio MQL5 Cloud Network para construir una plancha con un procesador multinúcleo en el futuro. He añadido los agentes mediante el Gestor de Agentes. Parece que se han añadido bien.
Nada parecesospechoso... He entrado en mi cuenta MQL5.COM. He visto los agentes creados en la sección "Agentes" del Área Personal. También encontré dos servicios, MetaTester-1 y MetaTester-2 en el administrador de tareas. Pero durante medio día no hay tareas para los agentes. Todo es nulo. ¿Por qué no funcionan los agentes?
Y ahora veo que todos los agentes fueron borrados de mi oficina.
Los servicios MetaTester-1 yMetaTester-2 en el Administrador de Tareasse muestran y en el Administrador de Agentes. Sin embargo, el Administrador de Agentes muestra que los servicios están desactivados. Y no están en el Gabinete, a pesar de que estaban ayer... ¿A qué se debe este comportamiento de MQL5 Cloud Network?
Y ahora veo que los agentes han sido borrados en mi gabinete.
Los servicios MetaTester-1 yMetaTester-2 aparecen en el Administrador de Tareas y en el Administrador de Agentes. Sin embargo, el Administrador de Agentes muestra que los servicios están desactivados. Y no están en el gabinete, a pesar de que estaban allí ayer... ¿Cuál es la razón por la que MQL5 Cloud Network se comporta así?
No se borra nadie - desmarca esta casilla...
Nadie ha ido a ninguna parte - desmarca la casilla ...
А... ¡Correcto! Mis agentes tienen cero actividad...
Ayúdame a solucionar el problema del tamaño del contenido, no consigo que cambie. Cuando se cambia el tamaño de la ventana del gráfico, hay que cambiar su altura.
Y el desplazamiento se pierde cuando se vuelve a activarOnCalculate()
Ayúdame a solucionar el problema del tamaño del contenido, no consigo que cambie. Cuando se cambia el tamaño de la ventana del gráfico, hay que cambiar su altura.
Y el desplazamiento se pierde cuando se activa de nuevoOnCalculate().
Pruebe la versión parcheada de la biblioteca de ventanas y controles de ControlsPlus descrita en este artículo. Las propiedades de la goma se admiten automáticamente allí.
¿Existe una forma de averiguar que el programa MQL se inicia como resultado del inicio de la terminal (es decir, automáticamente al comienzo de la sesión) y no de forma interactiva por el usuario?
Servicios, sin bucle.
Cuando el terminal se inicie, el servicio se ejecutará una vez, si no está en bucle.
Qué tipo de lógica se pone en el servicio es una tarea específica para los requisitos requeridos.
¿Existe una forma de detectar que un programa MQL se inicia como resultado del inicio de la terminal (es decir, automáticamente al comienzo de una sesión) y no de forma interactiva por un usuario?
Buscando, no se encuentra.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Bichos, errores, preguntas
fxsaber, 2021.02.02 19:34
Tengo que determinar si el EA se ejecuta de la manera estándar o a través de la plantilla en la etapa de inicio.
¿Alguna idea sobre cómo resolver este problema? Por cierto, hay una subtarea para determinar el tiempo de vida del gráfico - cuando fue creado.
Busqué y no pude encontrarlo.
He encontrado esta solución para mis propósitos:
Estas funciones dan ceros cuando se inicia el terminal.
PS. Por desgracia, este método sólo funciona con un ratón. Si el usuario ejecuta el comando "Adjuntar al gráfico", el problema persiste.