人人爽天天爽夜夜爽qc-人人爽天天爽夜夜爽曰-人人天天爱天天做天天摸-人人天天夜夜-色网站在线-色网站在线看

您現在的位置:程序化交易>> 期貨公式>> 交易開拓者(TB)>> 開拓者知識>>正文內容

共享一個V5版用AUTOIT監控TB是否死機并自動重開.(歡迎糾錯) [開拓者 TB]

  • 咨詢內容: 本帖最后由 hal5667 于 2015-3-16 13:30 編輯

    首先,寫一個TB公式,上兩個超級圖表,10秒周期的,掛上公式.每10秒寫一個開盤價進文件里面.需要用兩個品種,AG和IF,因為時間跨度不一樣..
    下例寫進:"D:\\openjiankong.log"


    本來想寫:三次出錯發郵件請求人工處理。但不知道怎么樣寫,歡迎高手補充。我是個菜鳥,下列代碼都是東拼西湊的,測試了2天,并模擬死機了N次,貌似還能用。(3月16修改過)
    Vars
            NumericSeries LastBarTime;

    Begin
       LastBarTime = GetGlobalVar(10);
            If(BarStatus==2 && LastBarTime != Time)
            {
                    LastBarTime = Time;
                                                    FileAppend("D:\\openjiankong.log",Text(open));
                    }
       SetGlobalVar(10,LastBarTime);

    End

    然后下列是我自己編的東東,可能還有些紕漏,歡迎糾正。因為TB經常跳出一些亂七八糟的東西。
    大概思路是:監控D:\\openjiankong.log的更新時間,如果和系統時間相差如果超過60秒,說明這個TB有可能死掉了,斷線了。殺進程,重啟。


    #Region ;**** 參數創建于 ACNWrapper_GUI ****
    #PRE_icon=C:\Windows\syswow64\SHELL32.dll|-239
    #PRE_Res_requestedExecutionLevel=None
    #EndRegion ;**** 參數創建于 ACNWrapper_GUI ****
    ;注意,一定要把AutoIt腳本文件放在TB安裝目錄下,與TB執行程序TradeBlazer.exe放同一目錄
    #Include <date.au3>
    #include <File.au3>

    Dim $tbtime,$truetime,$cha,$systime,$mmm
    $path="E:\tbv5019_portable\"&"\" ;用你的TB路徑替換
    $TBloginname="*******"        ;用你的TB登陸賬號替換***
    $TBloginpassword="*******"    ;用你的TB登陸密碼替換***
    $MAINWINDOWS = "交易開拓者平臺(旗艦版)"

    While 1>0
            $truetime=@MDAY*1000000+@HOUR*3600+@MIN*60+@SEC
        $systime=@HOUR*10000+@MIN*100+@SEC
       Local $t = FileGetTime("D:\\openjiankong.log", 0)
        $tbtime= $t[2]*1000000+$t[3]*3600+$t[4]*60+$t[5]
            $cha=$truetime-$tbtime
           
            If @HOUR=9 And @MIN=0 And @SEC=0 Then
       $mmm=0
       EndIf;9點錯誤次數清0
       
       
    If( ( @HOUR=9 And @min>0 )or @HOUR=10 Or (@HOUR=13 And @MIN>0) Or @HOUR=14  Or (@HOUR=21 And @min>0)  Or @HOUR=22  Or @HOUR=23  Or  ( @HOUR=11 And @min<29 ))  And @SEC>2 AND  _DateToDayOfWeek(@YEAR, @MON, @MDAY)<>1   AND _DateToDayOfWeek(@YEAR, @MON, @MDAY)<>7   Then
              If WinExists("Microsoft Visual C++ Runtime Library") Then
            WinActivate("Microsoft Visual C++ Runtime Library")
               Sleep(1000)
            WinClose("Microsoft Visual C++ Runtime Library")
            Sleep(1000)
                EndIf
                   
           If WinExists("TBDataCenter Microsoft 基礎類應用程序") Then
               WinActivate("TBDataCenter Microsoft 基礎類應用程序")
                    Sleep(1000)
               WinClose("TBDataCenter Microsoft 基礎類應用程序")
               Sleep(1000)
                       EndIf                 

            If WinExists("交易開拓者錯誤報告發送") Then
            WinActivate("交易開拓者錯誤報告發送")
                    Sleep(1000)
            WinClose("交易開拓者錯誤報告發送")
            Sleep(1000)
                EndIf

    If $cha>60 And $mmm<4 Then
                     $mmm=$mmm+1;計算錯誤次數               
                     $msg="服務器出現異常"&$mmm&"次!";只重啟3次,多于3次就人工處理。

            _FileCreate("D:\msgpush\income\error\1.log")
                _FileWriteLog("D:\msgpush\income\error\1.log", $msg);我寫了另外的監控這個文件,出錯過多就報警。
                      
             If WinExists("TBDataCenter Microsoft 基礎類應用程序") Then
               WinActivate("TBDataCenter Microsoft 基礎類應用程序")
                    Sleep(1000)
               WinClose("TBDataCenter Microsoft 基礎類應用程序")
               Sleep(1000)
                       EndIf          
                      
                              If WinExists($MAINWINDOWS) Then
                                    WinActivate($MAINWINDOWS);切換到主窗口
                                    Sleep(1000)
                                    WinClose($MAINWINDOWS, "")
                                    ControlClick("確認","","Button1");將當前焦點定位到確認鍵
                                    Sleep(1000)
                            EndIf
                                 Sleep(1000)
                 If ProcessExists("TradeBlazer.exe") And WinExists("交易開拓者平臺(旗艦版) - ") = 0 Then
                ProcessClose("TradeBlazer.exe")
                    ProcessClose("TBDataCenter.exe")
                  EndIf
                   
                    Sleep(2000)
                     If WinExists("Microsoft Visual C++ Runtime Library") Then
            WinActivate("Microsoft Visual C++ Runtime Library")
               Sleep(1000)
            WinClose("Microsoft Visual C++ Runtime Library")
            Sleep(1000)
                EndIf
                   
           If WinExists("TBDataCenter Microsoft 基礎類應用程序") Then
               WinActivate("TBDataCenter Microsoft 基礎類應用程序")
                    Sleep(1000)
               WinClose("TBDataCenter Microsoft 基礎類應用程序")
               Sleep(1000)
                       EndIf                 

            If WinExists("交易開拓者錯誤報告發送") Then
            WinActivate("交易開拓者錯誤報告發送")
                    Sleep(1000)
            WinClose("交易開拓者錯誤報告發送")
            Sleep(1000)
                EndIf
           
                    ;如果當前時間沒有進程,重啟進程
              If WinExists("交易開拓者平臺(旗艦版) - ") = 0 Then
                      
                    If ProcessExists("TradeBlazer.exe") And WinExists("交易開拓者平臺(旗艦版) - ") = 0 Then
               ProcessClose("TradeBlazer.exe")
               ProcessClose("TBDataCenter.exe")
                        Sleep(1000)
                        EndIf
            If ProcessExists("TBDataCenter.exe") Then
                   ProcessClose("TBDataCenter.exe")
                    Sleep(1000)
                          EndIf
                      
        $result=0   
        Run("E:\tbv5019_portable\TradeBlazer.exe",$path) ;用你的TB路徑替換
        Local $TB_Login_Windows = "[CLASS:#32770]"
        WinActivate($TB_Login_Windows, "")
         ;ControlClick($TB_Login_Windows, "","Button6");TBV5脫機登陸測試
           ; MouseClick("left", 500, 500, 2)
       

    ControlClick($TB_Login_Windows, "","Button5");TBV5登陸
            Sleep(2000)

    ControlSetText($TB_Login_Windows, "","Edit1",$TBloginname)
            Sleep(300)

    ControlSetText($TB_Login_Windows, "","Edit2",$TBloginpassword)
            Sleep(300)
                   
                   
    ControlClick($TB_Login_Windows, "","Button1");TBV5登陸

            If WinExists("歡迎登錄交易開拓者平臺(旗艦版)","用戶密碼錯誤") Then
                    WinClose("歡迎登錄交易開拓者")
                    $result = -1
            EndIf
        If $result = -1 Then
                    MsgBox(4096, "登錄錯誤提示", "TB登錄密碼錯誤", 10)
                    ContinueLoop
            EndIf
        WinWaitActive("交易開拓者平臺(旗艦版) - ","",30)
        Sleep(5000)
        WinActivate("交易開拓者平臺(旗艦版) - ")
        If WinExists("系統消息") Then
            WinActivate("系統消息")
                    Sleep(1000)
            WinClose("系統消息")
            Sleep(1000)
        EndIf
         Sleep (10000)
             WinMenuSelectItem("交易開拓者平臺(旗艦版) - ","","交易(&T)", "交易帳戶登錄");登錄帳戶
             
        ControlFocus("帳戶登錄","","Button1")
              Sleep(1000)
            ControlClick("帳戶登錄","","Button1")
        Sleep(25000) ;等15秒,開始自動交易
            WinActivate("交易開拓者平臺(旗艦版) - ")
          WinMenuSelectItem("交易開拓者平臺(旗艦版) - ","","文件(&F)", "啟動所有自動交易")
        Sleep(2000)
          
       EndIf
       EndIf;如果時間差大于60,并且進程存在,殺進程
              
                           
            EndIf  

                      Sleep(10)
              WEnd
              
    Sleep(2000)


    注:TB系統設置-重啟TB后打開最后保存的所有工作區。

     

  • TB技術人員: 三次出錯發郵件,可以做一個變量,初始值為0,出錯一次就加1,等于3的時候,發郵件,發完郵件,重置這個變量為0。

    你那個代碼中間發送那么多TAB鍵,只是要選中那個暫停自動登陸嗎,其實要一直暫停自動登陸,在TB的config.env文件里修改就可以了,改成如下圖

    2222.png (9.13 KB, 下載次數: 3) 2015-3-15 10:14:13 上傳 下載次數: 3

    這樣比發送模擬按鍵還穩定得多了。

     

  • TB客服: 這個帖要頂。

     

  • 網友回復: 本帖最后由 hal5667 于 2015-3-16 13:43 編輯
    superwin 發表于 2015-3-15 10:16
    三次出錯發郵件,可以做一個變量,初始值為0,出錯一次就加1,等于3的時候,發郵件,發完郵件,重置這個變 ...


    原來如此。一直都不知道這回事,謝謝解決了我的一大問題。

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 1145508240  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 国外免费精品视频在线观看 | 免费日批| 黄色免费高清视频 | 五月婷婷丁香在线视频 | 一级毛片一片毛 | 成人影院在线播放 | 在线另类 | 亚洲无限乱码一二三四区 | 在线视免费频观看韩国aaa | 黄色福利视频 | 久草视频在线资源站 | 欧美日韩视频一区三区二区 | 亚洲欧美在线中文字幕不卡 | 日本久久久久久久中文字幕 | 精品国产免费观看久久久 | 最近中文字幕网2019 | 369看片你懂的永久免费 | 亚洲综合网在线观看 | 欧美一区在线观看视频 | 特黄特级毛片免费视 | 9re视频这里只有精品 | 日韩欧美一区二区三区免费观看 | 亚洲第一激情 | 欧美性video精品 | 国产精品综合久成人 | 五月开心六月伊人色婷婷 | 草草影院在线观看视频 | 狠狠色噜噜狠狠狠狠97不卡 | 免费人成又黄又爽的视频强 | sss欧美华人整片在线观看 | 在线伊人网 | 国产日本在线视频 | 91精品啪在线观看国产线免费 | 高清一级毛片免免费看 | 久久天天躁夜夜躁狠狠85台湾 | 欧美精品人爱c欧美精品 | 黄色一级录象片 | 午夜一级做a爰片久久毛片 午夜一级免费视频 | 成在线人免费视频一区二区三区 | 精品国产欧美一区二区 | 日韩在线毛片 |