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

共享一個(gè)V5版用AUTOIT監(jiān)控TB是否死機(jī)并自動(dòng)重開.(歡迎糾錯(cuò)) [開拓者 TB]

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

    首先,寫一個(gè)TB公式,上兩個(gè)超級(jí)圖表,10秒周期的,掛上公式.每10秒寫一個(gè)開盤價(jià)進(jìn)文件里面.需要用兩個(gè)品種,AG和IF,因?yàn)闀r(shí)間跨度不一樣..
    下例寫進(jìn):"D:\\openjiankong.log"


    本來想寫:三次出錯(cuò)發(fā)郵件請求人工處理。但不知道怎么樣寫,歡迎高手補(bǔ)充。我是個(gè)菜鳥,下列代碼都是東拼西湊的,測試了2天,并模擬死機(jī)了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

    然后下列是我自己編的東東,可能還有些紕漏,歡迎糾正。因?yàn)門B經(jīng)常跳出一些亂七八糟的東西。
    大概思路是:監(jiān)控D:\\openjiankong.log的更新時(shí)間,如果和系統(tǒng)時(shí)間相差如果超過60秒,說明這個(gè)TB有可能死掉了,斷線了。殺進(jìn)程,重啟。


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

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

    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點(diǎn)錯(cuò)誤次數(shù)清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 基礎(chǔ)類應(yīng)用程序") Then
               WinActivate("TBDataCenter Microsoft 基礎(chǔ)類應(yīng)用程序")
                    Sleep(1000)
               WinClose("TBDataCenter Microsoft 基礎(chǔ)類應(yīng)用程序")
               Sleep(1000)
                       EndIf                 

            If WinExists("交易開拓者錯(cuò)誤報(bào)告發(fā)送") Then
            WinActivate("交易開拓者錯(cuò)誤報(bào)告發(fā)送")
                    Sleep(1000)
            WinClose("交易開拓者錯(cuò)誤報(bào)告發(fā)送")
            Sleep(1000)
                EndIf

    If $cha>60 And $mmm<4 Then
                     $mmm=$mmm+1;計(jì)算錯(cuò)誤次數(shù)               
                     $msg="服務(wù)器出現(xiàn)異常"&$mmm&"次!";只重啟3次,多于3次就人工處理。

            _FileCreate("D:\msgpush\income\error\1.log")
                _FileWriteLog("D:\msgpush\income\error\1.log", $msg);我寫了另外的監(jiān)控這個(gè)文件,出錯(cuò)過多就報(bào)警。
                      
             If WinExists("TBDataCenter Microsoft 基礎(chǔ)類應(yīng)用程序") Then
               WinActivate("TBDataCenter Microsoft 基礎(chǔ)類應(yīng)用程序")
                    Sleep(1000)
               WinClose("TBDataCenter Microsoft 基礎(chǔ)類應(yīng)用程序")
               Sleep(1000)
                       EndIf          
                      
                              If WinExists($MAINWINDOWS) Then
                                    WinActivate($MAINWINDOWS);切換到主窗口
                                    Sleep(1000)
                                    WinClose($MAINWINDOWS, "")
                                    ControlClick("確認(rèn)","","Button1");將當(dāng)前焦點(diǎn)定位到確認(rèn)鍵
                                    Sleep(1000)
                            EndIf
                                 Sleep(1000)
                 If ProcessExists("TradeBlazer.exe") And WinExists("交易開拓者平臺(tái)(旗艦版) - ") = 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 基礎(chǔ)類應(yīng)用程序") Then
               WinActivate("TBDataCenter Microsoft 基礎(chǔ)類應(yīng)用程序")
                    Sleep(1000)
               WinClose("TBDataCenter Microsoft 基礎(chǔ)類應(yīng)用程序")
               Sleep(1000)
                       EndIf                 

            If WinExists("交易開拓者錯(cuò)誤報(bào)告發(fā)送") Then
            WinActivate("交易開拓者錯(cuò)誤報(bào)告發(fā)送")
                    Sleep(1000)
            WinClose("交易開拓者錯(cuò)誤報(bào)告發(fā)送")
            Sleep(1000)
                EndIf
           
                    ;如果當(dāng)前時(shí)間沒有進(jìn)程,重啟進(jìn)程
              If WinExists("交易開拓者平臺(tái)(旗艦版) - ") = 0 Then
                      
                    If ProcessExists("TradeBlazer.exe") And WinExists("交易開拓者平臺(tái)(旗艦版) - ") = 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脫機(jī)登陸測試
           ; 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("歡迎登錄交易開拓者平臺(tái)(旗艦版)","用戶密碼錯(cuò)誤") Then
                    WinClose("歡迎登錄交易開拓者")
                    $result = -1
            EndIf
        If $result = -1 Then
                    MsgBox(4096, "登錄錯(cuò)誤提示", "TB登錄密碼錯(cuò)誤", 10)
                    ContinueLoop
            EndIf
        WinWaitActive("交易開拓者平臺(tái)(旗艦版) - ","",30)
        Sleep(5000)
        WinActivate("交易開拓者平臺(tái)(旗艦版) - ")
        If WinExists("系統(tǒng)消息") Then
            WinActivate("系統(tǒng)消息")
                    Sleep(1000)
            WinClose("系統(tǒng)消息")
            Sleep(1000)
        EndIf
         Sleep (10000)
             WinMenuSelectItem("交易開拓者平臺(tái)(旗艦版) - ","","交易(&T)", "交易帳戶登錄");登錄帳戶
             
        ControlFocus("帳戶登錄","","Button1")
              Sleep(1000)
            ControlClick("帳戶登錄","","Button1")
        Sleep(25000) ;等15秒,開始自動(dòng)交易
            WinActivate("交易開拓者平臺(tái)(旗艦版) - ")
          WinMenuSelectItem("交易開拓者平臺(tái)(旗艦版) - ","","文件(&F)", "啟動(dòng)所有自動(dòng)交易")
        Sleep(2000)
          
       EndIf
       EndIf;如果時(shí)間差大于60,并且進(jìn)程存在,殺進(jìn)程
              
                           
            EndIf  

                      Sleep(10)
              WEnd
              
    Sleep(2000)


    注:TB系統(tǒng)設(shè)置-重啟TB后打開最后保存的所有工作區(qū)。

     

  • TB技術(shù)人員: 三次出錯(cuò)發(fā)郵件,可以做一個(gè)變量,初始值為0,出錯(cuò)一次就加1,等于3的時(shí)候,發(fā)郵件,發(fā)完郵件,重置這個(gè)變量為0。

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

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

    這樣比發(fā)送模擬按鍵還穩(wěn)定得多了。

     

  • TB客服: 這個(gè)帖要頂。

     

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


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

 

有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友

可聯(lián)系技術(shù)人員 QQ: 1145508240  點(diǎn)擊這里給我發(fā)消息進(jìn)行 有償 編寫!不貴!點(diǎn)擊查看價(jià)格!


【字體: 】【打印文章】【查看評(píng)論

相關(guān)文章

    沒有相關(guān)內(nèi)容
主站蜘蛛池模板: 亚洲av无码一区二区三区电影| 99爱在线精品免费观看| 色综合久久久久久久| 欧美国产激情二区三区| 国产日韩在线看| 亚洲激情电影在线| 国产一卡二卡四卡免费| 成年女人免费观看视频| 亚洲色偷偷偷网站色偷一区| 亚洲色图欧美激情| 无码无套少妇毛多69XXX| 伊人久久综在合线亚洲91| 3d精品重口littleballerina| 日本高清色本免费现在观看| 动漫卡通精品3d一区二区| 91久久香蕉国产线看| 日本黄色一级大片| 亚洲欧美成人永久第一网站| 香蕉久久夜色精品国产| 好吊妞乱淫欧美| 亚洲五月激情综合图片区| 老子午夜精品我不卡影院| 国产黄色片91| 久久久噜噜噜www成人网| 狠狠操视频网站| 国产成人tv在线观看| 一区二区三区免费精品视频| 欧美日韩在大午夜爽爽影院| 国产偷窥熟女精品视频大全| porn在线精品视频| 极品艳短篇集500丝袜txt | 亚洲av无码片一区二区三区| 琪琪女色窝窝777777| 国产日韩欧美中文字幕| 99精品国产在热久久无毒不卡| 最新亚洲人成无码网www电影| 午夜看一级特黄a大片黑| 1313午夜精品理伦片| 无码人妻精一区二区三区| 亚洲欧美色一区二区三区| 精品国内片67194|