COCO研究院

 找回密碼
 註冊
搜索
查看: 8018|回復: 28

[其他程式語言] [分享] AutoIT 控制 IB TWS 不關閉的方式

[複製鏈接]
發表於 14-1-30 23:05 | 顯示全部樓層 |閱讀模式
本帖最後由 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 成執行檔
2014-01-30_225611.png

2014-01-30_172407.png

執行時,會在狀態列出現這個 icon (常駐的方式在背景執行)
2014-01-30_172510.png
接著到 IB TWS 的設定裡改一下,建議跟圖片裡時間一樣 am 或 pm 皆可
(不要設定為 12:00)

2014-01-30_172007.png

---

之前有人問為何不直接用 IBG

那是因為 AB 提供的下單機是對應 IB TWS API

當然,如果你的下單機可以連 IBG

那就用 IBG 吧 ~

*解析度到 1920x1080 也可正常使用

參考看看了


評分

參與人數 5金錢 +8 收起 理由
jodo + 2 很棒的文章,感恩
lansrotim + 2 感謝分享
zaqimon + 1
Acer2266 + 1 按一個讚
solo + 2 按一個讚

查看全部評分

 樓主| 發表於 14-2-2 19:36 | 顯示全部樓層
小弟再補充一下

如果你的語言是選擇 "非" 英語的時候

windows title 也會不一樣

要一致才可以正常使用

謝謝

評分

參與人數 1金錢 +2 收起 理由
lansrotim + 2 感謝分享

查看全部評分

發表於 14-2-9 11:51 | 顯示全部樓層
太感謝了 !  小弟搞定了 我發現除了把介面改成英文之外 就可以看到他執行了
不過可能是解析度的問題  他都點不到那個小圓框,   我把他調整成(157,64,1 & 208,64, 1 )就解決了  
發表於 14-2-9 18:05 | 顯示全部樓層
請問這樣執行auto it之後
是TWS斷線之後會自動重連嗎?
還是說跟6.00有蛇模關係呢?
 樓主| 發表於 14-2-9 18:38 | 顯示全部樓層
glaxo 發表於 14-2-9 18:05
請問這樣執行auto it之後
是TWS斷線之後會自動重連嗎?
還是說跟6.00有蛇模關係呢? ...

Hi,
用這個腳本的用意是不要讓 TWS 關閉

若 TWS 不關閉的情況,斷線時,TWS本身會自己重新連線

參考看看了~~
發表於 14-2-9 18:45 | 顯示全部樓層
版大請問一下 IB的帳號不是都是U開頭的嗎?
WinWaitActive("DU888888 Exit Session Setting (Simulated Trading)")

我記得主帳號登入需要2組密碼
paper account不用
那若需要手動key 密碼 autoit還能用嗎
不是很了解
 樓主| 發表於 14-2-9 18:58 | 顯示全部樓層
本帖最後由 kilroy 於 14-2-9 19:00 編輯
glaxo 發表於 14-2-9 18:45
版大請問一下 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 要對,這樣這個腳本才可以正確抓到視窗
並執行我們要做的動作




參考看看了~~




發表於 14-2-9 19:00 | 顯示全部樓層
glaxo 發表於 14-2-9 18:45
版大請問一下 IB的帳號不是都是U開頭的嗎?
WinWaitActive("DU888888 Exit Session Setting (Simulated Trad ...

第二層手動的部分 因為需要肉眼辨識查詢再輸入
當然不可能自動
大大可以把驗證的安全機制關掉 就不會問了 但卻也會失去帳戶的安全性了
發表於 14-2-9 19:05 | 顯示全部樓層
真是豁然開朗~謝謝兩位大大了~
要熟悉這些些工具真是不容易
謝謝兩位帶我摸索~
馬上試試看去
發表於 14-2-9 23:46 | 顯示全部樓層
autoit 裝了
時間也改為6.00
接下來就看會不會登出了

評分

參與人數 1金錢 +1 收起 理由
lansrotim + 1 你改成五分鐘後馬上就曉得啦

查看全部評分

發表於 14-2-10 07:19 | 顯示全部樓層
到現在為止TWS還沒被關掉~繼續!
發表於 14-2-10 14:34 | 顯示全部樓層
哈哈 換我有問題了   autoit 成功按掉一次之後  第二次又按不到了   再來研究看看...
發表於 14-2-12 10:17 | 顯示全部樓層
pm==> am 可以按到 . am ===>pm 不行 ,按的位置比button約低兩個button距離.
發表於 14-2-14 10:28 | 顯示全部樓層
IBGateway 其實有兩個選項, 一個是IB API, 另一個是FIX.  要選擇IB API, 登入IBGateway之後還需要改Port Number.  把Port從 4001 改成 7496 就可以了.  我的程式也是寫一次兩邊都可以跑, 不需要特別為IBGateway做更改.

我倒是面臨了另一個問題.  開兩到三禮拜後, 有時IB會卡價.  讀進來的價格一直不變.  你們會發生嗎?
 樓主| 發表於 14-2-14 13:16 來自手機 | 顯示全部樓層
howard2c 發表於 14-2-14 10:28
IBGateway 其實有兩個選項, 一個是IB API, 另一個是FIX.  要選擇IB API, 登入IBGateway之後還需要改Port Nu ...

感謝大大分享IBG

小弟用TWS有遇過該商品有部位

可是報價連顯示都沒有顯示的情況

重開又好了
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-22 18:32

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |