Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 930
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
DiPach , nochmals vielen Dank für Ihre Hilfe. Ich habe Ihre Beispiele analysiert. Ich habe einige Änderungen an meinem Startup-Code vorgenommen. Das Ergebnis ist folgendes:
Was wurde geändert:
1. Ich habe die Zeile mit der Array-Deklaration int awd1[]; in die Funktion OnStart() verschoben
2. Die Funktion ArrayResize(awd1,6,7) wurde hinzugefügt;
3. Das Skript funktioniert.
Ich werde versuchen, einige Schlussfolgerungen zu ziehen. In Skripten ist es korrekt, Arrays innerhalb der Funktion OnStart() zu deklarieren. Nachdem das Array deklariert wurde, muss seine Größe unbedingt mit der Funktion ArrayResize() definiert werden; andernfalls wird der Compiler fluchen. Sind meine Schlussfolgerungen richtig? Wenn nicht, geben Sie bitte die richtige Interpretation an.
DiPach , nochmals vielen Dank für Ihre Hilfe. Ich habe Ihre Beispiele analysiert. Ich habe einige Änderungen an meinem Startup-Code vorgenommen. Das Ergebnis ist folgendes:
Was wurde geändert:
1. die Zeile mit der Array-Deklaration int awd1[]; innerhalb der Funktion OnStart() verschoben
2. Die Funktion ArrayResize(awd1,6,7) wurde hinzugefügt;
3. Das Skript funktioniert.
Ich werde versuchen, Schlussfolgerungen zu ziehen. In Skripten ist es korrekt, Arrays innerhalb der Funktion OnStart() zu deklarieren. Nachdem das Array deklariert wurde, muss seine Größe unbedingt mit der Funktion ArrayResize() festgelegt werden; andernfalls wird der Compiler einen Fehler erzeugen. Sind meine Schlussfolgerungen richtig? Wenn nicht, geben Sie bitte die richtige Interpretation an.
Im Großen und Ganzen, ja. Und es wird funktionieren, zumindest leise, aber sehr gut. :)
Ich werde nur die folgenden Punkte nennen:
1. Wenn Sie normale Variablen und Arrays deklarieren, sollten Sie überlegen, was das Skript (oder der EA/Indikator) tun soll und wofür diese Variablen/Arrays gedacht sind.
Ihr angehängter Skript-Workflow ermöglicht die Deklaration von Variablen nicht auf globaler Programmebene, sondern lokal. Das heißt, das Array wird einmal deklariert. Und es gibt keine Notwendigkeit für wiederholte (geschleifte) Deklarationen im Start()-Körper, z.B. vor dem Start der for()-Schleife und z.B. wenn wir eine weitere Variablendeklaration nach for() {} benötigen:
Dementsprechend wird das Array nicht auf der Ebene der globalen Variablen des Programms deklariert, sondern im Körper von OnStart() vor der Anweisung der for()-Schleife - das ist in diesem Schema der Programmausführung durchaus akzeptabel.
Meiner Meinung nach sollten wir, wenn es nicht notwendig ist, etwas auf der Ebene der globalen Variablen in einem Programm zu deklarieren, diese Gelegenheit nutzen und alles, was wir können, lokal deklarieren.
2. Was den Code anbelangt, so möchte ich mich klar ausdrücken:
Das heißt:
Das ist die Art und Weise, für die 5 angemessen wäre:
P./S.: Eine weitere Klarstellung, nur für den Fall, mit ArrayResize() - für dynamische Arrays. In der Dokumentation zu dieser Funktion gibt es Informationen, wenn diese Funktion die Größe dynamischer Arrays nicht ändern kann.
Warum kann ich keine Freunde hinzufügen?
Hallo! Wie kann ich erreichen, dass der neue Preis zuerst angezeigt wird und der vorherige Preis nach unten fällt usw.? Ich habe ein Beispiel angeführt, um es zu verdeutlichen.
Hallo! Wie kann ich erreichen, dass der neue Preis zuerst angezeigt wird und der vorherige Preis nach unten fällt usw.? Das wäre ein klar gemachtes Beispiel.
Ich habe ein Beispiel gemacht, und mit den Bedingungen können Sie es mehr oder weniger selbst herausfinden:
Ich habe ein Beispiel gemacht, und Sie können sich die Begriffe mehr oder weniger selbst erarbeiten:
Hallo! Wie kann ich erreichen, dass der neue Preis zuerst angezeigt wird und der vorherige Preis nach unten fällt usw.? Um dies zu verdeutlichen, habe ich ein Beispiel angeführt.
Hier ist ein völlig primitiver Code.
Hier ist ein ganz primitiver Code gemacht.
Hallo zusammen. Der Versuch, mit einem rudimentären Skript einen Handelsauftrag im Strategietester zu eröffnen, schlug fehl.
int start()
{
//----
int res;
double ask=Close[0]+MarketInfo(_Symbol,MODE_SPREAD)*Point;
res=OrderSend(Symbol(),OP_BUY,0.1,ask,3,0,0,",0,0,Blue);
if(res>-1)Alert("Open BUY order with ticket ",res);
//----
zurück(0);
}
Ich habe das Skript auf dem Tester-Chart im Visualisierungsmodus platziert, aber der Handelsauftrag öffnet sich im MT4-Terminal.
Ich kann auch keine Informationen über offene Aufträge im Strategietester mit SimpleFXTester_v2.ex4 erhalten.
Bitte helfen Sie mir, dies zu verstehen.
Hallo zusammen. Der Versuch, mit einem rudimentären Skript einen Handelsauftrag im Strategietester zu eröffnen, schlug fehl.
int start()
{
//----
int res;
double ask=Close[0]+MarketInfo(_Symbol,MODE_SPREAD)*Point;
res=OrderSend(Symbol(),OP_BUY,0.1,ask,3,0,0,",0,0,Blue);
if(res>-1)Alert("Open BUY order with ticket ",res);
//----
zurück(0);
}
Ich habe das Skript auf dem Tester-Chart im Visualisierungsmodus platziert, aber der Handelsauftrag öffnet sich im MT4-Terminal.
Ich kann auch keine Informationen über offene Aufträge im Strategietester mit SimpleFXTester_v2.ex4 erhalten.
Bitte helfen Sie mir, dies zu verstehen.