Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 86
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
Beitrag 844 umgeschrieben, um den Code hier nicht noch einmal schreiben zu müssen
Was das Array mit der Größe Null betrifft, so kann 0 eine ganze Zahl sein, es kann das Äquivalent eines booleschen Falsifikators sein, es kann eine Leere sein und es kann der Ausgangspunkt sein.
Beitrag 844 umgeschrieben, um den Code hier nicht noch einmal schreiben zu müssen
Was das Array mit der Größe Null betrifft - 0 kann eine ganze Zahl sein, es kann das Äquivalent eines booleschen Falsifikators sein, es kann eine Leere sein, und es kann ein Ausgangspunkt sein.
Und bitte zwingen Sie mich nicht, den richtigen Code in den richtigen Beitrag für Sie einzufügen:
//| ProjectName |
//| Copyright 2012, CompanyName |
//| http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
struct myorder
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[];
int i;
int Magic=444;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
CalcOrders();
}
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=0;
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()<2))
{
count1++;
ArrayResize(orders,count1);
orders[count1-1].Ticket=OrderTicket();
orders[count1-1].lot=OrderLots();
orders[count1-1].orderopenprice=OrderOpenPrice();
orders[count1-1].ordertype=OrderType();
orders[count1-1].profit=OrderProfit();
orders[count1-1].stoploss=OrderStopLoss();
}
}
ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
}
//+------------------------------------------------------------------+
Schauen Sie sich nun an, welches Feld Sie ausfüllen und nach welchem Feld Sie es sortieren. Und das Wichtigste: Warum brauchen Sie diese Sortierung? Was ist der Sinn der Sache?
Und bitte zwingen Sie mich nicht, den richtigen Code in die richtige Nachricht für Sie einzufügen:
dasArray der Aufträge in aufsteigender Reihenfolge ab dem Wert Nullsortieren
Wenn wir zum Beispiel 20 Aufträge haben und 18 davon zufällig um ein paar Punkte gestiegen sind und ich sie sofort mit meinen Händen geschlossen habe
dasArray der Aufträge in aufsteigender Reihenfolge ab dem Wert Nullsortieren
Wenn wir zum Beispiel 20 Aufträge haben und 18 davon zufällig um ein paar Punkte gestiegen sind und ich sie sofort mit den Händen geschlossen habe.
Wenn Sie unbedingt eine Sortierung nach Ticket benötigen, müssen Sie 2 Arrays erstellen. Das eine ist ein Array von Strukturen und das zweite ist ein zweidimensionales Array, das in der ersten Dimension das Auftragsticket und in der zweiten den Zählerindex enthält, also den Index, unter dem die Auftragsinformationen im Array von Strukturen gespeichert sind. Und füllen Sie diese Arrays gleichzeitig in einer Schleife.
Sie versuchen schon so lange, diese Frage zu lösen, dass ich mich nicht einmal mehr an das Ziel erinnern kann, das Sie erreichen wollten. Und wahrscheinlich auch alle anderen.
Wenn ich mich richtig erinnere, müssen Sie eine bestimmte Zahl aus der Liste der Aufträge auswählen. Wo liegt also das Problem? Machen Sie einfach ein einfaches eindimensionales Array, sortieren Sie es, und dann orderSelect(array[required], SELECT_BY_TICKET) und das war's...dann machen Sie mit diesem Auftrag, was Sie wollen.
Wenn Sie unbedingt nach Tickets sortieren müssen, müssen Sie zwei Arrays erstellen. Das eine ist ein Strukturarray und das zweite ist ein zweidimensionales Array, das in der ersten Dimension das Auftragsticket und in der zweiten den Zählerindex enthält, also den Index, unter dem die Auftragsinformationen im Strukturarray gespeichert sind. Und füllen Sie diese Arrays gleichzeitig in einer Schleife.
Sie versuchen schon so lange, diese Frage zu lösen, dass ich mich nicht einmal mehr an das Ziel erinnern kann, das Sie erreichen wollten. Und wahrscheinlich auch alle anderen.
Wenn ich mich richtig erinnere, müssen Sie eine bestimmte Zahl aus der Liste der Aufträge auswählen. Wo liegt also das Problem? Machen Sie einfach ein einfaches eindimensionales Array, sortieren Sie es, und dann orderSelect(array[required], SELECT_BY_TICKET) und das war's...Dann können Sie mit diesem Auftrag machen, was Sie wollen.
Ich weiß auch nicht mehr, was ich dort tun soll. Aber das Gute daran ist, dass es das tut.
Ich bitte ihn ausdrücklich darum, zunächst eine Sache zu schreiben, und dann bitte ich ihn, sich genau anzusehen, was er geschrieben hat, damit er selbst versteht, dass es so nicht funktionieren wird - er braucht ein weiteres lokales Array direkt in der Funktion, das wir sortieren und dann das globale Array aus dem sortierten Array ausfüllen müssen.
Wenn Sie unbedingt nach Tickets sortieren müssen, müssen Sie zwei Arrays erstellen. Das eine ist ein Strukturarray und das zweite ist ein zweidimensionales Array, das in der ersten Dimension das Auftragsticket und in der zweiten den Zählerindex enthält, also den Index, unter dem die Auftragsinformationen im Strukturarray gespeichert sind. Und füllen Sie diese Arrays gleichzeitig in einer Schleife.
Sie versuchen schon so lange, diese Frage zu lösen, dass ich mich nicht einmal mehr an das Ziel erinnern kann, das Sie erreichen wollten. Und wahrscheinlich auch alle anderen.
Wenn ich mich richtig erinnere, müssen Sie eine bestimmte Zahl aus der Liste der Aufträge auswählen. Wo liegt also das Problem? Machen Sie einfach ein einfaches eindimensionales Array, sortieren Sie es, und dann orderSelect(array[required], SELECT_BY_TICKET) und das war's...dann machen Sie mit diesem Auftrag, was Sie wollen.
Nein, ich verstehe, dass es viele Möglichkeiten gibt, es anders zu machen und ohne Arrays auszukommen. Warum 2, wenn es eine der Strukturen gibt?
Denn ein einfaches Array wird nach den Werten in der ersten Arraydimension sortiert, und wie ein Array mit Strukturen sortiert wird, weiß ich nicht.
Aber eine interessante Frage... Jetzt werde ich versuchen, ein Array von Strukturen zu sortieren.
Denn ein einfaches Array wird nach den Werten in der ersten Array-Dimension sortiert, aber wie ein Array mit Strukturen sortiert wird, weiß ich nicht.
Das ist allerdings eine interessante Frage... Jetzt werde ich versuchen, ein Array von Strukturen zu sortieren.
Denn ein einfaches Array wird nach den Werten in der ersten Array-Dimension sortiert, aber ich habe keine Ahnung, wie ein Array mit Strukturen sortiert wird.
Obwohl die Frage interessant ist... Ich werde versuchen, eine Reihe von Strukturen zu sortieren.
Ich habe keine Ahnung, was es ist oder worum es geht.
Aber jetzt, wo das Thema aufgeworfen wurde, ist es dumm, es wegzuwerfen. Es gibt auch Arrays von Klassen.
Ich habe keine Ahnung, warum es überhaupt in Form einer Struktur benötigt wird. Das mq-Programm wird in einer einzigen Datei geschrieben, das Array wird in einem einzigen Bildlauf verarbeitet und passt auf einen einzigen Bildschirm. Welchen Sinn hat eine Struktur in diesem Fall, wenn es um sportliches Interesse geht?
Wir schreiben alles um des Sports willen. Zuerst verstehen wir, was funktioniert und wie es funktioniert, und dann überlegen wir, wie wir es besser schreiben können.
Was das Sortieren der Strukturmatrix angeht: Wie erwartet, ist das Experiment fehlgeschlagen. Schon beim Kompilieren sagte der Compiler"Ausdruck hat keine Wirkung".