Theorie der EA-Beschleunigung bei Verwendung eines benutzerdefinierten Indikators (Funktion - iCustom) - Seite 7
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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.
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?
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?
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.
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?
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()
{
}
//+------------------------------------------------------------------+
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).
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
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 :)
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