Dienstag, 23. April 2024, 20:00 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

hendrix1

unregistriert

1

Mittwoch, 4. September 2013, 11:03

Stop wird angezeigt, schafft es aber nicht ins Signalprotokoll

Hallo zusammen,
ich habe in meinem HS einen unregelmäßig wiederkehrenden Fehler, den ich nicht abstellen kann.
Vielleicht kann mir jemand einen Tipp geben:

Das HS hat (hier beispielhaft) einen Trade in der Chart korrekt beendet durch einen Investox-Intraday-Trailing-Stop.
Das Stop-Symbol ist deutlich sichtbar.


Allerdings schafft es das "STOP" nicht ins Signalprotokoll.


Der Trade wurde im Kontoserver und beim Broker nur durch die "Sicherheits"-Einstellung beendet, beide haben gem. Log kein STOP sondern OUT empfangen.


Ich kann leider keine Fehlerquelle finden.
Zur Zeit vermute ich, das mein System die InvestoxInstanz auf der 1min Chart überlastet und es teilweise nicht schafft, innerhalb einer Minute ein StopSignal auszuwerfen.
Ich bediene mich folgendem Mittel, um die Frequenz der Berechnung des Systems zu messen :

... die beiden Schlüsselwörter im Textfeld einer Chart.

Allerdings kann ich nicht mit Sicherheit sagen, ob das ein probates Mittel ist um zu erfahren, wie oft Investox es schafft das "Kern"-System durchzurechnen.
Das Textfeld ändert Investox ca. alle 15 Sekunden mit der aktuellen Zeit, daher vermute ich, dass die Instanz durchaus dazu in der Lage ist.
(Systemaktualisierung ist eingestellt auf alle 9 Sekunden)

Oder wird die Chart anders als das System berechnet und aktualisiert ?
Kann Investox ein Stop nachträglich im HS "reinschummeln" wenn das System komplett berechnet wurde ?

Danke und Gruss
Hendrik

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Mittwoch, 4. September 2013, 11:25

...kann ich nicht mit Sicherheit sagen, ob das ein probates Mittel ist um zu erfahren, wie oft Investox es schafft das "Kern"-System durchzurechnen. ... (Systemaktualisierung ist eingestellt auf alle 9 Sekunden)

Wenn die Ampel länger als 9 Sekunden auf Dauer-Gelb bleibt, ohne dazwischen wenigstens kurz grün zu werden - schafft es Deine CPU definitiv nicht, diese Investox-Instanz in der zur Verfügung gestellten Zeit wenigstens einmal komplett durchzurechnen. Probier' mal (ohne Garantie) die Zeit auf mehr als 9 Sekunden zu stellen, solange, bis Du dazischen deutliche Grün-Phasen erkennst.
Oder wird die Chart anders als das System berechnet und aktualisiert ?

Wenn im Chart "Aktualisierung 'immer'" eingestellt ist, wird der Chart unabhängig vom Handelssystem aktualisiert. Einfluss hat wohl auch, was Du in den Investox Einstellungen drin hast bei "Hohe Priorität für Aktualisierungen".

Ich habe auch schon gelegentlich die Erfahrung gemacht, dass bei Aktualisierungsraten > 0 Sekunden UND/ODER wenn Dauer-Gelb zu sehen ist, Intraday Stop Signale "verschluckt" werden und erst das Out Signal einem aus dem Markt nimmt. Ich vermute, dass Investox den Time-Stamp des Stop-Signals mit der aktuellen Uhrzeit abgleicht und bei zu grossen Abweichungen das Signal nicht mehr schickt, sondern dann nur noch das in jedem Fall erfolgende Out-Signal AM ENDE DER PERIODE rettet. Je nach Basis-Komprimierung und Markt-Dynamik kann das natürlich eine sehr zweifelhafte "Rettung" sein.

Vielleicht kann Herr Knöpfel die programm-internen Details erklären !?!
Gruss
Bernd

hendrix1

unregistriert

3

Donnerstag, 5. September 2013, 10:03

Hallo Bernd,
danke für deine Antwort.

