Decidiu descobrir quanto ganharão 2 agentes no serviço MQL5 Cloud Network para construir um ferro com um processador multi-core no futuro. Adicionei os agentes utilizando o Agent Manager. Parece tê-los acrescentado bem.
Nada parece sersuspeito... Entrei na minha conta MQL5.COM. Vi os agentes criados na minha conta em "Agentes". Também encontrei dois serviços, MetaTester-1 e MetaTester-2 no gestor de tarefas. Mas durante meio dia não há tarefas para os agentes. Tudo é nulo. Porque é que os agentes não trabalham?
E agora vejo que todos os agentes foram eliminados do meu gabinete.
Serviços MetaTester-1 eMetaTester-2 em Task Managermostra e em Agent Manager. Contudo, o Agent Manager mostra que os serviços estão desactivados. E não estão no Gabinete, apesar de ontem lá terem estado. Qual é a razão de tal comportamento da MQL5 Cloud Network?
E agora vejo que os agentes foram apagados no meu gabinete.
Os serviços MetaTester-1 eMetaTester-2 no Task Managermostram e no Agent Manager. No entanto, o Agent Manager mostra que os serviços estão desactivados. E não estão no Gabinete, apesar de ontem lá terem estado. Qual é a razão para a MQL5 Cloud Network se comportar desta forma?
Ajude-me a resolver o problema com o tamanho do conteúdo, não o consigo mudar. Quando a janela do gráfico é redimensionada, tem de ser redimensionada em altura.
E a rolagem perde-se quando aOnCalculate() é novamente accionada
//+------------------------------------------------------------------+//+------------------------------------------------------------------+#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);
}
//+------------------------------------------------------------------+
Ajude-me a resolver o problema com o tamanho do conteúdo, não o consigo mudar. Quando a janela do gráfico é redimensionada, tem de ser redimensionada em altura.
E o scroll perde-se quandoOnCalculate() é accionado novamente.
Experimente a versão corrigida das janelas ControlsPlus e da biblioteca de controlos descrita neste artigo. As propriedades da borracha são aí automaticamente suportadas.
В этой статье мы завершаем описание концепции построения оконного интерфейса MQL-программ с помощью конструкций языка MQL. Специальный графический редактор позволит интерактивно настраивать раскладку, состоящую из основных классов элементов GUI, и затем экспортировать её в MQL-описание для использования в вашем MQL-проекте. Представлено внутреннее устройство редактора и руководство пользователя. Исходные коды прилагаются.
Existe alguma forma de saber que um programa MQL é iniciado como resultado do próprio arranque do terminal (ou seja, automaticamente no início da sessão), e não interactivamente pelo utilizador?
Stanislav Korotky: Existe alguma forma de descobrir que o programa MQL é iniciado como resultado do início do terminal (ou seja, automaticamente no início da sessão) e não interactivamente pelo utilizador?
Serviços, sem loop. Quando o terminal arranca, o serviço será executado uma vez, se não estiver em loop. Que tipo de lógica é posta ao serviço é uma tarefa específica para os requisitos exigidos.
Stanislav Korotky: Existe alguma forma de detectar que um programa MQL é iniciado como resultado do arranque do terminal (ou seja, automaticamente no início de uma sessão) e não interactivamente por um utilizador?
Tem uma eliminação inválida! O seu código:
À medida que se apaga cada item, a lista fica mais pequena! É por isso que o deve fazer desta forma:
Ou ainda mais simples:
Obrigado pela sua resposta. O problema continua a ser a adição de artigos
Decidiu descobrir quanto ganharão 2 agentes no serviço MQL5 Cloud Network para construir um ferro com um processador multi-core no futuro. Adicionei os agentes utilizando o Agent Manager. Parece tê-los acrescentado bem.
Nada parece sersuspeito... Entrei na minha conta MQL5.COM. Vi os agentes criados na minha conta em "Agentes". Também encontrei dois serviços, MetaTester-1 e MetaTester-2 no gestor de tarefas. Mas durante meio dia não há tarefas para os agentes. Tudo é nulo. Porque é que os agentes não trabalham?
E agora vejo que todos os agentes foram eliminados do meu gabinete.
Serviços MetaTester-1 eMetaTester-2 em Task Managermostra e em Agent Manager. Contudo, o Agent Manager mostra que os serviços estão desactivados. E não estão no Gabinete, apesar de ontem lá terem estado. Qual é a razão de tal comportamento da MQL5 Cloud Network?
E agora vejo que os agentes foram apagados no meu gabinete.
Os serviços MetaTester-1 eMetaTester-2 no Task Managermostram e no Agent Manager. No entanto, o Agent Manager mostra que os serviços estão desactivados. E não estão no Gabinete, apesar de ontem lá terem estado. Qual é a razão para a MQL5 Cloud Network se comportar desta forma?
Ninguém é eliminado - desmarque esta caixa...
Ninguém foi a lado nenhum - desmarque a caixa ...
А... Certo! Os meus agentes têm actividade zero...
Ajude-me a resolver o problema com o tamanho do conteúdo, não o consigo mudar. Quando a janela do gráfico é redimensionada, tem de ser redimensionada em altura.
E a rolagem perde-se quando aOnCalculate() é novamente accionada
Ajude-me a resolver o problema com o tamanho do conteúdo, não o consigo mudar. Quando a janela do gráfico é redimensionada, tem de ser redimensionada em altura.
E o scroll perde-se quandoOnCalculate() é accionado novamente.
Experimente a versão corrigida das janelas ControlsPlus e da biblioteca de controlos descrita neste artigo. As propriedades da borracha são aí automaticamente suportadas.
Existe alguma forma de descobrir que o programa MQL é iniciado como resultado do início do terminal (ou seja, automaticamente no início da sessão) e não interactivamente pelo utilizador?
Serviços, sem loop.
Quando o terminal arranca, o serviço será executado uma vez, se não estiver em loop.
Que tipo de lógica é posta ao serviço é uma tarefa específica para os requisitos exigidos.
Existe alguma forma de detectar que um programa MQL é iniciado como resultado do arranque do terminal (ou seja, automaticamente no início de uma sessão) e não interactivamente por um utilizador?
A procurar, não encontrado.
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Insectos, insectos, perguntas
fxsaber, 2021.02.02 19:34
Tenho de determinar se a EA é executada de forma standard ou através de modelo na fase de arranque.
Alguma ideia sobre como resolver este problema? A propósito, existe uma sub-tarefa de determinar a vida útil do gráfico - quando este foi criado.
Procurado, não o consegui encontrar.
Encontrei esta solução para os meus propósitos:
Estas funções dão zeros quando o terminal arranca.
PS. Infelizmente, este método só funciona com um rato. Se o utilizador executar o comando "Anexar ao gráfico", o problema mantém-se.