[分享] AutoIT 控制 IB TWS 不關閉的方式
本帖最後由 kilroy 於 14-1-30 23:07 編輯Hi,
上回有大大問為何 complie 成執行檔後,還是不能使用
小弟這邊貼一下使用方式
還有可能的問題是...
1. 真實帳戶與 paper account 的 windows title 不一樣
2. lock and exit 設定裡,不要將時間設定為 12:00
---
將 以下 script 裡,紅字部分改成你的帳號
Opt("TrayAutoPause", 0)
Opt("MouseCoordMode", 0)
Opt("WinTitleMatchMode", 2)
TraySetIcon("Shell32.dll", 180)
; Live mode
Do
WinWaitActive("U8888888 Exit Session Setting")
WinMove("U8888888 Exit Session Setting", "", Default, Default, 320, 170)
; Switch from AM to PM & PM to AM
If @HOUR > 12 Then
MouseClick("left", 157, 63, 1)
Else
MouseClick("left", 208, 63, 1)
EndIf
MouseClick("left", 120, 148, 1)
Sleep(500)
WinClose("U8888888 Exit Session Setting")
Sleep(2000)
Until 1 = 2
; Never exit
如果你是用 IB 的 paper account
Opt("TrayAutoPause", 0)
Opt("MouseCoordMode", 0)
Opt("WinTitleMatchMode", 2)
TraySetIcon("Shell32.dll", 180)
; Live mode
Do
WinWaitActive("DU888888 Exit Session Setting (Simulated Trading)")
WinMove("DU888888 Exit Session Setting (Simulated Trading)", "", Default, Default, 320, 170)
; Switch from AM to PM & PM to AM
If @HOUR > 12 Then
MouseClick("left", 157, 63, 1)
Else
MouseClick("left", 208, 63, 1)
EndIf
MouseClick("left", 120, 148, 1)
Sleep(500)
WinClose("DU888888 Exit Session Setting (Simulated Trading)")
Sleep(2000)
Until 1 = 2
; Never exit
---
將上述 script 丟到 autoIT 去 complie 成執行檔
執行時,會在狀態列出現這個 icon (常駐的方式在背景執行)
接著到 IB TWS 的設定裡改一下,建議跟圖片裡時間一樣 am 或 pm 皆可
(不要設定為 12:00)
---
之前有人問為何不直接用 IBG
那是因為 AB 提供的下單機是對應 IB TWS API
當然,如果你的下單機可以連 IBG
那就用 IBG 吧 ~
*解析度到 1920x1080 也可正常使用
參考看看了
小弟再補充一下
如果你的語言是選擇 "非" 英語的時候
windows title 也會不一樣
要一致才可以正常使用
謝謝 太感謝了 !小弟搞定了 我發現除了把介面改成英文之外 就可以看到他執行了
不過可能是解析度的問題 他都點不到那個小圓框, 我把他調整成(157,64,1 & 208,64, 1 )就解決了 請問這樣執行auto it之後
是TWS斷線之後會自動重連嗎?
還是說跟6.00有蛇模關係呢? glaxo 發表於 14-2-9 18:05 static/image/common/back.gif
請問這樣執行auto it之後
是TWS斷線之後會自動重連嗎?
還是說跟6.00有蛇模關係呢? ...
Hi,
用這個腳本的用意是不要讓 TWS 關閉
若 TWS 不關閉的情況,斷線時,TWS本身會自己重新連線
參考看看了~~
版大請問一下 IB的帳號不是都是U開頭的嗎?
WinWaitActive("DU888888 Exit Session Setting (Simulated Trading)")
我記得主帳號登入需要2組密碼
paper account不用
那若需要手動key 密碼 autoit還能用嗎
不是很了解 本帖最後由 kilroy 於 14-2-9 19:00 編輯
glaxo 發表於 14-2-9 18:45 static/image/common/back.gif
版大請問一下 IB的帳號不是都是U開頭的嗎?
WinWaitActive("DU888888 Exit Session Setting (Simulated Trad ...
Hi,
autoIT 是要抓 windows title 來做動作
這個腳本不是自動執行 TWS
只是讓 TWS 不要自行關閉 (見TWS 設定裡 lock and exit 的 auto logoff timer)
所以首次開啟 TWS 我們還是要手動輸入帳密登入它
只要 TWS 不關閉,若斷線它會自動重連線
除非程式或是作業系統當掉、斷電
---
TWS 有一個 auto logoff 的功能,但是沒有辦法關閉這個功能
所以我們用 autoIT 去控制它,不要讓它自己關閉了
而 windows title 會跟你的帳號有關係
U開頭是真實帳戶的帳號,DU開頭是 paper account 的帳號
最主要是 windows title 要對,這樣這個腳本才可以正確抓到視窗
並執行我們要做的動作
參考看看了~~
glaxo 發表於 14-2-9 18:45 static/image/common/back.gif
版大請問一下 IB的帳號不是都是U開頭的嗎?
WinWaitActive("DU888888 Exit Session Setting (Simulated Trad ...
第二層手動的部分 因為需要肉眼辨識查詢再輸入
當然不可能自動
大大可以把驗證的安全機制關掉 就不會問了 但卻也會失去帳戶的安全性了
真是豁然開朗~謝謝兩位大大了~
要熟悉這些些工具真是不容易
謝謝兩位帶我摸索~
馬上試試看去 autoit 裝了
時間也改為6.00
接下來就看會不會登出了 到現在為止TWS還沒被關掉~繼續! 哈哈 換我有問題了 autoit 成功按掉一次之後第二次又按不到了 再來研究看看... pm==> am 可以按到 . am ===>pm 不行 ,按的位置比button約低兩個button距離.
IBGateway 其實有兩個選項, 一個是IB API, 另一個是FIX.要選擇IB API, 登入IBGateway之後還需要改Port Number.把Port從 4001 改成 7496 就可以了.我的程式也是寫一次兩邊都可以跑, 不需要特別為IBGateway做更改.
我倒是面臨了另一個問題.開兩到三禮拜後, 有時IB會卡價.讀進來的價格一直不變.你們會發生嗎? howard2c 發表於 14-2-14 10:28
IBGateway 其實有兩個選項, 一個是IB API, 另一個是FIX.要選擇IB API, 登入IBGateway之後還需要改Port Nu ...
感謝大大分享IBG
小弟用TWS有遇過該商品有部位
可是報價連顯示都沒有顯示的情況
重開又好了
頁:
[1]
2