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
Und jetzt sagen Sie mir: Habe ich die Aufgabe erfüllt?
Sie (sowohl Peter als auch die Gegner) gehen die Sache von der falschen Seite an! Die Aufgabe kann in beide Richtungen erledigt werden!
Ein Assembler wird kommen und sagen, dass er es noch effektiver machen kann, und das mit einem noch geringeren Verbrauch von Computerressourcen!
Aber was ist der Sinn davon?
Meiner Meinung nach sollten wir nur dann über Effizienz nachdenken, wenn es uns an Geschwindigkeit oder Speicherplatz mangelt. Wenn man genug davon hat, ist es wichtiger, dass das System einfach zu warten und zu ändern ist. Auch wenn dies zu Lasten der Geschwindigkeit des Programms und des verwendeten Speichers geht.
Russische Namen stören mich nicht, das Einzige, was mich stört, ist, dass ich an Präfixe gewöhnt bin, so dass man den Typ der Variablen sofort an ihrem Aussehen erkennen kann. Und Russisch oder Englisch Bezeichner - der Unterschied ist nicht groß (1C - es gibt eine Menge von Russisch).
Aber am meisten überrascht mich der freiwillige Verzicht auf einen Debugger. Das ist nur Masochismus... Ich kann verstehen, wenn es keinen Debugger gibt (früher gab es kein Debugging für historische Daten) - man muss sich drehen, Debug-Meldungen ausgeben, Protokolle erstellen... Aber wenn Sie einen Debugger haben, ist es viel bequemer und effizienter, mit ihm zu arbeiten!
Sie (sowohl Peter als auch die Gegner) gehen die Sache von der falschen Seite an! Die Aufgabe kann in beide Richtungen erledigt werden!
Ein Assembler wird kommen und sagen, dass er es noch effektiver machen kann, und das mit einem noch geringeren Verbrauch von Computerressourcen!
Aber was ist der Sinn davon?
Meiner Meinung nach sollten wir nur dann über Effizienz nachdenken, wenn es uns an Geschwindigkeit oder Speicherplatz mangelt. Wenn man genug davon hat, ist es wichtiger, dass das System einfach zu warten und zu ändern ist. Auch wenn dies zu Lasten der Geschwindigkeit des Programms und des verwendeten Speichers geht.
Russische Namen stören mich nicht, das Einzige, was mich stört, ist, dass ich an Präfixe gewöhnt bin, so dass man den Typ der Variablen sofort an ihrem Aussehen erkennen kann. Und Russisch oder Englisch Bezeichner - der Unterschied ist nicht groß (1C - es gibt eine Menge von Russisch).
Aber am meisten überrascht mich der freiwillige Verzicht auf einen Debugger. Das ist nur Masochismus... Ich kann verstehen, wenn es keinen Debugger gibt (früher gab es kein Debugging für historische Daten) - man muss sich drehen, Debug-Meldungen ausgeben, Protokolle erstellen... Aber wenn Sie einen Debugger haben, ist es viel bequemer und effizienter, mit ihm zu arbeiten!
Peter, du hast die Aufgabe ersetzt. Ihre Lösung wird manchmal benötigt, aber sehr selten, und nicht nur in dieser Form, sondern ähnlich.
Häufiger ist eine andere Aufgabe - das Erscheinen neuer Balken sollte an verschiedenen Stellen des Programms verfolgt werden. Daher ist die Übergabe eines Symbols und eines Zeitrahmens in Funktionen und die Suche nach ihnen in Arrays keine gute Lösung. Da die Funktion isNewBar eine statische Variable hat, müssen wir für jedes Zeitrahmensymbol eine Kopie der Funktion erstellen. Es ist möglich, eine Variable für den letzten Zeitrahmen per Referenz an die Funktion zu übergeben.
Aber es gibt eine ideale Variante mit OOP - es erstellt ein eigenes Objekt für jedes Symbol - Zeitrahmen.
Dies ist, wenn wir nicht berücksichtigen, dass die Funktion isNewBar überhaupt nicht benötigt wird, nur um Stereotyp von nichts zu tun.
Peter, du hast die Aufgabe ersetzt. Ihre Lösung wird manchmal benötigt, aber sehr selten, und nicht nur in dieser Form, sondern ähnlich.
Häufiger sollte eine andere Aufgabe - das Erscheinen neuer Balken - an verschiedenen Stellen des Programms verfolgt werden. Daher ist die Übergabe eines Symbols und eines Zeitrahmens an Funktionen und die Suche nach ihnen in Arrays keine gute Lösung. Da die Funktion isNewBar eine statische Variable hat, müssen wir für jedes Zeitrahmensymbol eine Kopie der Funktion erstellen. Es ist möglich, eine Variable für den letzten Zeitrahmen per Referenz an die Funktion zu übergeben.
Aber es gibt eine ideale Variante mit OOP - es erstellt ein eigenes Objekt für jedes Symbol - Zeitrahmen.
Das heißt, wenn wir nicht bedenken, dass die isNewBar-Funktion überhaupt nicht benötigt wird, ist es rein zu Müll, von nichts zu tun.
Ich habe nichts geändert. Ich habe diese Aufgabe auf eine andere Weise gelöst. Ihrer Logik folgend, muss ich zwangsläufig zur Notwendigkeit von OOP kommen. Aber egal, wie Sie es betrachten, Sie können meine Lösung sicher verwenden. Jede Funktion kann zu jeder Zeit und an jeder Stelle des Programms auf das globale Array zugreifen, um ein neues Bar-Ereignis für ein beliebiges Symbol und einen beliebigen Zeitrahmen zu finden.
Es spielt keine Rolle, wie viele Symbole und wie viele Zeitrahmen es gibt - in meiner Lösung erhöht ihre Anzahl nicht die Belastung des Systems. Schauen Sie sich einfach das Feld an - ob es ein neues Bar-Ereignis gibt oder nicht.
Sie können die Liste der Symbole reduzieren, wenn Sie sie nicht aus dem Marktbericht übernehmen, sondern manuell in das Array Symbols[] eingeben. Ich bitte Sie.
Hinzugefügt:
Übrigens: Die Funktion New_bar() gibt es nicht mehr. Das hat sich wirklich als unnötig herausgestellt. Sie hatten Recht.
Meine Aufgabe war es, neue Bar-Ereignisse für eine Reihe von Symbolen in einer Reihe von Zeitrahmen ohne OOP abzurufen, und zwar in einem kurzen und effizienten Code.
Und jetzt sagen Sie mir: Habe ich die Aufgabe erfüllt?
Auf jeden Fall JA. Aber!!! Zufällig wurde mein Vorschlag ein wenig verdreht, so dass Sie ihn so verstanden haben, wie Sie ihn verstanden haben. Im Devisenhandel sind Sie nur an den Daten interessiert, die Sie hier und jetzt benötigen. Ich brauche die Informationen über ein Symbol und den aktuellen Zeitraum, das ist alles - die anderen interessieren mich nicht. Wir brauchen die Informationen für ein anderes Symbol und einen bestimmten Zeitraum, dann sollte derselbe Code sie erhalten. Und es besteht keine Notwendigkeit, das System mit dem Empfang von Informationen zu überlasten, die jetzt nicht benötigt werden.
Es ist nicht deine Schuld, es ist einfach passiert. Ich habe versucht, dich aufzuhalten, aber ich konnte es nicht.
Peter, du hast die Aufgabe ersetzt.
Er hat nicht umgeschaltet. Es war die Art und Weise, wie der Satz umschrieben wurde, dass er ihn so verstanden hat.
Auf jeden Fall JA. Aber!!! Zufälligerweise wurde mein Vorschlag ein wenig verdreht, so dass Sie ihn so verstanden haben, wie Sie ihn verstanden haben. Im Devisenhandel sind Sie nur an den Daten interessiert, die Sie hier und jetzt benötigen. Ich brauche die Informationen über ein Symbol und den aktuellen Zeitraum, das ist alles - die anderen interessieren mich nicht. Wir brauchen die Informationen für ein anderes Symbol und einen bestimmten Zeitraum, dann sollte derselbe Code sie erhalten. Und es besteht keine Notwendigkeit, das System mit dem Empfang von Informationen zu überlasten, was jetzt nicht notwendig ist.
Es ist nicht deine Schuld, es ist einfach so passiert. Ich habe versucht, dich aufzuhalten, aber ich konnte es nicht.
Kein Problem - schreiben Sie einfach die Beschreibungen der benötigten Symbole in das Array Symbols[].
Datensatz aus OnInit() entfernen:
Und Array im globalen Bereich initialisieren:
Und entfernen Sie unnötige Zeitrahmen aus dem Array Timeframes[];
Ändern Sie die Variable.
Und ändern Sie die Variable All_Symbols:
int All_symbols = 3;
Auf diese Weise erhalten Sie nur Ereignisse für die richtigen Symbole und die richtigen Zeiträume.
Hinzugefügt:
Entfernen Sie auch die Einstellung der Array-Größe aus OnInit(), da Sie die Anzahl der Symbole kennen:
Ich habe nichts ersetzt. Ich habe dieses Problem einfach anders gelöst. Ihrer Logik folgend, musste ich zwangsläufig auf die Notwendigkeit von OOP kommen. Aber egal, wie Sie es betrachten, Sie können meine Lösung sicher verwenden. Jede Funktion kann zu jeder Zeit und von jedem Ort im Programm auf das globale Array zugreifen, um ein neues Bar-Ereignis für ein beliebiges Symbol und einen beliebigen Zeitrahmen zu finden.
Es spielt keine Rolle, wie viele Symbole und wie viele Zeitrahmen es gibt - in meiner Lösung erhöht ihre Anzahl nicht die Belastung des Systems. Schauen Sie sich einfach das Feld an - ob es ein neues Bar-Ereignis gibt oder nicht.
Sie können die Liste der Symbole reduzieren, wenn Sie sie nicht aus dem Marktbericht übernehmen, sondern manuell in das Array Symbols[] eingeben. Ich bitte Sie.
Hinzugefügt:
Übrigens: Die Funktion New_bar() ist verschwunden. Das hat sich wirklich als unnötig erwiesen. Sie hatten Recht.
Wenn ja, wie fett hervorgehoben - in den Mülleimer.
Wenn sie fett hervorgehoben sind, kommen sie in den Papierkorb.
Kein Problem, schreiben Sie einfach die Namen der gewünschten Symbole in das Array Symbols[] und schon sind Sie fertig.
Eintrag aus OnInit() entfernen:
Und Array im globalen Bereich initialisieren:
Und entfernen Sie unnötige Timeframes aus dem Timeframes[]-Array;
Ändern Sie die Variable
Und ändern Sie die Variable All_Symbols:
Auf diese Weise erhalten Sie nur Ereignisse für die benötigten Symbole und die benötigten Zeitspannen.
Peter, hören Sie auf. Ich brauche keine andere Funktion, um einen neuen Balken zu definieren, außer meiner eigenen. Nun, es ist einfach so, dass all Ihre harte Arbeit unnötig geworden ist, tut mir leid.