Die Funktion geht durch und wählt den zeitlich neuesten, d.h. den letzten, aus
Als Nächstes haben wir einen ausgewählten Balken, den wir in der FunktioniBarShift(sym, tf, oot,true) ersetzen;
Die Funktion gibt die Taktnummer nach Zeit zurück. Das ist alles.
Leider kann ich es nicht überprüfen, aber als ich es benutzte, funktionierte es perfekt, ebenso wie alle Funktionen, die hier von I. Kim veröffentlicht wurden.
Und wenn ich ein Ticket zugewiesen habe, wenn ich einen Auftrag eröffne und die Funktion eine fortlaufende Nummer auswählt, ist das in Ordnung?
Вадим Мотеюнас: Schreibt eine Fehlermeldungif( iOpen[0] != time_open )'iOpen' - nicht deklarierte Kennung
Ich habe etwas Falsches geschrieben, ein wenig in die andere Richtung gedacht. Ändern Sie iOpen[0] in Open[0]. Korrigiert. Um es einfach auszudrücken. Wenn ich eine Bar öffne, erinnere ich mich an den Zeitpunkt der Bareröffnung, und es sind noch keine Bestellungen für diese Bar eingegangen.
In der Funktionsbeschreibung heißt es außerdem, dass
Die Auswahl der zu berücksichtigenden Positionen wird durch externe Parameter festgelegt:
sy- Bezeichnung des Marktinstruments. Wenn Sie diesen Parameter setzen, berücksichtigt die Funktion nur Positionen des angegebenen Instruments. Der Standardwert -NULL- bedeutet das aktuelle Marktinstrument.
tf- Zeitrahmen. Der Standardwert0 bedeutet den aktuellen Zeitrahmen.
op- Handelsoperation, Positionsart. Gültige Werte:OP_BUY,OP_SELL oder-1. Der Standardwert-1 bedeutet eine beliebige Position.
mn- Positionsbezeichner, MagicNumber. Der Standardwert-1 bedeutet einen beliebigen Bezeichner.
Diese Werte sollten vor der ersten speziellen Funktion deklariert werden, d.h. die Tatsache, dass sie in der Beschreibung der FunktionNumberOfBarOpenLastPos() selbst enthalten sind, reicht nicht aus?
In der Funktionsbeschreibung heißt es außerdem, dass
Die Auswahl der zu berücksichtigenden Positionen wird durch externe Parameter festgelegt:
sy- Bezeichnung des Marktinstruments. Wenn Sie diesen Parameter setzen, berücksichtigt die Funktion nur Positionen des angegebenen Instruments. Der Standardwert -NULL- bedeutet das aktuelle Marktinstrument.
tf- Zeitrahmen. Der Standardwert0 bedeutet den aktuellen Zeitrahmen.
op- Handelsoperation, Positionsart. Gültige Werte:OP_BUY,OP_SELL oder-1. Der Standardwert-1 bedeutet eine beliebige Position.
mn- Positionsbezeichner, MagicNumber. Der Standardwert-1 bedeutet einen beliebigen Bezeichner.
Müssen die externen Parameter vor der ersten speziellen Funktion deklariert werden, d.h. esreicht nicht, dass sie in der Beschreibung der FunktionNumberOfBarOpenLastPos() selbst stehen?
Das reicht. In den externen Parametern können Sie die Werte eingeben, die Sie benötigen: MagicNumber, welche Positionen Sie suchen, wenn Sie BUY(0) und SELL(1) wollen - dann schreiben Sie "-1".
Ich habe etwas Falsches geschrieben, ein wenig in die andere Richtung gedacht. Ändern Sie iOpen[0] in Open[0]. Korrigiert. Um es einfach auszudrücken. Wenn ich einen Balken öffne, merkt er sich den Zeitpunkt der Balkenöffnung und es werden keine Aufträge für diesen Balken geöffnet.
viele Aufträge werden geöffnet und es sieht so aus, als ob die Bedingung if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) erfüllt ist, bevor ein Nicht-Auftrag geöffnet wird, da NumberOfBarOpenLastPos -1 zurückgibt
viele Aufträge werden geöffnet, und es scheint, dass die Bedingung if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) erfüllt ist, bevor ein Nicht-Auftrag geöffnet wird, da NumberOfBarOpenLastPos -1 zurückgibt
Wenn Sie nach Aufträgen suchen, müssen Sie die Funktion in ihrer vollen Version verwenden, d. h. mit der Möglichkeit, nach Aufträgen und nicht nur nach Positionen zu suchen:
Dies ist ausreichend. In den externen Parametern können Sie die gewünschten Werte eingeben: Majik, welche Positionen gesucht werden, vielleicht nur BUY, wenn BUY(0) und SELL(1) benötigt werden - dann schreiben wir "-1".
wenn ich den Tester starte, gibt es keine offenen Aufträge, vielleicht ist das der Grund, warum -1 zurückgegeben wird, weshalb die Bedingung if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) nicht gilt?
Beim Start des Testers gibt es keine offenen Aufträge, vielleicht wird deshalb -1 zurückgegeben und die Bedingung if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) ist nicht erfüllt?
Wenn Sie nach Aufträgen suchen, müssen Sie die Funktion in ihrer vollständigen Version verwenden, d. h. mit der Möglichkeit, nach Aufträgen und nicht nur nach Positionen zu suchen:
Die Funktion geht durch und wählt den zeitlich neuesten, d.h. den letzten, aus
Als Nächstes haben wir einen ausgewählten Balken, den wir in der FunktioniBarShift(sym, tf, oot ,true) ersetzen;
Die Funktion gibt die Taktnummer nach Zeit zurück. Das ist alles.
Leider kann ich es nicht überprüfen, aber als ich es benutzte, funktionierte es perfekt, ebenso wie alle Funktionen, die hier von I. Kim veröffentlicht wurden.
Schreibt eine Fehlermeldungif( iOpen[0] != time_open )'iOpen' - nicht deklarierte Kennung
Ich habe etwas Falsches geschrieben, ein wenig in die andere Richtung gedacht. Ändern Sie iOpen[0] in Open[0]. Korrigiert. Um es einfach auszudrücken. Wenn ich eine Bar öffne, erinnere ich mich an den Zeitpunkt der Bareröffnung, und es sind noch keine Bestellungen für diese Bar eingegangen.
In der Funktionsbeschreibung heißt es außerdem, dass
Die Auswahl der zu berücksichtigenden Positionen wird durch externe Parameter festgelegt:
In der Funktionsbeschreibung heißt es außerdem, dass
Die Auswahl der zu berücksichtigenden Positionen wird durch externe Parameter festgelegt:
Das reicht. In den externen Parametern können Sie die Werte eingeben, die Sie benötigen: MagicNumber, welche Positionen Sie suchen, wenn Sie BUY(0) und SELL(1) wollen - dann schreiben Sie "-1".
Ich habe etwas Falsches geschrieben, ein wenig in die andere Richtung gedacht. Ändern Sie iOpen[0] in Open[0]. Korrigiert. Um es einfach auszudrücken. Wenn ich einen Balken öffne, merkt er sich den Zeitpunkt der Balkenöffnung und es werden keine Aufträge für diesen Balken geöffnet.
viele Aufträge werden geöffnet und es sieht so aus, als ob die Bedingung if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) erfüllt ist, bevor ein Nicht-Auftrag geöffnet wird, da NumberOfBarOpenLastPos -1 zurückgibt
viele Aufträge werden geöffnet, und es scheint, dass die Bedingung if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) erfüllt ist, bevor ein Nicht-Auftrag geöffnet wird, da NumberOfBarOpenLastPos -1 zurückgibt
Wenn Sie nach Aufträgen suchen, müssen Sie die Funktion in ihrer vollen Version verwenden, d. h. mit der Möglichkeit, nach Aufträgen und nicht nur nach Positionen zu suchen:
Dies ist ausreichend. In den externen Parametern können Sie die gewünschten Werte eingeben: Majik, welche Positionen gesucht werden, vielleicht nur BUY, wenn BUY(0) und SELL(1) benötigt werden - dann schreiben wir "-1".
wenn ich den Tester starte, gibt es keine offenen Aufträge, vielleicht ist das der Grund, warum -1 zurückgegeben wird, weshalb die Bedingung if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) nicht gilt?
Beim Start des Testers gibt es keine offenen Aufträge, vielleicht wird deshalb -1 zurückgegeben und die Bedingung if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) ist nicht erfüllt?
Ich werde es jetzt überprüfen.
Wenn Sie nach Aufträgen suchen, müssen Sie die Funktion in ihrer vollständigen Version verwenden, d. h. mit der Möglichkeit, nach Aufträgen und nicht nur nach Positionen zu suchen:
gibt immer noch -1 zurück
gibt immer noch -1 zurück
Es funktioniert perfekt!
Von zwei Positionen hat es die letzte ausgewählt, die bei Takt 11 liegt, wie Sie auf dem Screenshot sehen können:
Code prüfen: