Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 665

 
erstellen.
nikitasa1997:

Guten Tag, liebe Forumsnutzer, bitte helfen Sie einem Neuling. Ich habe einen benutzerdefinierten Indikator, unten ist ein Code-Fragment mit mehr als 1000 Zeilen wie in den ursprünglichen Code, das ist, warum ich nicht eingefügt den gesamten Code.

Das '+' - Programm ist zu komplex. Es gibt diese Fehlermeldung aus.

Ich habe in den Forumsthreads gelesen, dass dieser Fehler auftritt, wenn die Funktion zu lang ist. Wie kann ich eine Funktion in mehrere Unterfunktionen aufteilen? Bitte beschreiben Sie meinen Code als Beispiel.


Erstellen Sie die Datei filter.mq4 mit dieser Funktion und speichern Sie sie in \MQL4\Include\.


und rufen ihn dann über den Indikator auf #include <filter.mq4>

Wenn die Antwortvariable im Indikator enthalten ist, brauchen Sie sie nicht zu deklarieren, sondern nur bei Bedarf zu verwenden.

 
evillive:
erstellen.

Erstellen Sie die Datei filter.mq4 mit dieser Funktion und speichern Sie sie in \MQL4\Include\


dann Aufruf über den Indikator #include <filter.mq4>

Wenn die Antwortvariable im Indikator enthalten ist, brauchen Sie sie nicht zu deklarieren, sondern verwenden sie nur, wenn es nötig ist.



Vielen Dank!)
 
Chiripaha:

Aus den Augenwinkeln habe ich die Lösungen gesehen, die Ihnen zuvor von anderen angeboten wurden. Möglicherweise haben Sie beim Laden von Vorlagen Einschränkungen. Dies spiegelt sich in der Beschreibung von ChartApplyTemplate() wider. Dies ist jedoch nur eine Option. Oder etwas Ähnliches. Wenn Sie also über die Visualisierung laden, werden alle Berechtigungen gespeichert, aber wenn Sie programmatisch laden, sind sie eingeschränkt.

Zitat aus der Funktionsbeschreibung:

Wenn Sie die Vorlage speichern, werden auch die Rechte für die Programme, die auf der Grafik laufen, gespeichert: das Recht zu handeln und das Recht, die DLL zu verwenden. Aus Sicherheitsgründen können diese Rechte eingeschränkt werden, wenn die Vorlage auf das Diagramm angewendet wird:

Handels- und DLL-Nutzungsrechte können nicht erhöht werden, wenn ein EA durch Anwendung einer Vorlage mit dem Befehl ChartApplyTemplate() gestartet wird.

Wenn das mql4-Programm, das ChartApplyTemplate() aufruft, keine Handelsrechte hat, hat der EA, der mit der Vorlage geladen wird, auch keine Handelsrechte, unabhängig von den Vorlageneinstellungen.

Wenn das mql4-Programm, das ChartApplyTemplate() aufruft, Handelsrechte hat, die Template-Einstellungen aber nicht, dann hat der EA, der mittels eines Templates geladen wurde, keine Handelsrechte.


Ich habe versucht, sie aus- und einzuschalten. Ich habe die Vorlage geändert, sowohl mit einem einfachen Chart mit Indikatoren als auch mit einem bereits geladenen EA. aber das Ergebnis ist das gleiche: im Tester ohne Visualisierung tut der EA nichts, mit Visualisierung - alles wie geplant)) Ich weiß nicht ... wahrscheinlich sollten die Entwickler wirklich schreiben oder sich etwas anderes einfallen lassen, ohne Vorlagen.

 

Ich habe eine Frage:

Angenommen, wir haben einen Volltextsuchserver, der einen Cache für Abfrageergebnisse hat. Wir müssen die Cache-Effizienz (maximale Cache-Größe und Trefferquote) für eine bestimmte Cache-Zeit berechnen.

Eingabedaten

Das Programm gibt eine Textdatei mit den vom Server empfangenen Abfragen ein, mit der Uhrzeit und dem Suchbegriff sowie der Cache-Speicherzeit in Sekunden.

Daten ausgeben

Nach seiner Ausführung sollte das Programm die folgenden Werte ausgeben: die Anzahl der verarbeiteten Abfragen, die Anzahl der eindeutigen Abfragen, die maximale Cache-Größe (in Anzahl der Datensätze), die Wahrscheinlichkeit, in den Cache zu gelangen.



Ich verstehe nicht, was "maximale Cache-Größe (in Anzahl der Datensätze)" bedeutet, wie ist sie zu berechnen?

 
Guten Tag, meine Herren, ich habe eine sehr wichtige Frage, ist es möglich, den Roboter so zu konfigurieren, dass er zu bestimmten Zeiten nicht handelt, und wenn ja, wie kann das gemacht werden?
 
Um wie viel steigt der Standard-Forex-Volumenindikator, wenn sich der Kurs um einen Tick ändert (um 1 oder 2 ???)
 
Mavellol:
Guten Tag meine Herren, ich habe eine sehr wichtige Frage, ist es möglich, den Roboter so zu konfigurieren, dass er zu bestimmten Zeiten nicht handelt, wenn ja, wie kann man das machen?


Ich muss eine solche Möglichkeit in meinem Expert Advisor implementieren.
 

Hallo zusammen!

Bitte helfen Sie mir mit MarketInfo(Symbol(),MODE_MARGINREQUIRED)

double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
die Variable One_Lot enthält den Wert eines Lots für die aktuelle Währung.
Beispiel einer Lot-Berechnung für EURUSD (Preis=1.3606):
Standard-Kontraktgröße (1 Lot) = 100000
wenn wir 100000 EUR kaufen, müssen wir 100000*1.3606=136060$ bezahlen
wir haben einen Hebel = 100, also zahlen wir One_Lot=136060/100=1360.6$

(Ich habe verstanden, dass alle diese Berechnungen MarketInfo(Symbol(),MODE_MARGINREQUIRED) und unser One_Lot=1360.6 ergeben)

aber das Ergebnis ist im Skript anders:

double Price = Ask;
Print ("Price =",Price);

double One_Lot = MarketInfo ( Symb, MODE_MARGINREQUIRED ) ; // die Kosten für ein Los
Print ("One_Lot =",One_Lot);

in der Ausgabe

17:10:30 inform EURUSD,H1: Kurs =1.3606

17:10:30 inform EURUSD,H1: One_Lot =1600.0

Wo liegt mein Fehler?

 
Wer ist Symb und wie wird es im Kodex definiert? Wenn man One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED) direkt aufruft, funktioniert es gut.
 
evillive:
Wer ist Symb und wie wird es im Kodex definiert? Der Aufruf von One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED) funktioniert problemlos.

Vielen Dank für Ihre Antwort!

In meinem Skript.

Symb = Symbol ( );

Ich habe es wie Sie versucht - das Ergebnis ist das gleiche One_Lot =1600.0

Was ist Ihr Ergebnis?