Theorie der EA-Beschleunigung bei Verwendung eines benutzerdefinierten Indikators (Funktion - iCustom) - Seite 7

 
Dennis Kirichenko:

Nein. Es gibt eine magische Funktion, mit der alle Versuche gemischt werden können:

Dieser Mechanismus ist in das Sprachterminal selbst eingebaut. Obwohl die Idee interessant ist...

Traurigerweise... Wir werden weiter nachdenken.

Dennis Kirichenko:

Was soll das heißen, es ist vorbei? :-)

Das bedeutet, dass der Indikator anfing, Nullen anstelle von Ziffern zu liefern.

Dennis Kirichenko, Karputov Vladimir - danke für die Informationen über die Funktionen!

Ich verstehe nur nicht, was der Unterschied zwischen TERMINAL_MEMORY_TOTAL und TERMINAL_MEMORY_AVAILABLE ist?

TERMINAL_MEMORY_TOTAL ist der maximal verfügbare Speicher, und TERMINAL_MEMORY_AVAILABLE ist der verbleibende Speicher, richtig?

 
-Aleks-:

Ich verstehe nur den Unterschied zwischen TERMINAL_MEMORY_TOTAL und TERMINAL_MEMORY_AVAILABLE nicht?

TERMINAL_MEMORY_TOTAL ist der maximal verfügbare Speicher, und TERMINAL_MEMORY_AVAILABLE ist der verbleibende Speicher, richtig?

Am besten überprüfen Sie das selbst: Öffnen Sie das Terminal; öffnen Sie den Task-Manager; führen Sie ein Skript aus, das die Werte von TERMINAL_MEMORY_TOTAL und TERMINAL_MEMORY_AVAILABLE ausgibt, und vergleichen Sie sie mit den Werten im Task-Manager.
 
In vier werden wir eine aggressivere automatische Löschung solcher Indikatorkopien hinzufügen.
 
-Aleks-:
Ich habe es manuell versucht, indem ich die Vorlage mit vielen Indikatoren auf fast leer geändert habe - der Effekt ist da (aber der Cache bleibt - ich denke, es ist nicht kritisch). Aber wie man das Öffnen und Schließen durch eine Vorlage Skript zu machen - ich weiß es nicht. Ich habe verstanden, dass der Zweifel darin besteht, dass der Speicher nicht gelöscht wird, solange das Skript läuft... Andrei, bitte hilf bei dem Experiment.

Was klappt nicht? Was soll helfen? Wo ist der Versuch? Wo ist der Code?

ChartOpen, um das Diagramm zu öffnen. Dann auf sie ChartApplyTemplate mit dem Namen einer vorgefertigten Vorlage (es wird die gleiche die ganze Zeit, es gibt keine Notwendigkeit, es zu schreiben). Dann ChartClose.

Messen Sie den Speicher durch die vorgeschlagene Funktion. Oder Sie können meinen kostenlosen iMemory-Indikator herunterladen, der speziell für diesen Zweck entwickelt wurde.

 
Renat Fatkhullin:
In vier werden wir eine aggressivere automatische Löschung solcher Indikatorkopien hinzufügen.

Hurra! Wie schön, wenn die Mächtigen einen hören!

Und sind "solche Indikatorkopien" solche, die durch erstere verursacht werden, wenn der Speicher für letztere nicht ausreicht, oder etwas anderes?

 
Andrey Khatimlianskii:

Was klappt nicht? Was soll helfen? Wo ist der Versuch? Wo ist der Code?

ChartOpen, um das Diagramm zu öffnen. Dann auf sie ChartApplyTemplate mit dem Namen einer vorgefertigten Vorlage (es wird die gleiche die ganze Zeit, es gibt keine Notwendigkeit, es zu schreiben). Dann ChartClose.

Messen Sie den Speicher durch die vorgeschlagene Funktion. Oder Sie können meinen kostenlosen iMemory-Indikator herunterladen, der speziell für diesen Zweck entwickelt wurde.

Was für ein Programmierer bin ich? Hier habe ich begonnen, das Skript zu schreiben - der erste Befehl zum Öffnen des Diagramms liefert kein Ergebnis. Was ist los?

//+------------------------------------------------------------------+

//|                                                      Scripts.mq4 |

//|                      Copyright © 2008, MetaQuotes Software Corp. |

//|                                             https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2008, MetaQuotes Software Corp."

#property link      "https://www.mql5.com"

#property version   "1.00"

#property strict

#property script_show_inputs

//--- input parameters

input int      Input1=0;

