Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 661

 
Roman Sharanov:

Ich muss Arrays von Anführungszeichen in einem Array speichern

Um einmal in einer Schleife zu kopieren und dann Berechnungen durchzuführen, verwenden Sie ArrayCopy, nicht CloseCopy

Natürlich steht es jedem frei, zu tun, was er/sie will. Aber warum sollten wir ein Array Element für Element in ein anderes zweidimensionales Array kopieren und dann mit diesem zweidimensionalen Array arbeiten? Können wir nicht die gleichen Berechnungen durchführen, anstatt zu kopieren?

Oder übersehe ich etwas? Kann ein eindimensionales Feld in die zweite Dimension eines zweidimensionalen Feldes kopiert werden?
 
Alexey Viktorov:

Natürlich steht es jedem frei, das zu tun, was er möchte. Aber warum ein Element nach dem anderen in ein anderes zweidimensionales Feld kopieren und dann mit diesem zweidimensionalen Feld arbeiten? Können wir nicht dieselben Berechnungen durchführen, anstatt zu kopieren?

Oder übersehe ich etwas? Ist es möglich, ein eindimensionales Feld in die zweite Dimension eines zweidimensionalen Feldes zu kopieren?

Ich habe zwei verschachtelte Schleifen, die externe hat CopyClose, und die interne

Und alle kopieren die gleichen Zeichen aus dem Array.

Ich möchte vor den Schleifen ein Array mit Anführungszeichen für jedes Paar in ein separates Array eingeben.

Wie auch immer, hier ist, was ich tat, wickelte ich ein Doppel-Array von Währung in eine Struktur, und machte ein Array von Strukturen

for(int i = 0; i<ACTIVES; i++){
      CopyClose(all_pairs[i], PERIOD_CURRENT, 1, calculation_period, pairs_data[i].currency);
      pairs_data[i].pair = all_pairs[i];
   }
for(int i = 0; i < ACTIVES-1; i++){
	 ArrayCopy(first_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
	//работа с firstData
	...
      
	 for(int k = i+1; k < ACTIVES; k++){
		 ArrayCopy(second_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
         	//Работа с secondData
         	...
      }
   }
 

Meine Freunde, ich kann nicht schlafen, ohne dieses Problem für einige Zeit gelöst zu haben:

Ich verwende einen Indikator, der sich nach dem Erhalt eines Ticks periodisch! aktualisiert. Aber manchmal wird diese Aktualisierung gerade jetzt benötigt, aber der Tick ist mit einer Verzögerung, und an Wochenenden schläft der Markt.
Ich muss mit der rechten Maustaste auf das Diagramm klicken - "Aktualisieren". Leider habe ich keinen Hotkey für diese Aktion gefunden.

Das Effektivste, was ich sehe, ist ein separater, hochspezialisierter Indikator/Ratgeber mit einer Schaltfläche auf dem Chart, deren Betätigung die einmalige "Refresh"-Aktion imitiert. Ich habe versucht, die Lösung zu googeln, aber ohne Erfolg...

Da das Thema "Alle Fragen von Neulingen, Hilfe und Diskussion" heißt, wage ich es, diese Frage zu stellen.
Ich hoffe, dass jemand, der sich in dieser Angelegenheit auskennt, helfen oder zumindest die Nase rümpfen kann - "genau DAS wurde hier schon diskutiert".


 
Roman Sharanov:

die knappe Durchschnittsdifferenz ist nicht gleich der knappen Durchschnittsdifferenz, ach und weh

Nun, das ist offensichtlich!

Wenn man sich jedoch in den Bereich der nahen Durchschnitte begibt, befindet man sich automatisch in einem anderen mathematischen Bereich.

Das heißt, Sie führen eine integrale Transformation der gleitenden Durchschnitte durch, und lassen bewusst (!!!! In Ihrem Fall, wie ich es verstehe, nicht ganz) den Raum der Anführungszeichen (durch Close, in Ihrem Fall).

Das heißt, Sie geben bewusst Kurse (Close) auf und gehen in den (integralen) Raum des gleitenden Durchschnitts.

Niemand zwingt Sie, dies zu tun. Sie tun es selbst, aus freiem Willen und ganz bewusst. (!?)

Aber!!! In diesem neuen (integralen) Raum müssen wir mit den Unterschieden in Durchschnittswerten und nicht in Anführungszeichen arbeiten.

Der Unterschied in Anführungszeichen macht im (integralen) Raum der Durchschnittswerte keinen Sinn!!!

Und die durchschnittliche Differenz in Anführungszeichen im integralen Mittelraum macht auch keinen Sinn!!!

Ich hoffe, diese einfachen mathematischen Wahrheiten sind Ihnen klar. (!?)

------------------------------------------------------------------------------------------------

Man bewegt sich sozusagen in den Raum der Durchschnittswerte. Und gleichzeitig berücksichtigen Sie weiterhin die durchschnittliche Differenz bei einem Abschluss.

Was ist das für ein mathematisches Wunder?

-------------------------------------------------------------------------------------------------------

Man kann nicht mit einem Fuß im Boot und mit dem anderen an der Küste stehen und trotzdem auf dem Meer segeln.

 
Alexey Viktorov:

Natürlich steht es jedem frei, zu tun, was er will. Aber warum sollte ich ein Element nach dem anderen in ein anderes zweidimensionales Feld kopieren und dann mit diesem zweidimensionalen Feld arbeiten? Können wir diese Berechnungen nicht selbst durchführen, anstatt sie zu kopieren?

Oder übersehe ich etwas? Kann ein eindimensionales Feld in die zweite Dimension eines zweidimensionalen Feldes kopiert werden?

Wahrscheinlich verstehst du etwas nicht.

Definitionsgemäß dürfen Sie keine Berechnungen mit Rohdaten-Arrays durchführen.

Um Berechnungen durchführen zu können, müssen wir das ursprüngliche Datenfeld in ein neues Feld kopieren und dann Berechnungen mit diesem neuen Feld durchführen.

Auf diese Weise können wir im Falle von Fehlern oder Störungen jederzeit zum ursprünglichen Array zurückkehren und neu beginnen.

----------------------------------------------------------------------------------------------------------------------------------

Wenn wir das ursprüngliche Array für Berechnungen verwenden, wird jeder Fehler fatal sein.

--------------------------------------------------------------------------------------------------------------------------------------------

Und das Kopieren eines eindimensionalen Arrays in ein zweidimensionales Array kann sehr nützlich sein.

Wir schreiben zum Beispiel "Farbe der Anführungszeichen" in das erste Feld und die Anführungszeichen selbst in das zweite.

Anhand der "Farbe" des Arrays können Sie dann die Bewegungen der Kurse selbst beurteilen, ohne auf die Werte zu achten.

------------------------------------------------------------------------------------------------------------------------------------------------

Übrigens ist es nützlich, eine ähnliche "Farbabstufung" auf der Karte selbst zu haben (und nicht nur einen einfarbigen Hintergrund!).

Oder Sie können einfach einen "Farbbalken" an der Seite erstellen. Es ist sehr nützlich, um es für den Handel zu haben.

 
Сергей Николаев:


Ich verwende einen Indikator, der nach Erhalt eines Ticks periodisch aktualisiert wird. Aber manchmal wird diese Aktualisierung gerade jetzt benötigt, und der Tick wird mit einer Verzögerung empfangen, und am Wochenende schläft der Markt.
Ich muss mit der rechten Maustaste auf das Diagramm "Aktualisieren" klicken. Leider habe ich keinen Hotkey für diese Aktion gefunden.

dieses Ereignis in einem Timer verfolgen und Ihren Indikator aktualisieren

 
neverness:

Wahrscheinlich verstehst du etwas nicht.

Berechnungen in Rohdatensätzen sind per definitionem untersagt.

Wirklich... Sie können den Unsinn, den Sie schreiben, nicht verstehen...

Welche ursprünglichen Arrays? Und wer hat es verboten???

Bei allem anderen ist es nicht nur schwer, den Sinn zu verstehen, es ist sogar unmöglich zu verstehen, worauf sich alles, was Sie geschrieben haben, bezieht...

 
Alexey Viktorov:

In der Tat... Es ist unmöglich, so einen Unsinn zu verstehen, wie Sie schreiben...

Welches sind die ursprünglichen Arrays? Und wer hat es verboten???

Bei allem anderen ist es nicht nur schwierig, den Sinn zu verstehen, sondern auch zu begreifen, worauf sich das Geschriebene bezieht...

Üben Sie, den "Unsinn" zu verstehen, nicht sich selbst.

Noch einmal: Bei der Programmierung werden die Rohdaten nicht korrigiert und ändern sich unter keinen Bedingungen.

Deshalb werden diese Daten nur "im Lesemodus - NUR LESEN" übertragen.

Um mit Rohdaten zu arbeiten, müssen diese in ein neues Datenfeld kopiert werden.

Aus diesem Grund verfügt C++Builder über eine Prozedur zum Kopieren von Daten in den Memo-Block, die selbst die Größe des zu kopierenden Arrays bestimmt.

Übrigens ist dies auch in MT4/MT5 vorhanden. Gut gemacht, MT4/MT5-Entwickler - sie haben sich der Sache angenommen.

 
neverness:

Wieder ein Haufen Unsinn, der nicht nur nichts mit dem Thema zu tun hat, sondern auch keinen Sinn ergibt.

 
Alexey Viktorov:

Wieder ein Haufen Unsinn, der nichts mit dem Thema zu tun hat und keinen Sinn ergibt.

Regen Sie sich nicht auf. Das ist normal. Wenn Sie das nicht verstehen, ist das in Ordnung. Das ist keine große Sache.

Grund der Beschwerde: