[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 74

 
Mathemat:

Ein Feld von 8 Punkten ist M[8][2] und nicht M[8][8].

Sind "alle drei" die Vorausgewählten, oder was?


Nun, ja, das Feld ist natürlich M[8][2]. Drei beliebige aus dem Array, die im Berechnungsprozess definiert werden müssen. Wir können es etwas anders formulieren: Wir müssen die Koordinaten des Mittelpunkts eines Kreises und die Koordinaten von drei Punkten finden, die so nahe wie möglich an diesem Kreis liegen.
 
 
atztek:


Und dann OrderOpenPrice() .


so dass es sich von selbst definiert?
 
Myth63:

damit er sie selbst identifizieren kann?
Was meinen Sie mit "es wird es finden"?
Sie sehen die offenen Aufträge durch, und für jeden Auftrag gibt der Befehl OrderOpenPrice() den Wert des Preises an, zu dem der Auftrag eröffnet wurde.
Weisen Sie seinen Wert einer Variablen zu und verwenden Sie ihn.
 
Elenn: Nun, ja, das Feld ist natürlich M[8][2]. Drei beliebige sind ein beliebiges Feld, das bei der Berechnung definiert werden sollte.

Kurz gesagt, das Problem läuft auf Folgendes hinaus: Es gibt drei Punkte. Man muss einen Kreis mit dem Radius r so zeichnen, dass die Summe der Quadrate der Abstände zwischen ihnen und dem Kreis minimal ist.

Das ist wirklich eine große Aufgabe, die man nicht in einem Wimpernschlag erledigen kann. Ein Kreis ist keine gerade Linie. Welche der beiden Entfernungen zu wählen ist, ist keineswegs offensichtlich.

Nun, hier ein konkretes Beispiel:

Zeigen Sie die richtige Anordnung.

 
atztek:
Was meinen Sie mit "er wird es erkennen"?
Sie sehen die offenen Aufträge durch, und für jeden Auftrag gibt der Befehl OrderOpenPrice() den Wert des Preises an, zu dem der Auftrag eröffnet wurde.
Weisen Sie seinen Wert einer Variablen zu und verwenden Sie ihn.


Ich habe es so verstanden. Es wird einfach automatisch eingestellt und zur Überprüfung verwendet. ?

for(cnt=0;cnt<gesamtzahl;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
{
if ( Ask>(OrderOpenPrice()+(AD1*Point) )
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Black);
return(0);

}

Scheint es richtig zu sein?

 
Myth63:


Ich habe es so verstanden. Es wird einfach automatisch eingestellt und zur Überprüfung verwendet. ?

for(cnt=0;cnt<gesamtzahl;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
{
if ( Ask>(OrderOpenPrice()+(AD1*Point) )
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Black);
return(0);

}

Scheint es richtig zu sein?

Nicht ganz. Und wenn kein Auftrag ausgewählt wird? Wo befindet sich die Preisnormalisierung beim Senden eines Handelsauftrags?

Die Aufträge werden in einer Schleife geschlossen , was bedeutet, dass die Suche nicht bei Null, sondern bei OrdersTotal()-1 bis >=0 beginnen sollte.

 
Mathemat:

Kurz gesagt, das Problem lässt sich wie folgt zusammenfassen: Es gibt drei Punkte. Man muss einen Kreis mit dem Radius r so zeichnen, dass die Summe der Quadrate der Abstände zwischen ihnen und dem Kreis minimal ist.

Das ist wirklich eine große Aufgabe, die man nicht in einem Wimpernschlag erledigen kann. Ein Kreis ist keine gerade Linie. Welche der beiden Entfernungen zu wählen ist, ist keineswegs offensichtlich.

Nun, ein konkretes Beispiel:

Zeigen Sie die richtige Anordnung.


Ich glaube schon:
 

Elenn: Думаю, что так:

Nein, eine solche Aufgabe werde ich nicht übernehmen. Bei der Berechnung selbst müssen Sie entscheiden, welche Entfernungen Sie nehmen wollen (es gibt zwei Entfernungen von jedem Punkt zum Kreis). Nichts Schönes.

Vielleicht kann GA helfen, das lokale Minimum zu finden. Aber darin bin ich nicht gut.

P.S. Sie haben die Zielfunktion nicht angegeben - Summe der Quadrate der Abstände oder Summe der Abstände selbst.

 
Mathemat:

Das ist wirklich eine große Aufgabe, die man nicht in einem Wimpernschlag erledigen kann. Ein Kreis ist keine gerade Linie.

Mir ist klar, dass die Aufgabe nicht einfach ist. Ich möchte das Problem nicht auf eine stupide Suche nach allen möglichen Varianten von "Dreier" reduzieren. Soweit ich weiß, werden bei der Variante mit einer geraden Linie auch alle Punkte "beteiligt", aber nicht drei. Wie könnte die Variante für eine Linie aussehen, bei der die Summe der Abstände zwischen den drei "besten" Punkten und dieser Linie minimal ist?