AUTOIT、EXCEL DDE開啟問題
本帖最後由 棒的 於 14-10-26 00:23 編輯哈囉,各位先進大家好呀!!本人是最近一個月
瘋狂的自學程式交易
發現這裡有好多很利害的人
所以就請各位先進多指教囉!!
想開發一套無人守值現股交易系統
架構大概就是
EXCEL DDE-->出訊號-->AUTOIT下單
但一開始就遇到個不知如何解決的情況
就是電腦自動開機後用AUTOIT腳本如下:
----程式碼start----
......
RUN("C:\BTS\daqBTS.exe")
WinWait("系統公告")
WinClose("系統公告")
WinActivate("臺銀證E點贏")
WinWait("臺銀證E點贏");等輸入帳密Windows出來
sleep(30000)
ControlSetText("","","","XXXX");密碼
sleep(1000)
ControlClick("","","", "left", "1")
WinWait("臺銀證E點贏 [版本 2.69][已登入] [報價 : 已連線] [主動回報 : 已連線] - [臺銀證E點贏精選]")
Sleep(2000)
$oExcel = _Excel_Open()
......
----程式碼end----
以上是我測到最穩定的版本,但還是會有失敗的時候
有時停在輸入完密碼就不動、有時excel開出來了但DDE(現價的欄位)未到,......等失敗的情況
也就是說如果券商看盤軟體+EXCEL DDE沒正常開起來,就算出現我想交易的股票出現訊號
交易程式就不會執行,這部份有辦法解決嗎?
If not ProcessExists("daqKGIAP.exe") Then
run("D:\KGIAP\daqKGIAP.exe")
WinWait("凱基全球理財王")
Sleep(10000)
WinActivate("凱基全球理財王","")
ControlSend("凱基全球理財王", "", "Edit5", "密碼")
Sleep(1000)
ControlClick("凱基全球理財王", "", "Button15")
EndIf
這是我使用凱基全球理財王程式碼試著改改看{:4_663:}
偶而會遇到明明登入視窗就在那邊但是AutoIt就是找不到
最簡單的方式用ProcessClose之後再重來一次
可否請問您使用的 AutoIT 是那個版本? TO n3538 :感謝您提供的語法,我有試過還是會失敗。
TO zaqimon:請教一下ProcessClose要用什麼樣的條件去觸發?謝謝
TO keymaker :v3.3.12.0
我有加個條件測,目前好像OK了如下:
----程式碼start----
......
if not WinExists("臺銀證E點贏 [版本 2.69][已登入] [報價 : 已連線] [主動回報 : 已連線] - [臺銀證E點贏精選]") then
ProcessClose("daqBTS.exe")
sleep("2000")
run("tai_login.exe")
EndIf
WinWait("臺銀證E點贏 [版本 2.69][已登入] [報價 : 已連線] [主動回報 : 已連線] - [臺銀證E點贏精選]")
sleep("2000")
......
----程式碼end----
謝謝大家。{:7_420:}
頁:
[1]