「FX581独家」MT4开发技巧 历史记录的“坑”

我们会经常遇到这样的需求:统计历史交易记录的手数,或者得到最后一笔历史交易订单的信息。这样的功能对于我们来说并不困难,下面是一个简单的代码示例:

double lot = 0;

for(int i=0;i < OrdersHistoryTotal();i )

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false) continue;

lot = OrderLots();

}

Print("总手数:",lot);

这段代码就是通过循环统计出所有历史的手数,其实这段代码就是把循环遍历所有在场单的代码改动下即可。把OrdersTotal()函数改成OrdersHistoryTotal(),把OrderSelect函数里增加一个参数:MODE_HISTORY。那么这么一个简单的程序也有问题吗?答案是肯定的。

我们来运行下这个EA程序,在终端中显示的结果是:

总手数居然是0!太不可思议了,明明我有很多的交易记录啊。

现在跟小编一起来做一些操作,再运行下程序看看最后的结果是什么:

「FX581独家」MT4开发技巧 历史记录的“坑”

在账户历史中点击右键,选择所有交易记录,现在账户历史中就出现了之前交易的所有历史记录

「FX581独家」MT4开发技巧 历史记录的“坑”


那么我们在运行下EA程序试下结果就会显示正常:

「FX581独家」MT4开发技巧 历史记录的“坑”

这就是通过程序得到历史记录的一个“坑”了,在MT4中,软件默认会只显示当月的历史记录,而程序在得到历史记录时只根据软件当前的历史记录进行查找,由于这个月我没有做任何的交易,所以在统计总手数的时候得到的是0,而如果在软件里把所有的交易记录都显示出来后,程序终于可以正常工作了。
(本段落标蓝是为了推广所用,请吧xxx替换为相应要宣传的平台,如果没有可做的平台可以删除这段内容)之所以我们很少发现这个问题的原因在于一般的MT4平台模拟账户时效性都很短,注册了一个模拟户后很快就过期了,导致很少有人能发现这个问题。所以拥有一个能开长效模拟户的平台尤为重要了,我们推荐使用xxx平台它可以提供长达xx天的模拟账户。
长效模拟户本身对于我们开发和测试EA程序是有很大帮助,众所周知开发完成一款新的EA程序后只是用历史模拟是不够的,还需要挂机测试,如果测试没几天就过期了这样对于开发EA来说是非常烦恼的事情。

关于这个历史记录的第二个“坑”是,我们要想得到历史记录只能用EA程序来获取,如果我们写一个脚本程序,同样是得不到历史记录的,即使我们已经在账户历史中显示了所有的记录。

那么我们如何才能避免这个问题呢?因为客户在使用我们的EA程序时是不知道这个问题的,如果客户不知道或根本不会去这样操作,我们在程序中如何避免这个问题呢?一个比较简单的办法是在您的EA程序运行中,把所有下单的记录都存在文件中,这样即使客户没有任何操作也可以拿到这些历史记录信息,下面是一个简单的存文件的代码示例:

//content为要存储的内容

void setfile(string content)

{

string Filename = "要存储的文件名";

int filehandle = FileOpen(filename,FILE_WRITE|FILE_TXT);//也可以存成CSV文件把FILE_TXT替换成FILE_CSV,这样可以存储多条信息

if(filehandle == INVALID_HANDLE)//判断读取文件是否出现错误

{

FileClose(filehandle);

Print("存储文件发生错误");

}

else//正常打开,可以写入内容了

{

FileWriteString(filehandle, content);

FileClose(filehandle);

}

}

通过以上的方法,想必各位已经有所了解,在以后的开发中我们的程序将更加的完善和健壮。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年3月17日 上午10:56
下一篇 2023年3月17日 上午11:12

相关推荐

  • 如何管理企业闲置资金?(如何管理企业闲置资金账户)

    你到底浪费了多少钱 假设: 每年存1万元,年收益率5%,连续20年,可以得到多少钱? 答案是33万。 那么企业呢? 假设: 企业常年流动现金1亿元,企业日均的账户闲置资金是5000…

    科研百科 2022年11月25日
    445
  • 项目管理绩效考核表

    项目管理绩效考核表 项目管理绩效考核表是衡量项目管理绩效的重要工具,可以帮助企业管理者更好地了解项目进展和成果,及时发现问题并进行调整。以下是一个基本的项目管理绩效考核表,可以根据…

    科研百科 2024年5月28日
    65
  • 电商的项目管理

    电商项目管理 电商行业正在迅速发展,电子商务公司需要高效的项目管理来确保项目的成功完成。电商项目管理是一个复杂的过程,需要协调多个部门之间的合作,包括市场营销、客户服务、物流和财务…

    科研百科 2024年9月25日
    15
  • 机电里的套图是啥意思

    机电里的套图是指一种机械设计软件,用于绘制和编辑机械零件、电机、变压器、传感器和其他机电设备的设计图。 套图软件通常包括多个绘图工具,如CAD、CAE、CAM等,用于设计、分析和制…

    科研百科 2024年11月6日
    1
  • 在线 项目管理软件

    在线项目管理软件: 现代项目管理的便利工具 随着现代技术的发展,在线项目管理软件已经成为了现代项目管理的一种便利工具。这些软件可以在任何地方,任何时间进行访问,并且能够为项目经理和…

    科研百科 2024年7月27日
    35
  • 追剧你选谁?五款主流视频播放App评测(追剧你选谁-五款主流视频播放app评测)

    老规矩上“全家福” 本次参与视频评测的软件有: 1.爱奇艺:百度旗下的视频播放App,拥有海量、优质、高清的网络视频源,是专业的网络视频播放平台。 2.腾讯视频:腾讯旗下的视频播放…

    科研百科 2024年5月21日
    102
  • 任务app的开发前景怎么样(任务app的开发前景怎么样啊)

    拉新任务App的市场前景广阔,随着智能手机的广泛普及和网络技术的持续发展,App已经成为了人们日常生活的重要组成部分。无论是购物、社交还是娱乐,App都提供了方便快捷的服务。因此,…

    科研百科 2024年9月14日
    24
  • 广东协同oa办公系统

    广东协同oa办公系统:提升企业办公效率的利器 随着现代企业的快速发展,企业之间的竞争已经从产品质量转向效率竞争。因此,企业必须采取有效措施来提升办公效率,降低成本,提高竞争力。广东…

    科研百科 2025年1月9日
    0
  • HR常用的人力资源管理软件有哪些?(hr常用的人力资源管理软件有哪些)

    HR常用的人力资源管理软件有哪些?(hr常用的人力资源管理软件有哪些) 在人力资源管理信息化这个问题上,不同行业的企业对人力资源管理软件的需求侧重点不一样,并且通常企业规模决定了企…

    科研百科 2024年3月29日
    114
  • 项目管理的系统(项目管理系统有哪些公司)

    项目管理系统有哪些公司项目管理系统有哪些公司、公司、 商务部门、物流企业、商务机构、营业执照企业、业务服务、物流项目管理、物流管理等等。 项目管理中,包括货币银行、银行、银行、金融…

    科研百科 2024年8月1日
    33