人人爽天天爽夜夜爽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  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: a人片在线观看 | 一级黄色片在线 | 男女国产一级毛片 | 欧美va天堂| 清风阁爱干 | 久草手机在线视频 | 色综合久久久久久888 | 国内体内she精视频免费 | 香蕉视频好色先生 | 国产人伦视频在线观看 | 精品欧美一区二区三区 | 国产亚洲欧洲国产综合一区 | 亚洲日韩欧洲无码av夜夜摸 | 37pao成人国产永久免费视频 | 免费一极毛片 | 欧洲成人r片在线观看 | 日韩欧美中文 | 日韩高清在线日韩大片观看网址 | 国产一卡二卡三卡 | 久草最新在线 | 人人狠狠 | 国产日韩欧美亚洲综合首页 | 欧美视频精品在线观看 | 亚洲一级高清在线中文字幕 | 婷婷激情狠狠综合五月 | 久久人人澡人人爽人人爱 | 人人成人免费公开视频 | 日本一区二区三区视频在线 | a级精品九九九大片免费看 a级精品国产片在线观看 | 黄网页在线观看 | 国产免费a视频 | 免费看片的网址 | 美女很黄很黄是免费的 | 在线欧美视频免费观看国产 | 免费一级毛片视频 | 少妇激情av一区二区 | 欧美在线观看视频一区 | 国产精品伦理久久久久久 | 校园春色 自拍偷拍 | 天天做天天爱夜夜爽女人爽宅 | 狠狠操狠狠摸 |