找回密码
 加入
搜索
查看: 33171|回复: 66

[AU3基础] 如何读取MT4的持仓信息?

 火.. [复制链接]
发表于 2015-10-26 18:06:57 | 显示全部楼层 |阅读模式
悬赏300金钱已解决
本帖最后由 东风烈烈 于 2015-11-10 16:49 编辑

另付酬劳真实人民币300元。本人QQ:2682658016

我写的这段代码读不出来,请指教:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIEdit.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <Array.au3>
#include <File.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <GuiComboBox.au3>
#include <GuiButton.au3>
#include <IE.au3>
#Include <WinAPI.au3>
#include <ListViewConstants.au3>
#include <Math.au3>



        Global $iniFileName = @ScriptDir & "\MT4config.ini"
        ; ini中的清仓时间
        Global $WR=3000,$WR1=3000,$WR2=3000,$WR3=35
        Global $WHProgramTitle = "1091953: ABL-Demo"
                Global $hModelListView = ControlGetHandle($WHProgramTitle, "", "SysListView321")
        Global $WH81 = "1091953: ABL-Demo"
        Global $WH82="[CLASS:SysListView32; INSTANCE:1]"; INSTANCE:2];ListView 类名
                Global $iMCnt = _GUICtrlListView_GetItemCount($hModelListView)
                Global $iMLUMCnt1 = _GUICTRLLISTVIEW_GETCOLUMNCOUNT($hModelListView)
        Global $NA[$WR1][$WR3]
            ReDim  $NA[$WR1][$WR3]
                Global $NB[$WR2][$WR3]
            ReDim  $NB[$WR2][$WR3]
                Global $M1=1


While 1
   
        $iMCnt = _GUICtrlListView_GetItemCount($hModelListView)
        $iMLUMCnt1 = _GUICTRLLISTVIEW_GETCOLUMNCOUNT($hModelListView)
       

           If $M1 >= 5 Then
                Exit
        EndIf       
       

        If $iMCnt > 1 Then
                        For $N = 0 To $iMCnt - 2
                                For $I = 0 To $iMLUMCnt1 - 1
                                        ; 获得信息
                                        $NA [$N ][$I ] = _GUICTRLLISTVIEW_GETITEMTEXT($hModelListView, $N, $I)
                                Next
                                    $NA [$N][2] = StringStripWS($NA [$N][2], 8);取持仓方向
                                        ;$NA[$N][2] = StringLeft($NA[$N][2],2);取持仓方向
                                        $NA [$N][4] = StringStripWS($NA [$N][4], 8);交易合约
                                    $NA[$N][11] = Number($NA[$N][11]);盈亏金额
                                       
                                    MsgBox(0,"A结果?",$iMCnt & $iMLUMCnt1 & "交易合约:" & $NA [$N][4]  & "方向:" & $NA[ $N][2] & "盈亏金额:" & $NA[ $N][11] & "A0全部正确吗?")
                                Next       
                            
                        $M1=$M1+1  
        EndIf
               
    If $iMCnt = 1 Then

                        For $I = 0 To $iMLUMCnt1 - 1
                               $NA [0 ][$I ]=  _GUICTRLLISTVIEW_GETITEMTEXT($hModelListView, 0, $I)
                NEXT
                            
                                $NA [0][2] = StringStripWS($NA [0][2], 8);取持仓方向
                            ;$NA[0][2] = StringLeft($NA[0][2],2);取持仓方向
                                $NA [0][4] = StringStripWS($NA [0][4], 8);交易合约
                            $NA[0][11] = Number($NA[0][11]);盈亏金额
                            MsgBox(0,"A结果?",$iMCnt & $iMLUMCnt1 & "交易合约:" & $NA [0][4]  & "方向:" & $NA[ 0][2] & "盈亏金额:" & $NA[ 0][11] & "   A0全部正确吗?")

                        $M1=$M1+1
               
       
    EndIf

WEnd





下面是要读取的程序安装包:


有朋友说上面的文件下载后不能安装,下面的是文件官网的链接:
http://www.ablchinese.com/list.asp?classid=9

另外说明一下这个是在线安装的,所需时间比一般的长。
附件: 您需要 登录 才可以下载或查看,没有账号?加入

最佳答案

查看完整内容

可以用读内存或是截图后OCR识别,考虑到效率问题,我一般都是调用第三方dll完成。
发表于 2015-10-26 18:06:58 | 显示全部楼层
可以用读内存或是截图后OCR识别,考虑到效率问题,我一般都是调用第三方dll完成。
发表于 2015-10-26 20:00:05 | 显示全部楼层
怎麼不用EA?
 楼主| 发表于 2015-10-26 20:01:28 | 显示全部楼层
回复 2# rchockxm


    思路不一样,希望通过这种方式更适合我。
 楼主| 发表于 2015-10-26 20:03:57 | 显示全部楼层
期待有人能帮到我
 楼主| 发表于 2015-10-26 21:02:05 | 显示全部楼层
本帖最后由 东风烈烈 于 2015-10-26 21:52 编辑

急啊,有懂的请指点一二

另:有能弄出来的,我愿付人民币200元(声明:只给第一个解决问题的人,第二个以后就没有的。),QQ:2682658016
 楼主| 发表于 2015-10-27 09:33:51 | 显示全部楼层
大家不要误会,我也知道200元是小到不能再小的钱,只是我现在自己处于水深火热之中,也说明我的着急,在论坛,在网上查了好久,也试了不少方法,还是不行,请懂的指点一下。谢谢!
 楼主| 发表于 2015-10-27 11:13:20 | 显示全部楼层
大家研究一下,可以帮忙吗?
 楼主| 发表于 2015-10-27 11:39:12 | 显示全部楼层
没人回复啊,给点建议好吗?
 楼主| 发表于 2015-10-27 12:57:34 | 显示全部楼层
努力顶,不让沉,让大家知道我很急。。。。
发表于 2015-10-27 15:38:32 | 显示全部楼层
OCR肯定行 就是办法笨点  要么用CE 抓内存中的数据 要稳定点。软件下来安不上 测试不了。
 楼主| 发表于 2015-10-27 16:03:54 | 显示全部楼层
回复 10# zch11230

首先谢谢。我能问一下OCR是什么吗?用CE读内存,听说不是很稳定,一升级又要重新找,而且我没这方面的经验。安装不了的话,下面的链接是官方网址,麻烦你在看一下。再次感谢!
http://www.ablchinese.com/list.asp?classid=9
 楼主| 发表于 2015-10-27 16:06:59 | 显示全部楼层
百度了下,是识别软件,不知准确性和速度怎么样?
发表于 2015-10-27 16:59:09 | 显示全部楼层
本帖最后由 zch11230 于 2015-10-27 17:01 编辑

我是在安装时 代理服务器不知道填什么 不填进下一步 就提示下载文件  然后一直0KB不动。
OCR用插件的话  这种标准字体应该是100%准确的 速度是毫秒级的  就是一般不能最小化软件 窗口最好不被遮挡。
 楼主| 发表于 2015-10-27 17:12:04 | 显示全部楼层
回复 13# zch11230


    麻烦你到官网上下一个看看,点击我发你的链接。OCR好用稳定吗?窗口不被遮挡好象有点麻烦啊,有时还有别的程序被打开。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 02:07 , Processed in 0.079641 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表