//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+



long  ChartOpen(string GBPUSD, ENUM_TIMEFRAMES  PERIOD_H1);

   

void OnStart()

  {

  }

//+------------------------------------------------------------------+

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
-Aleks-:

Was für ein Programmierer bin ich.... mit dem Schreiben des Skripts begonnen - der erste Befehl zum Öffnen des Diagramms liefert keine Ergebnisse. Was ist los?

Sie meinten also "tu es für mich", nicht "hilf mir"? Das sagst du.

Nicht so - fast alles: Die Funktion ChartOpen muss aus dem Körper der Funktion OnStart aufgerufen werden. Der erste Parameter - string - muss in Anführungszeichen stehen. Der Datentyp (string und ENUM_TIMEFRAMES) muss beim Aufruf nicht angegeben werden).

Beginnen Sie mit der Suche nach Beispielen für die Verwendung von Funktionen oder der Dokumentation (auch dort gibt es Beispiele).

 
Andrey Khatimlianskii:

Sie meinten also "tu es für mich", nicht "hilf mir"? Das sagst du.

Nicht so - so ziemlich alles: Die Funktion ChartOpen sollte aus dem Körper der Funktion OnStart aufgerufen werden. Der erste Parameter - string - muss in Anführungszeichen stehen. Der Datentyp (string und ENUM_TIMEFRAMES) muss beim Aufruf nicht angegeben werden).

Suchen Sie zunächst nach Beispielen für die Verwendung der Funktion oder der Dokumentation (auch dort gibt es Beispiele).

Das ist das Problem, es gibt kein richtiges Beispiel in der Hilfe.

Nach Ihren Kommentaren habe ich es neu gemacht:

 //+------------------------------------------------------------------+

//|                                                      Scripts.mq4 |

//|                      Copyright © 2008, MetaQuotes Software Corp. |

//|                                             https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2008, MetaQuotes Software Corp."

#property link      "https://www.mql5.com"

#property version   "1.00"

#property strict

#property script_show_inputs

//--- input parameters

input int      Input1=0;

//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+



   

void OnStart()

  {

   long  ChartOpen("GBPUSD",   PERIOD_H1);

  }

//+------------------------------------------------------------------+


Ich erhalte Fehlermeldungen beim Klammern, was ist los?

Scripts.mq4' Scripts.mq4 1 1

'ChartOpen' - Funktion kann nur im globalen Bereich deklariert werden Scripts.mq4 21 10

'GBPUSD' - Deklaration ohne Typ Scripts.mq4 21 20

'GBPUSD' - Komma erwartet Scripts.mq4 21 20

'PERIOD_H1' - Deklaration ohne Typ Scripts.mq4 21 32

4 Fehler, 0 Warnung(en) 5 1

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
-Aleks-:

Das ist das Problem, es gibt kein richtiges Beispiel in der Hilfe.

Ich habe es nach Ihren Kommentaren überarbeitet:

 //+------------------------------------------------------------------+

//|                                                      Scripts.mq4 |

//|                      Copyright © 2008, MetaQuotes Software Corp. |

//|                                             https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2008, MetaQuotes Software Corp."

#property link      "https://www.mql5.com"

#property version   "1.00"

#property strict

#property script_show_inputs

//--- input parameters

input int      Input1=0;

//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+



   

void OnStart()

  {

   long  ChartOpen("GBPUSD",   PERIOD_H1);

  }

//+------------------------------------------------------------------+


Ich erhalte Fehlermeldungen beim Klammern, was ist los?

Scripts.mq4' Scripts.mq4 1 1

'ChartOpen' - Funktion kann nur im globalen Bereich deklariert werden Scripts.mq4 21 10

'GBPUSD' - Deklaration ohne Typ Scripts.mq4 21 20

'GBPUSD' - Komma erwartet Scripts.mq4 21 20

'PERIOD_H1' - Deklaration ohne Typ Scripts.mq4 21 32

4 Fehler, 0 Warnung(en) 5 1

Es dauert zu lange, zu erklären, was falsch ist :)

void OnStart()

  {

   ChartOpen("GBPUSD",   PERIOD_H1);

  }
 
-Aleks-:

Das ist das Problem: Es gibt kein richtiges Beispiel im Helpdesk.

Neben der Helpline gibt es eine Codobase und ein Forum. Suche funktioniert.

ps: ugh, das Einfügen des Links in der Nachricht ist fehlgeschlagen =(

https://www.mql5.com/ru/search#!keyword=ChartOpen&page=2

Grund der Beschwerde: