Fehler, Irrtümer, Fragen - Seite 2968

 
Mihail Matkovskij:

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

 
Mihail Matkovskij:

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?

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
Mihail Matkovskij:

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...

 
Vladimir Karputov:

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


//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#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 object

public:
                     CPanelDialog(void);
                    ~CPanelDialog(void);

   virtual bool      Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2);
   virtual bool      OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
   virtual void      OnChangeListView(void);
protected:
   bool              CreateListView(void);
   virtual bool      OnResize(void);
   bool              OnDefault(const int id,const long &lparam,const double &dparam,const string &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(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2)
  {
   if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
      return(false);
//--- create dependent controls
   if(!CreateListView())
      return(false);
//--- succeed
   return(true);
  }
//+------------------------------------------------------------------+
//| Create the "ListView" element                                    |
//+------------------------------------------------------------------+
bool CPanelDialog::CreateListView(void)
  {
//--- coordinates
   int 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);
//--- succeed
   return(true);
  }
//+------------------------------------------------------------------+
//| Handler of resizing                                              |
//+------------------------------------------------------------------+
bool CPanelDialog::OnResize(void)
  {
//--- call method of parent class
   if(!CAppDialog::OnResize())
      return(false);

//--- succeed
   return(true);
  }
//+------------------------------------------------------------------+
//| Event handler                                                    |
//+------------------------------------------------------------------+
void CPanelDialog::OnChangeListView(void)
  {

//+------------------------------------------------------------------+
  }
//+------------------------------------------------------------------+
//| Rest events handler                                                    |
//+------------------------------------------------------------------+
bool CPanelDialog::OnDefault(const int id,const long &lparam,const double &dparam,const string &sparam)
  {

//--- let's handle event by parent
   return(false);
  }

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#property version "1.00"
#property strict

#property indicator_chart_window

string symbols[];
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CPanelDialog ExtDialog;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create application dialog
   if(!ExtDialog.Create(0,"Spread",0,12,12,250,300))
      return(INIT_FAILED);
//--- run application
   if(!ExtDialog.Run())
      return(INIT_FAILED);
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy application dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& 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 call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &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);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko:

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-программ (Часть 3). Дизайнер форм
Язык MQL как средство разметки графического интерфейса MQL-программ (Часть 3). Дизайнер форм
  • www.mql5.com
В этой статье мы завершаем описание концепции построения оконного интерфейса 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?

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.

 
fxsaber:

Ich habe gesucht, aber nichts gefunden.

Ich habe diese Lösung für meine Zwecke gefunden:

ChartPriceOnDropped()=0.0
ChartTimeOnDropped()=1970.01.01 00:00:00
ChartXOnDropped()=0
ChartYOnDropped()=0

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.

Grund der Beschwerde: