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

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

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

  • 咨詢內容:

    整個流程為:

      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文件的源代碼供下載,大家也可以下載后自行編譯,并且還可以修改開啟金字塔的時間,源代碼下載: 下載信息  [文件大小:   下載次數: ]點擊瀏覽該文件:金字塔開機軟件.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  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 色综合欧美 | 人人爱人人搞 | 一个人看的www免费视频中文 | avtt国产 | 亚洲va久久久久 | 欧美成人久久 | 成人欧美在线视频 | 亚洲精品成人a在线观看 | 日本一区二区高清不卡 | 美女黄站 | 久久亚洲国产精品一区二区 | 在线播放国产麻豆 | 国产成人午夜精品影院游乐网 | 精品国产一区二区麻豆 | 国产精品一区二区在线观看 | 波多野结衣一区二区三区 | 成人怡红院视频在线观看 | 亚洲成人中文 | 国产午夜剧场 | 三级黄色a | 亚洲人成网站色7799在线观看 | 免费在线观看黄网站 | 日韩视频在线观看一区 | 一二三区乱码一区二区三区码 | 国产一区免费视频 | 国产女人视频免费观看 | 免费99精品国产自在现线观看 | 公又粗又长又大又深好爽日本 | 一级黄色在线观看 | 国产一区二区三区在线观看免费 | 成人在线免费看 | 国产精品久久女同磨豆腐 | 一区二区三区在线播放 | 在线免费观看a级片 | 一级特黄视频 | 国产视频第一页 | 草草影院欧美三级日本 | 人人干人人舔 | 国产精品手机视频 | 黄色片黄色片黄色片黄色片黄色片 | 天堂亚洲国产日韩在线看 |