您現在的位置:程序化交易>> 期貨公式>> 金字塔等>> 金字塔知識>>正文內容

[原創]自動開關金字塔軟件、自動開啟交易等技巧 [金字塔]

  • 咨詢內容:

    整個流程為:

      8:40  自動開啟金字塔軟件,軟件登錄馬上加載交易圖表(Frame1)

      30秒后自動啟動圖表交易(整個過程需要一兩分鐘)

      17:30 自動執行收盤作業(請先設置好收盤作業的市場,和需要保存的K線周期)

      19:00 自動關閉金字塔軟件

      20:40 自動開啟金字塔軟件,軟件登錄馬上加載夜盤交易圖表(Frame2)

      30秒后自動啟動圖表交易(整個過程需要一兩分鐘)

      06:00 自動關閉金字塔軟件

     

    軟件分為兩部分,VC++部分用途為每天兩次自動開啟金字塔軟件并自動點擊“登錄”按鈕。程序在附件中,只有兩個文件(testTraderApi.exe和thostmduserapi.dll),該程序自動連接某期貨公司的ctp行情服務器,取得交易日日期,從而自動判斷當天是否交易,不交易不開啟金字塔軟件。請將testTraderApi.exe設置為隨Windows自動啟動即可(放個快捷方式到“開始菜單》程序》啟動”)。軟件下載:

     下載信息  [文件大小:   下載次數: ]點擊瀏覽該文件:自動開啟金字塔.zip
    為防止網友懷疑我在exe中加入盜號、盜策略等木馬程序,特附上該exe文件的源代碼供下載,大家也可以下載后自行編譯,并且還可以修改開啟金字塔的時間,源代碼下載: 下載信息  [文件大?。?nbsp;  下載次數: ]點擊瀏覽該文件:金字塔開機軟件.zip

     

  • 金字塔客服:

    第二部分為金字塔VBA代碼,可復制并放入金字塔的任何一個VBA模塊中:

     

    dim StartTime
    dim StartTrade
    dim HasDoClose

    Sub APPLICATION_Start()
     '''''''自動啟動相應的框架(分日盤、夜盤調出相應圖表,請自行疊加相應策略公式)
     if cdate(time)>cdate("06:00:00") and cdate(time)<cdate("18:00:00") then
     '''''''日盤交易,打開框架名“Frame1”
      application.ActivateFrame "Frame1"
     else
     '''''''夜盤交易,打開框架名“Frame2”
      application.ActivateFrame "Frame2"
     end if
     call application.Settimer(100,30000) '30秒時鐘循環
     StartTime = cdate(time)
     StartTrade = 0
     HasDoClose = 0
    End Sub

    Sub APPLICATION_Timer(ID)
     if ID=100 then
      if StartTrade=0 then
       ''''''''''''''啟動圖表交易
       Set Wrap = CreateObject("DynamicWrapper")
       Wrap.Register "user32.dll","FindWindowA","i=ss","f=s", "r=l"
       Wrap.Register "user32.dll","FindWindowExA","i=llss","f=s", "r=l"
       Wrap.Register "user32.dll","SendMessageA","i=lull","f=s", "r=l"
       WM_LBUTTONDOWN=513
       WM_LBUTTONUP=514
       h = Wrap.FindWindowA("#32770","圖表程式化交易 - 日盤框架 - 交易中") '框架名稱請自行定義,下同
       if h=0 then h = Wrap.FindWindowA("#32770","圖表程式化交易 - 夜盤框架 - 交易中")
       if h<>0 then
        Wrap.PostMessageA h,WM_CLOSE,0,0
        StartTrade=1
       else
        h = Wrap.FindWindowA("#32770","金字塔")
        if h<>0 then
         h2 = Wrap.FindWindowExA(h,0,"Button","是(&Y)")
         if h2<>0 then
          Wrap.SendMessageA h2,WM_LBUTTONDOWN,0,0
          Wrap.SendMessageA h2,WM_LBUTTONUP,0,0
         end if
        else
         h = Wrap.FindWindowA("#32770","圖表程式化交易 - 日盤框架 - 已停止")
         if h=0 then h = Wrap.FindWindowA("#32770","圖表程式化交易 - 夜盤框架 - 已停止")
         if h<>0 then
          h2 = Wrap.FindWindowExA(h,0,"Button","啟動交易")
          if h2<>0 then
           Wrap.SendMessageA h2,WM_LBUTTONDOWN,0,0
           Wrap.SendMessageA h2,WM_LBUTTONUP,0,0
          end if
         else
          application.PostMessage(33873)
         end if
        end if
       end if
      elseif HasDoClose=0 and cdate(time)>cdate("17:30:00") and cdate(time)<cdate("18:00:00") then
       ''''''''17:30~18:00啟動收盤
       HasDoClose=1
       call application.Settimer(5,2000)
       application.PostMessage(454)'收盤
      elseif (StartTime<cdate("16:00:00") and cdate(time)>cdate("19:00:00") and cdate(time)<cdate("19:30:00")) or ((StartTime<cdate("2:30:00") or StartTime>cdate("6:30:00")) and cdate(time)>cdate("06:00:00") and cdate(time)<cdate("06:30:00")) then
       '''''''''''''關閉金字塔程序(早上2:30前或前一日6:30后開啟的凌晨6點關閉,下午16點前開啟的19點關閉)
       Set Wrap = CreateObject("DynamicWrapper")
       Wrap.Register "user32.dll","FindWindowA","i=ss","f=s", "r=l"
       Wrap.Register "user32.dll","FindWindowExA","i=llss","f=s", "r=l"
       Wrap.Register "user32.dll","SendMessageA","i=lull","f=s", "r=l"
       WM_LBUTTONDOWN=513
       WM_LBUTTONUP=514
       h = Wrap.FindWindowA("#32770","金字塔")
       if h<>0 then
        h2 = Wrap.FindWindowExA(h,0,"Button","是(&Y)")
        if h2<>0 then
         Wrap.SendMessageA h2,WM_LBUTTONDOWN,0,0
         Wrap.SendMessageA h2,WM_LBUTTONUP,0,0
        end if
       else
        application.PostMessage(57665)
       end if
      end if
     elseif ID=5 then
      '''''''''''開始收盤
      call application.killtimer(5)
      Set Wrap = CreateObject("DynamicWrapper")
      Wrap.Register "user32.dll","FindWindowA","i=ss","f=s", "r=l"
      Wrap.Register "user32.dll","FindWindowExA","i=llss","f=s", "r=l"
      Wrap.Register "user32.dll","PostMessageA","i=lull","f=s", "r=l"
      WM_CLOSE=16
          call application.Settimer(7,600000)'10分鐘后關閉收盤窗口
      h = Wrap.FindWindowA("#32770","數據管理器")
      tab=Wrap.FindWindowExA(h,0,"SysTabControl32","Tab1")
      BM_CLICK=245
      h1=Wrap.FindWindowExA(tab,0,"#32770","")
      do while h1<>0
       bt=Wrap.FindWindowExA(h1,0,"Button","執行收盤(&X)")
       if bt<>0 then
        Wrap.PostMessageA bt,BM_CLICK,0,0
        h1=0
       else
        h1=Wrap.FindWindowExA(tab,h1,"#32770","")
       end if
      loop
      call application.Settimer(6,2000)
     elseif ID=6 then
          call application.killtimer(6)
          BM_CLICK=245
      Set Wrap = CreateObject("DynamicWrapper")
      Wrap.Register "user32.dll","FindWindowA","i=ss","f=s", "r=l"
      Wrap.Register "user32.dll","FindWindowExA","i=llss","f=s", "r=l"
      Wrap.Register "user32.dll","PostMessageA","i=lull","f=s", "r=l"
      h = Wrap.FindWindowA("#32770","金字塔")
      bt=Wrap.FindWindowExA(h,0,"Button","是(&Y)")
      Wrap.PostMessageA bt,BM_CLICK,0,0
     elseif ID=7 then
      '''''''結束收盤
          Set Wrap = CreateObject("DynamicWrapper")
      Wrap.Register "user32.dll","FindWindowA","i=ss","f=s", "r=l"
      Wrap.Register "user32.dll","FindWindowExA","i=llss","f=s", "r=l"
      Wrap.Register "user32.dll","PostMessageA","i=lull","f=s", "r=l"
      WM_CLOSE=16
      BM_CLICK=245
      h = Wrap.FindWindowA("#32770","金字塔")
      bt = 0
      bt = Wrap.FindWindowExA(h,0,"Button","確定")
      st = 0
      st = Wrap.FindWindowExA(h,0,"Static","收盤作業結束。")
      if bt<>0 and st<>0 then
       Wrap.PostMessageA h,WM_CLOSE,0,0
       h = Wrap.FindWindowA("#32770","數據管理器")
       Wrap.PostMessageA h,WM_CLOSE,0,0
       call application.killtimer(7)
       'SendMail "收盤作業完成","收盤作業完成" ''''發信息通知收盤完成,是否需要個人決定
      end if
     end if
    end sub

     

  • 用戶回復: 感謝klc無私提供的幫助

     

  • 網友回復:

    VBA部分,以往有不少網友不知道怎么用,上面僅用到兩個VBA事件:Sub APPLICATION_Start和Sub APPLICATION_Timer(ID),都是系統內置的,用金字塔菜單》工具》宏》V...B...工程就可以打開看到幾個模塊,任選一個模塊,把上面代碼添加即可。

     

    需要注意的是兩點:

    1、必須先停止VBA才能編輯模塊中的代碼

    2、APPLICATION_Start和APPLICATION_Timer,在整個金字塔中都必須各只有一個,如果原來已經有了,不要直接覆蓋,而是修改原來的代碼,加到Sub內部。

     

    另外,我原來寫過提高圖表交易程序效率的帖子,也寫過自動檢查金字塔運行狀態的帖子,都可以和本帖子的內容結合起來,結合的時候,注意同名函數的問題就行。同時,我原來還寫過盤后自動進行數據補充,可以結合起來,我自己的做法是,盤后先自動下載一次當天的分筆數據,下載完成后,進行一次當天數據K線檢查,檢查如果沒有發現問題,才啟動收盤,如果有問題,不收盤,短信通知。這個需要大家通過我幾個帖子結合起來,自行修改了。

     

     

     

     

    最后補充一個問題:exe可改名,dll不可改名

    [此貼子已經被作者于2013/10/23 13:45:12編輯過]

     

  • 網友回復: 感謝klc無私提供的幫助

 

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

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


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 99精品无人区乱码在线观看| 么公的又大又深又硬想要| 野花社区视频www| 在线播放免费人成视频在线观看| 久久久久国产精品免费免费搜索| 欧美极品在线观看| 午夜aaaaaaaaa视频在线| 黄色毛片小视频| 在线中文字幕网站| 中文www新版资源在线| 日韩黄a级成人毛片| 亚洲第一黄色网| 精品国产精品久久一区免费式| 国产成人精品福利网站在线| 99久久精品费精品国产一区二区| 扒开双腿猛进入免费观看美女| 五月开心播播网| 欧美黑人又粗又大久久久| 午夜性色吃奶添下面69影院| 风间由美性色一区二区三区| 国产精品女同久久久久电影院| jux900被公每天侵犯的我| 色www视频永久免费男的天堂| 国产精品白浆无码流出| а√天堂中文最新版地址| 日本高清www无色夜在| 亚洲情a成黄在线观看| 男男同志chinese中年壮汉| 国产丰满麻豆videossexhd| xxx毛茸茸的亚洲| 天天综合天天添夜夜添狠狠添| 久久久久久曰本av免费免费| 欧美xxxx性疯狂bbbb| 亚洲精品美女久久久久99| 精品国产污污免费网站入口| 国产人成精品免费视频| 亚洲h在线观看| 国内精品伊人久久久久网站| 一二三四国语在线观看视频| 揄拍自拍日韩精品| 久久国产精品视频|