Mittwoch, 17. April 2024, 01:47 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.

Cash Männlich

Meister

Registrierungsdatum: 14. August 2005

Beiträge: 543

Wohnort: Stuttgart

1

Montag, 26. November 2007, 09:01

TWS Ausschaltzeit verschieben

Hallo zusammen,

weiß jemand ob man die Ausschaltzeit der TWS beliebig verschieben, und damit die TWS durchgehen am Laufen halten kann?
Die Frage ziehlt auf die Verwendung dieses RSA-Code-Dingens ab. Man könnte dann die TSW ja durchgehen mit dem gleichen Login-Code am Laufen halten, indem man sich immer innerhalt von 24h einloggt und die Ausschaltzeit verschiebt.

Grüße, Frank

Rubelroller

unregistriert

2

Dienstag, 27. November 2007, 23:32

Hallo Frank,

ja, das funktioniet ohne Probleme. Ich habe z.B. Ausschaltzeit 11:10 PM wenn die TWS Ausstieg meldet, dann stelle ich einfach in der Meldung von PM auf AM um und nach 11:10 wieder in der TWS auf PM. So läuft TWS tagelang.

Vuego

Meister

Registrierungsdatum: 30. August 2002

Beiträge: 999

3

Mittwoch, 28. November 2007, 08:36

Hallo,
die Frage die sich für einige konsequenterweise nun stellt: geht das auch automatisch und wenn ja wie?
Gruß, Vuego

Rubelroller

unregistriert

4

Mittwoch, 28. November 2007, 10:02

Hallo Vuego,

ja, mit AutoIT, kann man die Ausschaltzeit automatisch von PM auf AM und umgekehrt umschalten.
Da aber zwischen 23:00 und 23:15 TWS sowieso keine Daten liefert, könnte man automatisch um 23:10 aussteigen und dann wieder automatisch (mit myTWSStart vom Bernd) um 23:12 einsteigen. Vorteil: TWS läuft stabiler, Nachteil: Tradeliste wird gelöscht.

Vuego

Meister

Registrierungsdatum: 30. August 2002

Beiträge: 999

5

Mittwoch, 28. November 2007, 10:14

Hallo,
ok, danke für den Tipp.
Warum läuft die TWS stabiler, gibt es einen bestimmten Grund?
Vuego

Rubelroller

unregistriert

6

Mittwoch, 28. November 2007, 20:29

Hallo Vuego,

ich habe bei mir beobachtet, dass wenn die TWS mehrere Tage lang ohne Ausstieg läuft, dann erhöcht sich die Wahrscheinlichkeit, dass der Rechner hängen bleibt. Und wenn TWS alle 2-3 Tage neugestartet wird, dann gibt es keine Probleme.
Villeicht liegt es an Java. So weit ich mich richtig errinere ist Java für sicherheitsrelewante Anwendungen (Luft- und Raumfahrt, Kernkraftwerke) nicht zugelassen.

Cash Männlich

Meister

Registrierungsdatum: 14. August 2005

Beiträge: 543

Wohnort: Stuttgart

7

Mittwoch, 28. November 2007, 20:51

Hallo zusammen,

meine Frage zielt hauptsächlich darauf ab, daß man ja mit der Auomatisierung des Logins Probleme bekommt, sobald man dieses RSA-Code-Teil von IB verwenden muß. Da ist es dann einfacher, wenn man einfach die Ausschaltzeit verschiebt, da ist man dann nicht an eine bestimmt Uhrzeit gebunden wo man den Code eingeben muß. Das ist dann beim 24h Forex Handel schon wesentlich besser zu händeln. ;)
Neustart kann man ja dann am Wochenende machen.

Grüße, Frank

Vuego

Meister

Registrierungsdatum: 30. August 2002

Beiträge: 999

8

Donnerstag, 29. November 2007, 08:29

Zitat

Villeicht liegt es an Java
gut möglich, denn beim Neustart wird ja die Java-Umgebung wohl auch neu initialisert.

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

9

Sonntag, 12. Oktober 2008, 14:53

Hallo Vuego,

ja, mit AutoIT, kann man die Ausschaltzeit automatisch von PM auf AM und umgekehrt umschalten.
Da aber zwischen 23:00 und 23:15 TWS sowieso keine Daten liefert, könnte man automatisch um 23:10 aussteigen und dann wieder automatisch (mit myTWSStart vom Bernd) um 23:12 einsteigen. Vorteil: TWS läuft stabiler, Nachteil: Tradeliste wird gelöscht.


Genau das wollte ich umsetzen und mittels Taskmanager automatisieren.
Dazu habe ich mir ein Skript aufgezeichnet, dass die TWS von AM Exitzeit auf PM Exitzeit stellt und eines für den umgekehrten weg.
Die Skripte habe ich daanch beide compiliert.
Wenn ich Sie von Hand starten, funktioniert das auch einwandfrei.
Wenn ich´s via Taskplaner zeigesteuert starte nur dann, wenn ich per RDP auf dem Rechner eingeloggt bin.
Wenn ich nicht eingeloggt bin, wird das Ding gestartet und macht dann einfach nix. :fire:
Hat jemand eine Idee, woran das liegen kann?
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Tim

unregistriert

10

Sonntag, 12. Oktober 2008, 15:10

Zitat

Hat jemand eine Idee, woran das liegen kann?


Hallo Lenzelott,

das hört sich für mich schwer danach an, als wäre an irgendeiner Stelle im Auto-It-Script ein falscher Pfad auf deinen Remote-PC anstelle des korrekten Pfades auf Deinen Rechenzentrum-PC angegeben.
Kann das sein ?

Cu Tim

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

11

Sonntag, 12. Oktober 2008, 16:06

Nee glaube ich nicht!

das Script ist auf dem PC im RZ aufgezeichnet und funktioniert ja auch auf dem selben, wenn ich mit RDP draufschaue während es ausgeführt wird.
Wenn ich nicht mittels RDP connectiert bin bleibt es aber hängen.
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

12

Sonntag, 12. Oktober 2008, 22:03

Hallo Kalli

Wenn Du myTWSStart mal spasseshalber wie hier beschrieben angepasst und getestet hättest, klappte damit der TWS Start auch, wenn Du nicht eingeloggt bist :D

( Das "Geheimnis" guckst Du bei der Doku zu ControlSend 8) )
Gruss
Bernd

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

13

Montag, 13. Oktober 2008, 03:13

Hallo Bernd,

ich glaube das wird mich zur Erleuchtung führen.
Ich war halt so "naiv" und habe gedacht: Makro aufgezeichnet, getestet, gesehen dass es funktioniert.
Dann wird´s auch laufen wenn ich nicht hinschaue....

Danke für den Tip. :thumbup:
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Yoggi

unregistriert

14

Montag, 13. Oktober 2008, 09:43

Hallo Kalli,
bei mir zu Hause funktionieren die selbst gebastelten IT-Scripte (zu myTWSStart bin ich immer noch nicht gekommen) auch nur, wenn ich angemeldet bin. Ich lasse die Autologoffzeit in der Nacht umstellen und hatte den Rechner eine Zeitlang immer gesperrt, wenn ich nicht dransaß, nicht dass eins der Kinder mal die Maus ausprobieren wollte ...
Aber sobald ich (unter Vista) den Rechner gesperrt hatte, liefen wohl die Skripte ab - die Aufgaben wurden auch immer brav als erledigt angezeigt - aber sie bewirkten nichts. Erst seitdem ich den Rechner nicht mehr sperre, funktionieren auch die Skripte.
Alles Gute
Yoggi

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

15

Montag, 13. Oktober 2008, 11:16

Bernd hat ja oben geschrieben woran es liegt, wenn´s bei gesperrtem PC nicht funktioniert.

Leider hatte ich das Script mit Mausbedienung aufgezeichnete. Das muss ich jetzt mal auf Keyboard Bedienung umstellen.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

16

Montag, 13. Oktober 2008, 14:50

Nachdem ich Bernds Tipp verinnerlicht habe, bin ich frohen Mutes zur Tat geschritten.

Habe mich mal in TWS Bedinung mittels Keyboard geübt und das ganze als Makro aufgezeichnet.

Mittels Alt E, G geangt man in der deutschen version der TWS in die Konfiguration.
Als Filtertext "Aussteig eingegeben und dann mittels der TAb taste solange sich vorwärts gehangelt bis man entweder auf dem Am oder PM Feldsteht mit mit Space umgeschaltet.
Dann Mit TAB weiter auf Anwenden, dort Return gedrückt und mit TAB solange weiter bis der Cursor wieder im Feld Filtertext steht, damit es beim nächsten mal auch wieder funktioniert und mit ESC verlassen.

Das Script dass dabei herauskommt sieht dann so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
WinWait("UX - Interactive Brokers Trader Workstation","")
If Not WinActive("UX - Interactive Brokers Trader Workstation","") Then WinActivate("UX - Interactive Brokers Trader Workstation","")
WinWaitActive("UX - Interactive Brokers Trader Workstation","")
Send("{ALTDOWN}e{ALTUP}g")
WinWait("Trader Workstation Configuration","")
If Not WinActive("Trader Workstation Configuration","") Then WinActivate("Trader Workstation Configuration","")
WinWaitActive("Trader Workstation Configuration","")
Send("ausstieg{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{SPACE}{TAB}{TAB}{TAB}{ENTER}{TAB}{TAB}{ESC}")


Dass ich die Send Befehle durch Controlsend ersetzen muss und eine Controlfocus Abfrage mit einbauen muss, ist mir danke Bernd klar geworden.
Was aber doch mehr als fuckelig ist bei der ganzen Sache ist das abzählen der TAB´s etc.
Ich bin mal gespannt ob das stabil am Ende läuft.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

17

Montag, 13. Oktober 2008, 15:24

Für alle, die es interessiert, so schaltet das Ding jetzt auf PM um.
Ich habe zwischen die Tabs ein paar Pausen gebaut damit man es beobachten kann, ob er richtig positioniert.


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WinWait("UX - Interactive Brokers Trader Workstation","")
If Not WinActive("UX - Interactive Brokers Trader Workstation","") Then WinActivate("UX - Interactive Brokers Trader Workstation","")
if WinWaitActive("UX - Interactive Brokers Trader Workstation","")=1 or controlfocus("UX - Interactive Brokers Trader Workstation","","")=1 Then
controlsend("UX - Interactive Brokers Trader Workstation","","","{ALTDOWN}e{ALTUP}g")
WinWait("Trader Workstation Configuration","")
If Not WinActive("Trader Workstation Configuration","") Then WinActivate("Trader Workstation Configuration","")
if WinWaitActive("Trader Workstation Configuration","")=1 or ControlFocus("Trader Workstation Configuration","","")=1 then
ControlSend("Trader Workstation Configuration","","","ausstieg{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{SPACE}")
sleep(2000)
ControlSend("Trader Workstation Configuration","","","{TAB}{TAB}{ENTER}")
sleep(2000)
ControlSend("Trader Workstation Configuration","","","{TAB}{TAB}")
sleep(2000)
ControlSend("Trader Workstation Configuration","","","{ESC}")
EndIf
EndIf


Jetzt muss ich das nur noch Zeigesteuert testen ob´s auch bei gesperrtem Screen funktioniert.

Aber wie Bernd in seinem anderen Thread geschrieben hat: bei jedem TWS Update muss man dann wieder prüfen, ob nicht ein Feldchen dazu gekommen ist. :wacko:
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

18

Montag, 13. Oktober 2008, 18:28

Hallo

wie Bernd in seinem anderen Thread geschrieben hat: bei jedem TWS Update muss man dann wieder prüfen, ob nicht ein Feldchen dazu gekommen ist.

Das Problem ist, dass AutoIt 3 ein Tool ist, welches das Windows GUI Framework bedienen kann (und Windows Objekte statt mit simulierten Tastendrücken auch beim Namen rufen könnte zwecks Fernsteuerung), nicht aber das Java / AWT Framework. "Leider" ist die TWS ein Java-Teil. Man müsste also ein Tool ähnlich AutoIt 3 finden, welches aber in erster Linie Java Umgebungen automatisieren kann und trotzdem unter Windows läuft.

Der Vorteil wäre: statt mit Tabs rumzuspielen, könnte man dann die Java / AWT GUI Handles mit Namen ansprechen - und wäre dann bei TWS Updates vermutlich aus dem Schneider.

Leider habe ich momentan gar keine Zeit, um ein passendes Tool zu finden - aber ich bin sicher, da draussen gibt es etwas gleichwertiges zu AutoIt 3, was Java auf PCs besser unterstützt! Wenn jemand so ein Tool kennt oder sich die Mühe macht, es zu finden: bitte hier den Tipp posten :)
Gruss
Bernd

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

19

Montag, 13. Oktober 2008, 19:36

Hallo Bernd,

so isses.
Ich habe heute festgestellt, dass die TWS bei zuvielen TABs am Stück sich hin und wieder den Luxus erlaubt 1-2 zu verschlucken.
Sehr hässlich, weil dann der ganze Vorgang mislingt.
Also habe ich eine kleine Schleife geschrieben, die jeweils ein TAB sendet und dann 0.5 Sekunden wartet.

Was ein Mist...
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

20

Montag, 13. Oktober 2008, 21:55

Mensch Kalli

Auch das steht in dem anderen Thread. Da muss man nix schreiben und nimmt Sleep(20), um das Timing zu retten. Da kann ich mir ja die ganzen Postings mit den mühelvollen Erklärungen sparen, wenn nicht mal Du das liest :fire:

Grund: im Folgenden Coding werden wir nicht mehr die (bei AutoIT-) eingebaute Funktion Send() verwenden, um das Logon-Popup zu bedienen, sondern die ebenfalls eingebaute Funktion ControlSend(), welche auch bei gesperrtem Bildschirm funktioniert. Die "or" Verknüfung ist nötig, damit auch vorhandenes älteres Coding noch funktioniert.


Das neue GUI ist nicht sehr Timing-stabil, d.h. es bekommt die Folge der Tabs, um von Feld zu Feld zu springen, nicht immer alle mit.

Um diesem Umstand Rechnung zu tragen, habe ich die Sleep(20) Befehle eingefügt, welche oben im Coding zu sehen sind. 20 Millisekunden warten zwischen den Tabs


Nächstens erzähl' ich das alles lieber meiner Wand ;)
Gruss
Bernd

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bernd« (13. Oktober 2008, 22:42)