Wie erstellt man ein Magic Number-Array?

 

Ist es möglich, ein Array mit magischen Zahlen zu erstellen?

Beispiel. Ich werde 5 Bestellungen machen und jede Bestellung hat eine eindeutige magische Nummer.

int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green) 
Anstelle von 12345, vielleicht OrderMagic [x][0] für jede neue Bestellung machen? Wie das zu tun?

Wenn ich dann schließe, gehe ich durch jede Bestellung und schließe die spezifische Bestellung mit ihrer eindeutigen magischen Nummer?

for (int i=0; i<OrdersTotal(); i+=1)
{
           if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
           {
                     if (OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == 12345)

Wie kann ich anstelle von 12345 jede einzelne magische Zahl im Array durchgehen?

Vielen Dank im Voraus!

 

Ist es möglich, ein Feld mit magischen Zahlen zu erstellen?

ja

Beispiel. Ich werde 5 Bestellungen machen und jede Bestellung hat eine eigene magische Zahl.

int magicArray = { 1, 3, 5, 7, 9 };

if(OrderMagicNumber() == magicArray[3]) { // das bedeutet in diesem Beispiel 7

 
phy:

Ist es möglich, ein Feld mit magischen Zahlen zu erstellen?

ja

Beispiel. Ich werde 5 Bestellungen machen und jede Bestellung hat eine eigene magische Zahl.

int magicArray = { 1, 3, 5, 7, 9 };

if(OrderMagicNumber() == magicArray[3]) { // das bedeutet in diesem Beispiel 7


Danke!

Wie kann ich jede neue Bestellung mit einem eindeutigen magischen Zahlenfeld bestellen? Funktioniert das so? magicArray[x] anstelle von 12345?

OrderSend befindet sich in einer Funktion und nicht in einer Schleife. Wie würde es wissen, wie man neue magische Zahl mit jeder neuen Bestellung zuweisen. Ist es einfach durch Hinzufügen von x++ nach OrderSend?

Muss ich ein globales Array initialisieren?

Wie kann ich ein dynamisches Array erstellen, da ich nicht weiß, wie viele Bestellungen es letztendlich geben wird?

int  magicArray[x];

...
int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",magicArray[x],0,Green);
x++;
 

Warum wollen Sie überhaupt jedem Auftrag eine andere magische Zahl zuweisen? Magische Nummern sind dafür gedacht, zusammengehörige Geschäfte zu gruppieren, und der Sinn der Sache ist, dass Sie eine magische Nummer für viele Geschäfte (die zusammengehören) haben werden.

Sie sollten sie nicht für Dinge verwenden, für die sie nicht gedacht sind. Andere EAs verwenden sie, um ihre eigenen Trades zu identifizieren. Erst kürzlich hatten wir hier einen Thread, in dem ein EA, dessen Autor versuchte, superschlau zu sein und die Magie für eine Art Zähler zu missbrauchen, anfing, die Trades anderer EAs zu stören und einen Verlust von 5000 Dollar in nur einer Nacht für das unschuldige Opfer verursachte, das diesen EA kaufte, indem es einen open-close-open-close-"Kampf" um denselben Trade begann. Der EA begann stillschweigend, die ihm zugewiesene magische Zahl ohne ersichtlichen Grund und ohne Vorankündigung zu ändern, bis der Konflikt auftrat. Von einer magischen Zahl wird erwartet, dass sie konstant bleibt!

Wenn Sie eine eindeutige Nummer für *jeden* Handel benötigen, verwenden Sie einfach die Ticketnummer.

 
7bit:

Warum wollen Sie überhaupt jedem Auftrag eine andere magische Zahl zuweisen? Magische Nummern sind dafür gedacht, zusammengehörige Geschäfte zu gruppieren, und der Sinn der Sache ist, dass Sie eine magische Nummer für viele Geschäfte haben (die zusammengehören).

Sie sollten sie nicht für Dinge verwenden, für die sie nicht gedacht sind. Andere EAs verwenden sie, um ihre eigenen Trades zu identifizieren. Erst kürzlich hatten wir hier einen Thread, in dem ein EA, dessen Autor versuchte, superschlau zu sein und die Magie für eine Art Zähler zu missbrauchen, anfing, die Trades anderer EAs zu stören und einen Verlust von 5000 Dollar in nur einer Nacht für das unschuldige Opfer verursachte, das diesen EA kaufte, indem es einen open-close-open-close-"Kampf" um denselben Trade begann. Der EA begann stillschweigend, die ihm zugewiesene magische Zahl ohne ersichtlichen Grund und ohne Vorankündigung zu ändern, bis der Konflikt auftrat. Von einer magischen Zahl wird erwartet, dass sie konstant bleibt!

Wenn Sie eine eindeutige Nummer für *jeden* Handel benötigen, verwenden Sie einfach die Ticketnummer.



Danke, genau das brauche ich, um meine zusammengehörenden Aufträge zu gruppieren

int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green)
&   ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green);
Ich eröffne 2 Paare und möchte 2 Paare öffnen und 2 Paare schließen. Eine eindeutige magische Zahl könnte mir helfen, die entsprechenden 2 Paare zu öffnen und zu schließen. Ich möchte nicht das falsche Paar zu schließen.
 
Idee: Sie könnten immer dieselbe magische Zahl wie üblich verwenden, um die Kompatibilität mit allem anderen zu gewährleisten, das magische Zahlen verwendet, sie aber auch mit dem Kommentarstring kombinieren, indem Sie eine Zahl in den Kommentar aufnehmen, die für jedes Handelspaar eindeutig ist. Sie könnten dann das andere Geschäft eines jeden Paares von Geschäften finden, indem Sie einfach nach einem Geschäft mit der gleichen magischen Zahl und dem gleichen Kommentar suchen.
 
7bit:
Idee: Sie könnten immer dieselbe magische Zahl wie üblich verwenden, um es mit allem anderen kompatibel zu machen, das magische Zahlen verwendet, aber es auch mit dem Kommentarstring kombinieren, indem Sie eine Zahl in den Kommentar aufnehmen, die für jedes Paar von Geschäften eindeutig ist. Sie könnten dann den anderen Handel eines jeden Handelspaares finden, indem Sie einfach nach einem Handel mit derselben magischen Zahl und demselben Kommentar suchen.

Danke!

Grundsätzlich benötige ich für jede Bestellung (je 2 Paare) ein eindeutiges Etikett, damit ich sie gleichzeitig schließen kann.

Ich möchte nicht das falsche Paar abschließen.

Wenn nicht magische Zahl, wie könnte ich diese eindeutige Kommentar zu jeder Bestellung hinzufügen?

Würde ich eine Art dynamisches Array benötigen?

 

Es gibt viele Kombinationen, die Sie verwenden können

Wenn Sie sie zum Beispiel in einer anderen Minute öffnen, können Sie verwenden

OrderMagicNumber() == Minute();

Und wenn Sie sie in einer anderen Stunde öffnen, können Sie verwenden

OrderMagicNumber() == Hour();

Oder wenn Sie sie auf einem anderen TM öffnen, können Sie verwenden

OrderMagicNumber() == Period();
 
qjol:

Es gibt viele Kombinationen, die Sie verwenden können

Wenn Sie sie zum Beispiel in einer anderen Minute öffnen, können Sie verwenden

Und wenn Sie sie in einer anderen Stunde öffnen, können Sie verwenden

Oder wenn Sie sie auf einem anderen TM öffnen, können Sie verwenden

Bitte empfehlen Sie solchen Unsinn nicht. Die magische Zahl ist nicht dazu gedacht, Werte zu speichern, die bereits in der Bestellung selbst enthalten sind.
 
qjol:

Es gibt viele Kombinationen, die Sie verwenden können

Wenn Sie sie zum Beispiel in einer anderen Minute öffnen, können Sie verwenden

Und wenn Sie sie in einer anderen Stunde öffnen, können Sie verwenden

Oder wenn Sie sie an einem anderen TM öffnen, können Sie verwenden



Danke! aber wenn ich in der gleichen Minute oder im gleichen Zeitrahmen Bestellungen aufgegeben habe, wird möglicherweise die falsche Bestellung abgeschlossen. Ich brauche eine eindeutige Kennzeichnung, wie eine magische Zahl.

Ich muss wissen, wie ich jedem neuen Auftrag eine neue magische Zahl zuweisen und dann alle Aufträge vergleichen kann, um sie beim Abschluss zu finden.

 
Bitte beschreiben Sie grob, was Ihr EA tun wird. Wie viele verschiedene Arten von Aufträgen, die separat verwaltet werden müssen, gibt es. Vielleicht ist Ihr Problem gar kein Problem, wenn wir wissen, was Sie eigentlich erreichen wollen.