Leinwand ist cool! - Seite 18

 
fxsaber:

Es scheint ein Missverständnis darüber vorzuliegen, worüber hier gesprochen wurde. Ich sprach von einem Beispiel für ein privates Testerproblem, bei dem ganzzahlige Preise in bestimmten Situationen einen Gewinn bringen können. Der universelle Fall war nicht im Sinn. Deshalb ist mein Tester, zu dem ich oben den Link angegeben habe, auf Dubs implementiert, da er universell ist.

Ich kann nicht immer zu 100 % zustimmen.

Sie haben eine Behauptung aufgestellt:

Ich bin mir fast sicher, dass der Tester viel schneller arbeiten wird, wenn Sie die Ticks ganzzahlig machen.

Es ist absolut falsch, wenn man versucht, es in der Praxis umzusetzen. In der Praxis liegt er zu 100 % daneben.

Es ist also nicht nötig, auf die Theorie oder die Ersetzung von Themen einzugehen. Das Thema ist "der aktuelle Tester kann beschleunigt werden, wenn er in eine Ganzzahl umgewandelt wird". Und das Thema ist zu 100% falsch, ohne Ausnahme.

 
Renat Fatkhullin:

Sie haben eine Behauptung aufgestellt:

Sie ist völlig falsch, wenn man versucht, sie in die Praxis umzusetzen. In der Praxis ist das zu 100 % falsch.

Es ist also nicht nötig, auf die Theorie einzugehen oder das Thema zu wechseln. Das Thema ist "der aktuelle Tester kann beschleunigt werden, wenn er in eine Ganzzahl umgewandelt wird". Und das Thema ist zu 100% falsch, ohne Ausnahme.

Bitte beachten Sie, dass dies die einzige Aussage von mir ist, in der ich das Wort Tester in Anführungszeichen gesetzt habe. Sie haben den von mir angesprochenen Punkt missverstanden.

 
fxsaber:

Dies ist ein Add-on zu Ihrem Tester, das ohne Änderung des Codes eines EA (mit beliebigen Indikatoren) einen vollständigen Durchlauf mit allen Trades und Gewinnen macht. Aber es geht schneller als mit dem normalen Tester. Alle reproduzierbaren Beweise wurden angegeben. Personen aus der Quelle haben diese Behauptungen bestätigt.

Zeigen Sie es ihnen.

Und dann beweisen Sie, dass es um die Umstellung auf einen ganzzahligen Mechanismus geht und nicht darum, dass wir den einen oder anderen Mechanismus durch Versäumnisse ineffizient umgesetzt haben.

Wenn wir über die Auswirkungen der Neuberechnung der Basis offener Positionen sprechen, dann gibt es hier echte Bremsen, die wir in den kommenden Tagen beheben werden.
 
fxsaber:

Bitte beachten Sie, dass dies die einzige Aussage von mir ist, in der das Wort Tester ursprünglich von mir in Anführungszeichen gesetzt wurde. Sie haben das Thema, das angesprochen wurde, falsch verstanden.

Ich habe es richtig verstanden.

Und hat das Thema mit für Sie unangenehmen Details richtig auf den Punkt gebracht. Wenn Sie glauben, wir hätten den Integer-Tester nicht berechnet, irren Sie sich gewaltig.

 
Renat Fatkhullin:

Zeigen Sie es mir.

Zeigen.

Und dann beweisen Sie, dass es um die Umstellung auf einen ganzzahligen Mechanismus geht und nicht darum, dass wir den einen oder anderen Mechanismus durch Versäumnisse ineffizient umgesetzt haben.

Ich habe die Integer-Tester aufgegeben, weil sie nicht vielseitig sind. Sie waren schneller, aber es gab mehr Minuspunkte als Pluspunkte. Als Phänomen können sie jedoch existieren. Virtuelle Arbeit - auf Dubs.

