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
Erstellen Sie zwei Arrays. Eine nach Ticketnummer, die zweite nach Preis. Dann sortieren Sie das Feld nach dem Preis und verschieben gleichzeitig die Ticketnummern (ohne die Verbindung zu unterbrechen). Am einen Ende des Feldes steht dann der niedrigste Preis, am anderen der höchste Preis. Jetzt müssen wir einen der extremen Aufträge ändern.
>> Danke.
Ich habe praktisch noch nicht mit Arrays gearbeitet.
Nehmen wir zum Beispiel an, ich habe 10 BUYSTOP-Aufträge. Ich lege ihre Einrichtungspreise fest:
Dann lege ich eine Reihe von Einrichtungspreisen fest, wobei Auftrag 1 der Preis ist, der dem aktuellen Preis am nächsten kommt.
int ArrayCents = { price1,price2,price3,price4,price5,price6,price7,price8,price9,price10 }
Und wie man ein Array nach Ticket erstellt, ist mir nicht klar. Wo erhalte ich die Bestellscheine?
Was ist so etwas wie das
Ich habe den Code nicht überprüft.Offensichtlich funktioniert die Funktion folgendermaßen:
MiniMaxOrderPrice(string lSymbol="", int lMagic=-1, int lOP=-1, int reversi=0)
Parameter:
lSymbol= - Symbolname ("" - beliebiges Symbol, NULL - das aktuelle Symbol)
lOP=-1 - Operation (-1 - beliebige Reihenfolge, in unserem Fall -OP_BUYSTOP )
lMagic=-1 - MagicNumber (-1 - beliebiger Zauberer)
//---------------------------------------------------------------------------------------------
Aber was bedeutet "int reversi=0" - das ist mir nicht ganz klar!
Die Funktion wurde normal kopiert:
0 - niedrigster Preis
1 - der größte ?
//-------------------------------------------------------------------
Und außerdem: Warum genau haben wir den Stoploss als Preis genommen?
Und warum können wir den Eröffnungspreis nicht ändern?
OP_BUYSTOP - weil es sich hierbei um schwebende Aufträge (und nicht um Positionen) handelt und das Endergebnis des Ereignisses lediglich darin besteht, den Eröffnungskurs (Auslösepreis) eines bestimmten Auftrags zu ändern.
Offensichtlich funktioniert die Funktion folgendermaßen:
MiniMaxOrderPrice(string lSymbol="", int lMagic=-1, int lOP=-1, int reversi=0)
Parameter:
lSymbol= - Name des Instruments ("" - beliebiges Symbol, NULL - aktuelles Symbol)
lOP=-1-Vorgang (-1 - beliebige Reihenfolge, in unserem Fall -OP_BUYSTOP )
lMagic=-1 - MagicNumber (-1 - beliebige Magie)
//---------------------------------------------------------------------------------------------
Aber was bedeutet "int reversi=0" - das ist mir nicht ganz klar!
Die Funktion wurde normal kopiert:
0 - der kleinste Preis
1 - der größte ?
//-------------------------------------------------------------------
Und außerdem: Warum genau haben wir den Stoploss als Preis genommen?
Und warum können wir den Eröffnungspreis nicht ändern?
OP_BUYSTOP - dies sind schwebende Aufträge (und keine Positionen), was bedeutet, dass wir am Ende den Eröffnungskurs des gewählten Auftrags ändern müssen.
Nehmen Sie also den Preis, den Sie brauchen. Der offene Preis für die schwebenden Aufträge. Ich habe es nur als Beispiel getan.
Ich denke, es ist einfacher, ein zweidimensionales Array einzurichten und nach der ersten Dimension zu sortieren. Und dort können Sie entsprechend lagern, was Sie brauchen. In Ihrem Fall ist es der Preis.
Ich denke, es ist einfacher, ein zweidimensionales Array einzurichten und nach der ersten Dimension zu sortieren. Und dort können Sie entsprechend lagern, was Sie brauchen. In Ihrem Fall ist es der Preis.
Nehmen Sie also den Preis, den Sie wollen. Bei Anhängern nehmen Sie den Eröffnungspreis. Ich nenne nur ein Beispiel.
Angenommen, ich habe 10 By-Stop-Aufträge eingestellt. Sie sind nicht der Reihe nach angeordnet, sondern zeitlich getrennt.
Ich muss den Auftrag löschen, der derzeit am weitesten vom aktuellen Kurs entfernt ist.
Ist dies der richtige Weg, um diesen Auftrag zu finden? -
//******************************
p.s.
Ich habe eine Funktion in den Kommentar eingefügt.
Comment( MiniMaxOrderPrice(NULL, -1, OP_BUYSTOP, 1 );
Aber es wird immer "-1" zurückgegeben. Obwohl es 5 bis 10 Aufträge auf dem Diagramm gibt.
irgendwo liegt ein Fehler vor...
Ich habe, sagen wir mal, 10 By-Stop-Bestellungen aufgegeben. Sie sind nicht der Reihe nach angeordnet, sondern zeitlich getrennt.
Ich muss den Auftrag löschen, der derzeit am weitesten vom aktuellen Kurs entfernt ist.
Ist dies der richtige Weg, um diesen Auftrag zu finden? -
//******************************
p.s.
Ich habe die Funktion in den Kommentar geschrieben.
Comment( MiniMaxOrderPrice(NULL, -1, OP_BUYSTOP, 1 ));
Aber die Funktion gibt ständig "-1" zurück. Obwohl es 5 bis 10 Aufträge auf dem Diagramm gibt.
Es liegt irgendwo ein Fehler vor...
Comment( MiniMaxOrderPrice("", -1, OP_BUYSTOP, 1 )); // beliebiges Symbol
Comment( MiniMaxOrderPrice(Symbol(), -1, OP_BUYSTOP, 1 )); // aktuelles Symbol
OK! Vielen Dank, Vinin!
Die Funktion scheint zu funktionieren! Ich werde mir das genauer ansehen!