「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)
上一篇 2024年5月1日 上午8:46
下一篇 2024年5月1日 上午8:58

相关推荐

  • 如何获得科研项目计划书

    如何获得科研项目计划书 科研项目计划书是项目成功的关键之一,它提供了项目的背景,目标,研究方法和时间表等信息。下面是获得科研项目计划书的一些步骤和建议。 1. 确定项目主题和目标在…

    科研百科 2025年5月8日
    2
  • 科研项目安全管理

    科研项目安全管理 科研项目的安全管理是确保科研项目能够顺利进行、达到预期效果的重要保障。安全管理不仅仅是防止项目失败,更是保护项目人员的安全和健康,保证项目数据的完整性和安全性。 …

    科研百科 2025年3月1日
    2
  • 科研经费管理系统

    科研经费管理系统: 助力科研经费管理的创新工具 科研经费管理系统是许多科研工作者必备的工具,可以帮助他们更好地管理自己的科研经费。本文将介绍一种科研经费管理系统,它的优点包括高效的…

    科研百科 2024年8月22日
    2
  • 施工项目管理erp系统品牌

    施工项目管理erp系统品牌 随着现代建筑行业的快速发展,施工项目管理已经成为了一项非常重要的任务。传统的施工管理方法已经无法适应现代施工项目管理的需要,因此,施工项目管理erp系统…

  • 职称科研项目和专利

    标题:职称科研项目和专利: 助力企业技术创新 随着科技的不断发展,职称科研项目和专利已经成为了企业技术创新的重要资源。它们不仅可以为企业提供资金和技术支持,还可以帮助企业提升品牌知…

    科研百科 2025年6月4日
    1
  • 纳米刀科研项目简介

    纳米刀科研项目简介 近年来,随着科技的不断进步,纳米技术已经成为了一个备受关注的领域。纳米技术的核心是纳米尺度的结构和功能,其尺度约为1到100纳米。在纳米技术的应用中,纳米刀技术…

    科研百科 2025年2月5日
    7
  • 阜新管理系统开发项目

    阜新管理系统开发项目 阜新管理系统开发项目是一个旨在为阜新市公共事务管理提供全面的管理系统的项目。该项目的目标是提高阜新的公共事务管理效率,提高服务质量,并为市民提供更好的体验。 …

    科研百科 2024年12月31日
    4
  • 项目团队如何高效沟通?(项目团队如何高效沟通)

    沟通是团队协作的基础,想要组建一支高效团队,首先要保证沟通的效率。 工作中最常遇到的问题就是沟通。 如何能在最短的时间做到令对方明白您的目的? 彼此确认好双方的需求? 确保大家都明…

    科研百科 2024年2月21日
    103
  • 研发类项目管理软件(研发项目管理系统软件)

    研发项目管理系统软件研发项目管理系统软件系统本课程2个专题,包含党的软硬件、公司战略和企业战略,分别为 1 门制作与工艺,经 3 门操作, 4 门创新, 6 门操作, 7 门编写与…

    科研百科 2024年7月30日
    2
  • 教研项目属于科研项目么

    教研项目属于科研项目么 科研项目是一种用于研究科学技术问题的项目。这些项目通常由研究人员设计和实施,旨在解决特定领域的问题或探索新的科学知识。与教研项目不同,科研项目通常涉及直接对…

    科研百科 2025年2月25日
    10