Wenn es um die Auswirkungen der Neuberechnung der Basis der offenen Positionen geht, gibt es hier echte Bremsen, die wir in den nächsten Tagen beheben werden.

Das wäre großartig!

 
fxsaber:

Ich bin mir ziemlich sicher, dass der "Tester" viel schneller sein wird, wenn Sie die Ticks ganzzahlig machen.

Ich habe die Geschwindigkeit von double und int in diesen beiden identischen Skripten verglichen:

Überraschenderweise war die Variante mit vorherrschendem Double auf meiner CPU sogar etwas schneller.

Dateien:
LSD_int.mq5  8 kb
 
Renat Fatkhullin:

Das ist ziemlich cool.

Ich habe 347 fps ohne Antialiasing und 97 mit Antialiasing auf einer Leinwand von 2100x550 Pixeln.

Zur Information: Die Aktualisierungsrate des Fensters ist auf 500 fps begrenzt. Dies zeigt, wie viel Leistung in der Grafik erreicht werden kann.

Ich danke Ihnen.

Tatsächlich sind doppelte Kreise mit Antialiasing um etwa 20 % langsamer als das Original ohne Antialiasing von int-Kreisen. Ich habe 300 gegenüber 250 fps.

Es ist nur so, dass Sie offenbar anti-aliased Kreise mit Schatten gemessen haben, und der Schatten eines Kreises ist viel gefräßiger als der Kreis selbst. Der Schatten kann mit der Funktion Schatten zeichnen? deaktiviert werden. = falsch.

 
Nikolai Semko:

Ich habe die Leistung von double und int in diesen beiden identischen Skripten verglichen:

Überraschenderweise war die von double dominierte Variante auf meiner CPU sogar etwas schneller.

Hüten Sie sich vor Massenumwandlungen wie (int)double oder (double)int und der Vermischung von int+double bei mathematischen Operationen im Allgemeinen.

Das gibt den wildesten Overhead in der CPU - eben so ein teurer Assembler-Befehl. Wenn Sie in Double zählen, bleiben Sie dabei und wechseln Sie nicht zu Integer-Typen.

Befehle wie cvtsi2sd/cvttsd2si sind sehr lang. Ein kleiner Tipp im Artikel"Der langsamste x86-Befehl", Schurke Nummer 2.

Das Intel® 64 and IA-32 Architectures Optimization Reference Manual gibt an, dass die Kosten des cvtsd2si-Befehls 5 Latenzen betragen (siehe Anhang C-16). cvtsi2sd hat je nach Architektur eine Latenz, die von 1 auf Silvermont bis zu 7-16 auf verschiedenen anderen Architekturen reicht.

Agner Fogs Anweisungstabellen haben genauere/sinnvollere Zahlen, wie z.B. 5-Zyklus-Latenz für cvtsi2sd auf Silvermont (mit 1 pro 2 Taktdurchsatz) oder 4c Latenz auf Haswell, mit einem pro Taktdurchsatz (wenn man die Abhängigkeit des Zielregisters von der Verschmelzung mit der alten oberen Hälfte vermeidet, wie es gcc normalerweise mit pxor xmm0,xmm0 tut).

 
Nikolai Semko:

Ich danke Ihnen.

Tatsächlich sind doppelte Kreise mit Antialiasing um etwa 20 % langsamer als das Original ohne Antialiasing von int-Kreisen. Ich habe 300 gegenüber 250 fps.

Es ist nur so, dass Sie offenbar anti-aliased Kreise mit Schatten gemessen haben, und der Schatten eines Kreises ist viel gefräßiger als der Kreis selbst. Der Schatten kann mit der Funktion Schatten zeichnen? deaktiviert werden. = falsch.

Wie sich herausstellte, hatte ich die Frequenz der Netzgenerierung im Auge, nicht die Ausgangsfrequenz.

Es handelt sich um verschiedene Zahlen, die ein Vielfaches von einander sind.