Ich habe die Zeit auf >>alle 45 Sek<< hochgestellt, dann taucht hin und wieder mal die Farbe grün auf.
Außerdem bringt das Entfernen des Hakens >>immer<< in der Chart die Wahrheit über die CPU Belastung ans Licht - die Schlüsselwörter werden jetzt teilweise in Frequenzen größer einer Minute aktualisiert und damit ist die Vermutung über das verschlucken/+/nicht generieren des STOP-signals wahrscheinlich - danke für den Tip.
Mein Beweggrund für 9Sek. war, die Frequenz der Berechnung unter die wahrscheinlich tatsächlich benötigte Zeit abzusenken, um der CPU keine größere Pause zu gönnen : sobald fertig, beginne mit der nächsten Berechnung.


Zu dem Thema würde ich dir gerne folgende Frage stellen :

Falls ein Projekt mehr als ein System beinhaltet, wird das "Licht" erst grün wenn alle Systeme durchgerechnet wurden, oder wird es auch kurz zwischen den Einzelsystemen grün ? (Bei gleicher eingestellter Berechnungsfrequenz der Einzelsysteme)


Zur Abhilfe (schaffen von CPU Kapazität) habe ich folgende Überlegung, vielleicht darf ich dich dazu befragen:

Mein o.g. System habe ich im Entwurfsstadium so ausgelegt, dass es "nur" das ausführende und "tradende" System ist und Stop+Money- Management macht.
Es empfängt die HandelsEinstiegSignale über verschiedene Daten-Arrays, welche andere Instanzen in den globalen Datenspeicher schreiben und die eigentlich kaufmännische Entscheidung (für den jeweiligen Markt) treffen und nach belieben ein- und ausgehängt werden können. Diese Systeme laufen und beschreiben den Globalen-Datenspeicher in der Komprimierung 1Minute.
Daher habe ich geplant, dass auch o.g. "Trader"system auf einer 1min Komprimierung laufen muß -> Ergebnis og. CPU-Zeit-Problem.

Wenn ich jetzt das "Trader"system auf bspw 5min Komprimierung hochsetze, wäre dann Investox noch in der Lage innerhalb der 5min Periode einen Trade zu öffnen ?
(ich synchronisiere jeden übergebenen Datensatz mit dem vorgesehenden VBS-SyncKomp Befehl)
Bsp: Das Sub-System-EUR/AUD sendet in der Minute -3- eine EnterShort Signal.
Dieses Signal-sendene-System trifft intern auf 1min-Komp mit Enter@Open,Delay=0,Ref-1 bereits alle Massnahmen um nicht in die Zukunft zu blicken, und setzt nur den GlobalenSpeicher in seiner Komp zeitlich korrekt (ref-1) auf "EnterShort".
Der empfangen "Trader" wartet in der größeren Komprimierung nur auf das umspringen des GlobalenSpeicherplatz und handelt sofort weil er keine Ref(-1) Betrachtung mehr machen muß, auch wenn wir dann nicht mehr am Anfang seiner 5min-Periode sind sondern irgendwo zwischen drin.
(InvestoxSyncKomp fast alle 5x1min Arrayplätze im globalen Speicher zu 1x5min Speicherplatz zusammen? backtesten/optimieren in dieser Instanz geht dann nicht mehr!-egal)

Beinhaltet o.g. Beispiel einen Denkfehler oder würde ich mir einen systematischen Fehler ins System einbauen wenn ich das umsetze ?


Danke und beste Grüsse
Hendrik

hendrix1

unregistriert

4

Donnerstag, 5. September 2013, 10:35

