Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 23

 
scomoroh:
Ja, danke, alles repariert, keine Fehler. Es verlangsamt sich, ja, sehr stark. Würden Sie raten, in welche Richtung man gehen sollte, um es zu optimieren, oder muss man alles neu schreiben?

Es werden zu viele Objekte bei jedem Tick erstellt und gelöscht, dies sollte irgendwie begrenzt werden, z.B. werden nicht alle Objekte gelöscht, sondern nur die, die bei den letzten 1-2 Ticks gezeichnet wurden.

In einem ähnlichen Fall habe ich zum Beispiel diese Funktion anstelle vonObjectsDeleteAll() in start() verwendet:

void deletelast()
{
   for(int i=ObjectsTotal()-1;i>=0;i--)
   {
      string name=ObjectName(i);
      if(StringFind(name,"Shadows.",0)>-1)
      {
         datetime crtm=(datetime)ObjectGetInteger(0,name,OBJPROP_CREATETIME);
         if(crtm>=iTime(Symbol(),0,1))
         if(!ObjectDelete(name)) Print("ObjectDelete error# ",_LastError);
      }
   }
}
 

Können Sie mir sagen, ob es möglich ist, die Handelserlaubnis für diesen EA vom EA aus zu verwalten?

d.h. die Variable MQL_TRADE_ALLOWED zu verwenden?

Zum Beispiel, wenn der Spread groß ist, dann verbieten Sie den Handel (aber nicht zu stoppen Expert Advisor)

Ich weiß nur nicht, wie ich diese Variable setzen soll. Die direkte Zuordnung von 1 oder 0 funktioniert nicht.
 
harbor:

Können Sie mir sagen, ob es möglich ist, die Handelserlaubnis für diesen EA vom EA aus zu kontrollieren?

d.h. die Variable MQL_TRADE_ALLOWED zu verwenden?

Zum Beispiel, wenn Spread ist groß, dann verbieten Handel (aber nicht zu stoppen, die EA)

Ich weiß nur nicht, wie ich diese Variable setzen soll. Ich kann sie nicht direkt auf 1 oder 0 setzen.

Dieser Zustand

https://www.mql5.com/ru/docs/runtime/tradepermission

Документация по MQL5: Программы MQL5 / Разрешение на торговлю
Документация по MQL5: Программы MQL5 / Разрешение на торговлю
  • www.mql5.com
Программы MQL5 / Разрешение на торговлю - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Aber es ist möglich, sie zu kontrollieren.

Sie müssen nur einen Programmalgorithmus erstellen.

An jeder Stelle des Algorithmus und unter jeder Bedingung können Sie das Programm mit dem Befehl

return(0);
 
Hallo! Ich bin neu in diesem schwierigen Geschäft und stehe ständig vor neuen Hindernissen. Ich versuche, einen EA zu schreiben, aber ich kann das Problem mit dem Zeitrahmen des Indikators, den mein EA zur Eingabe verwendet, nicht lösen. Das Problem besteht im Wesentlichen in Folgendem: Nach den Bedingungen, ich brauche, dass auf der 15-Minuten-Zeitrahmen auf dem Indikator Stochastic Signal Linie war unter dem Niveau von 20. Genau bei 15 min. TF! In der Tat stellt sich heraus, dass die Signallinie das Niveau 20 in anderen Zeitrahmen (1; 5; 30 min.) kreuzt und mein Expert Advisor falsch arbeitet. Ich muss alle Zeitrahmen herausfiltern und nur 15 Minuten übrig lassen. Dieser Berater würde Überkreuzungen in anderen Zeitrahmen nicht berücksichtigen. Ich wäre für jede Hilfe dankbar
 
TimBerg:
Hallo! Ich bin neu in diesem schwierigen Geschäft und stoße ständig auf neue Hindernisse. Ich versuche, einen EA zu schreiben, aber ich kann das Problem mit dem Zeitrahmen des Indikators, den mein EA zur Eingabe verwendet, nicht lösen. Das Problem besteht im Wesentlichen in Folgendem: Nach den Bedingungen, ich brauche, dass auf der 15-Minuten-Zeitrahmen auf dem Indikator Stochastic Signal Linie war unter dem Niveau von 20. Genau bei 15 min. TF! In der Tat stellt sich heraus, dass die Signallinie das Niveau 20 in anderen Zeitrahmen (1; 5; 30 min.) kreuzt und mein Expert Advisor falsch arbeitet. Ich muss alle Zeitrahmen herausfiltern und nur den 15-Minuten-Zeitrahmen übrig lassen. Dieser EA hat Überkreuzungen auf anderen Zeitskalen nicht berücksichtigt. Ich würde Ihre Hilfe sehr schätzen.
Zeigen Sie ein Codeschnipsel, wie Sie das Signal vom Indikator in Ihrem EA lesen
 
Renat Akhtyamov:
Zeigen Sie mir ein Codefragment, wie Sie das Signal aus dem Indikator in Ihrem Expert Advisor lesen
Ich kann mich nicht mehr daran erinnern, ich werde es Ihnen zeigen, wenn ich nach Hause komme.
 
Renat Akhtyamov:

Aber es ist möglich, sie zu kontrollieren.

Sie müssen nur einen Programmalgorithmus erstellen.

An jeder Stelle des Algorithmus und unter jeder Bedingung können Sie das Programm mit dem Befehl

return(0);

dann hört das Programm auf, ausgeführt zu werden, aber ich möchte, dass es weiterläuft.

Ich denke, ich müsste eine Reihe von Bedingungen stellen.

 
harbor:

dann hört das Programm auf, ausgeführt zu werden, aber ich brauche es, um fortzufahren

Ich werde wohl eine Reihe von Bedingungen stellen müssen.

Wie können wir weitermachen, wenn der Spread gestiegen ist? Wenn Sie weitermachen müssen, was hat dann die Verbreitung damit zu tun?

(c) dann den Handel verbieten (aber den EA nicht stoppen)= Wenn Sie den Handel verbieten, wie soll er dann weiter funktionieren? Was ist der Sinn?

 
harbor:

dann hört das Programm auf, ausgeführt zu werden, aber ich brauche es, um fortzufahren

Ich werde wohl eine Reihe von Bedingungen stellen müssen.

Das stimmt, es ist ein Programm.)