Beschlossen, herauszufinden, wie viel 2 Agenten im MQL5 Cloud Network Service verdienen werden, um in Zukunft ein Bügeleisen mit einem Multicore-Prozessor zu bauen. Ich habe die Agenten mit Agent Manager hinzugefügt. Es scheint, dass sie gut hinzugefügt wurden.
Nichts scheintverdächtig zu sein...Ich habe mich bei meinem MQL5.COM-Konto angemeldet. Ich habe die erstellten Agenten in meinem Konto unter "Agenten" gesehen. Ich habe auch zwei Dienste, MetaTester-1 und MetaTester-2, im Task-Manager gefunden. Aber einen halben Tag lang gibt es keine Aufgaben für Agenten. Alles ist null. Warum arbeiten Agenten nicht?
Und jetzt sehe ich, dass alle Agenten aus meinem Büro gelöscht wurden.
Die Dienste MetaTester-1 undMetaTester-2 werdenim Task-Manager und im Agent-Managerangezeigt, im Agent-Manager wird jedoch angezeigt, dass die Dienste deaktiviert sind. Und sie sind nicht im Schrank, obwohl sie gestern noch da waren... Was ist der Grund für dieses Verhalten von MQL5 Cloud Network?
Und jetzt sehe ich, dass die Agenten in meinem Schrank gelöscht worden sind.
Die Dienste MetaTester-1 undMetaTester-2 werden im Task-Manager und im Agent-Managerangezeigt. Im Agent-Manager wird jedoch angezeigt, dass die Dienste deaktiviert sind. Und sie sind nicht im Kabinett, obwohl sie gestern dort waren... Was ist der Grund dafür, dass sich das MQL5 Cloud Network so verhält?
Es wird niemand gelöscht - deaktivieren Sie dieses Kästchen...
Helfen Sie mir, das Problem mit der Größe des Inhalts zu lösen, ich bekomme es nicht hin, sie zu ändern. Wenn die Größe des Diagrammfensters geändert wird, muss es auch in der Höhe angepasst werden.
Und der Bildlauf geht verloren, wennOnCalculate() erneut ausgelöst wird
//+------------------------------------------------------------------+//+------------------------------------------------------------------+#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);
}
//+------------------------------------------------------------------+
Helfen Sie mir, das Problem mit der Größe des Inhalts zu lösen, ich bekomme es nicht hin, sie zu ändern. Wenn die Größe des Diagrammfensters geändert wird, muss es auch in der Höhe angepasst werden.
Und der Bildlauf geht verloren, wennOnCalculate() erneut ausgelöst wird.
Probieren Sie die gepatchte Version der ControlsPlus-Fenster und -Steuerungsbibliothek aus, die in diesem Artikel beschrieben wird. Die Gummieigenschaften werden dort automatisch unterstützt.
В этой статье мы завершаем описание концепции построения оконного интерфейса MQL-программ с помощью конструкций языка MQL. Специальный графический редактор позволит интерактивно настраивать раскладку, состоящую из основных классов элементов GUI, и затем экспортировать её в MQL-описание для использования в вашем MQL-проекте. Представлено внутреннее устройство редактора и руководство пользователя. Исходные коды прилагаются.
Gibt es eine Möglichkeit zu wissen, dass ein MQL-Programm durch den Start des Terminals selbst gestartet wird (d.h. automatisch zu Beginn der Sitzung), und nicht interaktiv durch den Benutzer?
Stanislav Korotky: Gibt es eine Möglichkeit herauszufinden, dass das MQL-Programm als Ergebnis des Terminal-Starts (d.h. automatisch zu Beginn der Sitzung) und nicht interaktiv durch den Benutzer gestartet wird?
Dienstleistungen, ohne Schleife. Beim Start des Terminals wird der Dienst einmal ausgeführt, wenn er nicht in einer Schleife läuft. Welche Art von Logik in den Dienst eingebaut wird, ist eine spezifische Aufgabe für die erforderlichen Anforderungen.
Stanislav Korotky: Gibt es eine Möglichkeit zu erkennen, dass ein MQL-Programm als Ergebnis des Terminal-Starts (d.h. automatisch zu Beginn einer Sitzung) und nicht interaktiv durch einen Benutzer gestartet wird?
Ich muss feststellen, ob der EA beim Start standardmäßig oder per Vorlage ausgeführt wird.
Haben Sie eine Idee, wie man dieses Problem lösen kann? Übrigens gibt es eine Teilaufgabe, die Lebensdauer des Diagramms zu bestimmen - wann es erstellt wurde.
Sie haben eine ungültige Löschung! Ihr Code:
Wenn Sie jeden Eintrag löschen, wird die Liste kleiner! Deshalb sollten Sie es so machen:
Oder noch einfacher:
Ich danke Ihnen für Ihre Antwort. Das Problem ist immer noch das Hinzufügen von Elementen
Beschlossen, herauszufinden, wie viel 2 Agenten im MQL5 Cloud Network Service verdienen werden, um in Zukunft ein Bügeleisen mit einem Multicore-Prozessor zu bauen. Ich habe die Agenten mit Agent Manager hinzugefügt. Es scheint, dass sie gut hinzugefügt wurden.
Nichts scheintverdächtig zu sein...Ich habe mich bei meinem MQL5.COM-Konto angemeldet. Ich habe die erstellten Agenten in meinem Konto unter "Agenten" gesehen. Ich habe auch zwei Dienste, MetaTester-1 und MetaTester-2, im Task-Manager gefunden. Aber einen halben Tag lang gibt es keine Aufgaben für Agenten. Alles ist null. Warum arbeiten Agenten nicht?
Und jetzt sehe ich, dass alle Agenten aus meinem Büro gelöscht wurden.
Die Dienste MetaTester-1 undMetaTester-2 werdenim Task-Manager und im Agent-Managerangezeigt, im Agent-Manager wird jedoch angezeigt, dass die Dienste deaktiviert sind. Und sie sind nicht im Schrank, obwohl sie gestern noch da waren... Was ist der Grund für dieses Verhalten von MQL5 Cloud Network?
Und jetzt sehe ich, dass die Agenten in meinem Schrank gelöscht worden sind.
Die Dienste MetaTester-1 undMetaTester-2 werden im Task-Manager und im Agent-Managerangezeigt. Im Agent-Manager wird jedoch angezeigt, dass die Dienste deaktiviert sind. Und sie sind nicht im Kabinett, obwohl sie gestern dort waren... Was ist der Grund dafür, dass sich das MQL5 Cloud Network so verhält?
Es wird niemand gelöscht - deaktivieren Sie dieses Kästchen...
Niemand ist irgendwohin gegangen - deaktivieren Sie das Kontrollkästchen ...
А... Genau! Meine Agenten haben null Aktivität...
Helfen Sie mir, das Problem mit der Größe des Inhalts zu lösen, ich bekomme es nicht hin, sie zu ändern. Wenn die Größe des Diagrammfensters geändert wird, muss es auch in der Höhe angepasst werden.
Und der Bildlauf geht verloren, wennOnCalculate() erneut ausgelöst wird
Helfen Sie mir, das Problem mit der Größe des Inhalts zu lösen, ich bekomme es nicht hin, sie zu ändern. Wenn die Größe des Diagrammfensters geändert wird, muss es auch in der Höhe angepasst werden.
Und der Bildlauf geht verloren, wennOnCalculate() erneut ausgelöst wird.
Probieren Sie die gepatchte Version der ControlsPlus-Fenster und -Steuerungsbibliothek aus, die in diesem Artikel beschrieben wird. Die Gummieigenschaften werden dort automatisch unterstützt.
Gibt es eine Möglichkeit herauszufinden, dass das MQL-Programm als Ergebnis des Terminal-Starts (d.h. automatisch zu Beginn der Sitzung) und nicht interaktiv durch den Benutzer gestartet wird?
Dienstleistungen, ohne Schleife.
Beim Start des Terminals wird der Dienst einmal ausgeführt, wenn er nicht in einer Schleife läuft.
Welche Art von Logik in den Dienst eingebaut wird, ist eine spezifische Aufgabe für die erforderlichen Anforderungen.
Gibt es eine Möglichkeit zu erkennen, dass ein MQL-Programm als Ergebnis des Terminal-Starts (d.h. automatisch zu Beginn einer Sitzung) und nicht interaktiv durch einen Benutzer gestartet wird?
Gesucht, nicht gefunden.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Wanzen, Wanzen, Fragen
fxsaber, 2021.02.02 19:34
Ich muss feststellen, ob der EA beim Start standardmäßig oder per Vorlage ausgeführt wird.
Haben Sie eine Idee, wie man dieses Problem lösen kann? Übrigens gibt es eine Teilaufgabe, die Lebensdauer des Diagramms zu bestimmen - wann es erstellt wurde.
Ich habe gesucht, aber nichts gefunden.
Ich habe diese Lösung für meine Zwecke gefunden:
Diese Funktionen ergeben beim Start des Terminals Nullen.
PS. Leider funktioniert diese Methode nur mit einer Maus. Wenn der Benutzer den Befehl "An Diagramm anhängen" ausführt, bleibt das Problem bestehen.