...ich glaube ich habe den Denkfehler gerade selber gefunden: Die Instanz in der größeren Komprimierung (5min) würde den rückwirkend den falschen TradeEntryPrice annehmen, da Sie zu OPEN der 5-min Periode den Trade+Stops abrechnet.
Damit wären alle (Anwender+Standard) Stops falsch.
;(
Hendrik

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

5

Donnerstag, 5. September 2013, 13:06

Hallo Hendrix

Ich denke, hier ist der ursprüngliche Denkfehler durch eine Annahme, die aus der Luft gegriffen wurde:
Mein Beweggrund für 9Sek. war, die Frequenz der Berechnung unter die wahrscheinlich tatsächlich benötigte Zeit abzusenken, um der CPU keine größere Pause zu gönnen : sobald fertig, beginne mit der nächsten Berechnung.

Dies ist nicht nur ein altes Problem der Informatik, sondern es ist global und fast schon philosopisch: wie will man genau ermitteln, wieviel fehlt, wenn eine Resource gnadenlos überbucht ist !?! Wenn es um das Essen für die Weltbevökerung geht, kann man hochrechnen, wieviele Kalorien eine Person am Tag benötigt zum komfortablen Leben. Aber wie wöllte man dies z.B. ausrechnen, wenn noch nie jemand auf diesem Planeten satt geworden wäre und man nicht weiss, was gesund ist?!?

So ist es auch bei CPU Resourcen: wenn man nie eine Belastung unter 100% gesehen hat, nie eine satte grüne Ampel, wird man nicht wissen, wieviel nach oben wirklich fehlt!

Daher meine Empfehlung, runterzuschrauben, und nun weisst Du, dass Deine CPU massivst unterbesetzt ist. 45 Sekunden für einen Zyklus, um einmal alle Deine Codings (wie immer sich die verteilen, was Du geschildert hast, ist zu komplex für mich, um Dir die Fragen auch nur annähernd auf theoretischem Weg beantworten zu können) durchzurechnen in einem Daytrading System, welches Realtime handeln soll!

Hendrix, Du musst Dein System, Dein Coding usw. massivst abspecken, denke ich, sonst wird es immer Delays, verschluckte Signale, Slippage und andere Probleme geben.

Du kannst auch den Projekt-Ratgeber von Investox verwenden, die Anzahl Perioden im Leistungs-Schema herabsetzen, Berechnungstitel in einer anderen Instanz vorrechnen und mir fallen noch ein paar Möglichkeiten ein. Aber wenn Deine Ampel Dauer-Gelb zeigt und Du nicht alle 1 bis 2 Sekunden deutlich grün siehst - ist die betreffende Investox-Instanz auf Deiner Hardware völlig überlastet.

Was Du machst ist wie Mangel-Verwaltung in der alten DDR. Mal kriegt dieser ne Banane, mal jene. Aber glücklich wird niemand.
Gruss
Bernd

hendrix1

unregistriert

6

Freitag, 6. September 2013, 09:30

Du musst Dein System, Dein Coding usw. massivst abspecken, denke ich, sonst wird es immer Delays, verschluckte Signale, Slippage und andere Probleme geben.


... ja - da hast du wohl leider Recht. Ich werd' am Wochenende mal sehen was sich streichen, verschlanken und optimieren lässt (6xAW Stops).


Auch wenn es nicht in Richtung Verschlanken sondern in "Bereitstellen von mehr Ressourcen" geht : Mit dem kleinen Programm CPU-Cool konnte ich beobachten, dass "jemand" (Energiesparmechanismus?) die i7-CPU Frequenz in großen Zeiträumen auf 1200 MHz absenkt. Nur wenn nebenbei noch Optimierung oder andere Lasten kommen geht die Frequenz auf die 2800 Mhz, in Peaks auf 3600 MHz hoch. Weißt du ob es im Windows7-64bitPro einen Schalter gibt, um die dynamische-CPU-Frequenz abzuschalten und dauerhaft auf volle Leistung zu stellen - ich selber konnte ihn nicht finden. (ins Bios konnte ich nicht da der Rechner noch RTT Daten aufzeichnet)

Danke und Grüsse
Hendrik

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

7

Freitag, 6. September 2013, 12:02

Hallo Hendrix

Ich würde bei Deinem Problem nicht zuerst an "Fein-Tuning" im CPU-Bereich durch irgendwelche Schalter denken. Normalerweise macht W7 das Stepping der CPU sehr sauber. Auch wenn ich "eigentlich" Unix und zOS Fan bin - die Intel-CPUs hat Microsoft ziemlich gut im Griff.

Im normalen Resourcen Monitor von W7 sieht man ganz genau, was passiert:

In diesem Bild sieht man, dass diese CPU gerade wenig zu tun hat (einige CPU's sind sogar "geparkt"). Und man sieht an der blauen Linie bei CPU-Gesamt, dass in dem Moment, wenn etwas mehr Load hereinkommt, die Taktung sofort angepasst wird. Lt. Datenblatt passiert dies im Nano-Sekunden Bereich, es braucht nämlich nur max. 2 bis 3 CPU Zyklen, bis die CPU sich anpasst. Sowohl beim hoch- wie auch beim runtertakten.

Ich kenne das genannte Tool CPU-Cool nicht, aber wenn es einen Durchschnitt anzeigt, sieht das bei geringem Load natürlich so aus, als ob Deine CPU grossflächig nix genug für Dich tut.

Steigt der Gesamt-Load über einen Threshold, lässt der CPU Microcode den "Vor-Takt" gleich auf 100%. Dies ist aber nicht so toll, wie Du meinst: dadurch kommt der CPU-Die thermisch "unter Druck", und sollte nun ein einzelner Thread plötzlich noch mehr CPU Power brauchen, kann die intern nicht mehr durch kurzes Übertakten zur Verfügung gestellt werden!

Der letzte Absatz soll heissen, wenn man nicht über das Know-How verfügt, Motherboard, Chipsatz, CPU, RAM und die eigenen Anwendungen besser als von den Herstellern vor-konfektioniert einzustellen - sollte man alles so lassen, wie es ist. Alternativ muss man sich gründlich in die Materie der Micro-Zyklen usw. einarbeiten. Sonst ist dann theoretisch eine bestimmte Anwendung schneller, aber der Gesamt-Mix nicht.

In Deinem Fall, mit dem beschriebenen Coding, wirst Du davon abgesehen auch noch eine wesentlich schnellere CPU an die Leistungsgrenze bringen! Hier musst Du m.E. zuerst ansetzen. Wenn eine 3.6 GHz CPU es nicht schafft, wie schnell soll es denn sonst werden? 10 GHz? Schön wär's ja. Aber vielleicht gib's die 10 GHz CPU's erst nächstes Jahr ... und mit der 10 GHz CPu würde dann Dein Round-Turn Rechenzyklus von 45 Sekunden auf etwas über 16 Sekunden sinken. Du verstehst, was ich meine?
Gruss
Bernd

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bernd« (6. September 2013, 12:18)


hendrix1

unregistriert

8

Mittwoch, 11. September 2013, 09:16

Hallo Bernd,

ich habe die letzten Tage durch Verschlanken des Systems und kleinere Zugeständnisse bei der Universalität+Transparenz die gewünschten Ergebnisse erzielt.

-System und Subsysteme jetzt auf 2min Komprimierung umgestellt
-Zusammenlegen und optimieren der AW-Stops : zwei statt sechs
-Zusammenlegen und optimieren vieler VBS Passagen

Jetzt kommt die Instanz bei 10 Sek Aktualisierung vor jedem neuen RechenAnlauf auf zwei/drei Sekunden "Grünes Licht".


Zu deiner Ausführung über die Zusammenhänge mit CPU-Takt+Last stimme ich dir voll zu, und daraus ergibt sich auch meine scheinbar unglücklich formulierte Frage:
Es kann ja nicht sein, dass ich sieben Threads auf der i7-CPU mit sinnlosen Rechenaufgaben beschäftigen muss, damit das System die Rechenleistung auf maximale Leistung hoch setzt. (Bei mir werden auch zwei Kerne geparkt)
Wenn die CPU bei Teillast mit 1200Mhz meine InvestoxInstanz1 ins Stottern bringt, das alte (überladenen) Coding aber bei 3600Mhz (weil sieben andere Kerne optimieren) annehmbar "rund" läuft, wäre die einfachste Möglichkeit den CPU Takt auf die 3,6Ghz zu zwingen ( +-dreifache Ressourcen an der Max Design Frequenz ohne "betreten" der Boost-Freqenz von 3.9xy GHZ)
Ja - die thermische Belastung steigt und die Lüfter dröhnen = akzeptier ich, macht er bei einer Opti ja auch, kann die CPU dauerhaft ab.
Ja - der Weg wäre UNelegant und mit dem Brecheisen

Daher war meine Frage: ob Win7 irgendwo eine versteckte Einstellung hat, die über die EnergiesparRichtlinien "Höchstleistung" hinaus die CPU dauerhaft unter Einkauf der Nachteile: Energieverbrauch+Kühlerlärm auf die maximale Design-Frequenz zwingt.

Danke noch mal und beste Grüße
Hendrik

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

9

Mittwoch, 11. September 2013, 18:14

Hallo Hendrix
Wenn die CPU bei Teillast mit 1200Mhz meine InvestoxInstanz1 ins Stottern bringt, das alte (überladenen) Coding aber bei 3600Mhz (weil sieben andere Kerne optimieren) annehmbar "rund" läuft, wäre die einfachste Möglichkeit den CPU Takt auf die 3,6Ghz zu zwingen

Ich hatte Deine Postings bisher so verstanden, dass das alte überladene Coding eben nicht rund läuft? Hast Du denn jetzt mit dem verschlankten Coding noch die selben Probleme mit verschluckten Signalen (wobei auch 10 Sekunden Rund Turn natürlich unbefriedigend sind)?

Ich kann hier jedenfalls nicht bestätigen, dass meine schnellste CPU, ein i7-990x mit 6 Cores und freiem Multiplikator, schneller arbeitet, wenn alle Cores auf 100% laufen. Wie auch immer, wenn Du an der CPU Taktung arbeiten möchtest, kenne ich keinen einfachen Weg. Zwar habe ich viele Tests auf vielen Maschienen, CPU und RAM Kombinationen gemacht, die Temperatur z.T. extrem gesenkt, die Raumtemperatur dazu überwacht usw. - eine simple Lachgas Einspritzung per Windows 7 direkt in den Verbrennungstrakt von Investox kenne ich aber leider nicht.

Ob ich jetzt meine, dass ich zu diesem Thema etwas zu sagen hätte: ja. Ob ich es möchte: nein, denn es ist ein umfangreiches brotloses Thema, welches eigentlich nichts mit Trading zu tun hat und Maschinen-Tuning interessiert mich heute daher gar nicht mehr wie noch vor 20 Jahren.

Für mich selbst teste ich notfalls dann Hardware-Tuning - bis ich mir eine schnellere Maschine leisten kann und/oder mein Coding optimiert habe oder die Last auf mehrere Cores oder mehrere Maschinen durch mehrere Investox Instanzen vertelt habe - und das Thema dann vom Tisch ist. Es nützt aber nichts, wenn ich Dir hier anfange, die Zusammenhänge zwischen Vortakt, Thermik, Boost-Frequenz, Micro-Zyklen und Schaltzeiten in Abhängigkeit von der Raumtemperatur zu erkären (die Du nämlich dann auch im Griff behalten musst, ggf. per Klimaanlage, damit Dein Rechner dann im Sommer nicht die Grätsche macht)

Wenn Du in diese Richtung gehen möchtest, so gibt es einschlägige Foren, ich meine overclockers.com wäre eine erste Anlaufstelle. Dort helfen zu solch einem Thema nicht nur einer wie wahrscheinlich hier, sondern das ganze Forum!
Gruss
Bernd

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

10

Mittwoch, 11. September 2013, 18:35

my 50cent

Zitat

Es kann ja nicht sein, dass ich sieben Threads auf der i7-CPU mit sinnlosen Rechenaufgaben beschäftigen muss, damit das System die Rechenleistung auf maximale Leistung hoch setzt. (Bei mir werden auch zwei Kerne geparkt)

Das ist genau anders rum, 1 Kern rechnet -> hoher Takt. alle Kerne rechne -> niedriger Takt je Kern.
Einfach Funktionsweise von Turbo Boost nachlesen.

Intel Turbo Boost (das automatische übertakten der CPU) kannst Du hiernachlesen wie es funktioniert.

Das ist im Mikrocode HART hinterlegt, da gibt´s nix zum dranrumdoktoren imho.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

11

Mittwoch, 11. September 2013, 19:20

Hehe, Lenzelott, Du schaffst es, mit wenigen Worten die Dinge auf den Punkt zu bringen:
Das ist genau anders rum, 1 Kern rechnet -> hoher Takt. alle Kerne rechne -> niedriger Takt je Kern.

Das war es, was ich erklären wollte, aber wegen zuviel Text wohl nicht bemerkt wurde:
dadurch kommt der CPU-Die thermisch "unter Druck"

Am Ende dreht sich die ganze Geschichte doch nur um eine einzige Sache: TDP. Neudeutsch: Thermal Design Power, Altdeutsch: Verlustwärme. Da ist dann nix mehr mit Turbo-Boost, es hat sich ausgeboostet bei alle Kerne unter (egal: erzwungener oder freiwilliger) Last.
Gruss
Bernd