MT4目录结构

2024-05-12 04:28
文章标签 结构 目录 mt4

本文主要是介绍MT4目录结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Experts

该文件夹包含用户编写的EA程序代码文件。可以自动将用户编写的交易策略应用到行情中,其中后缀名为mq4的是源代码,后缀名为ex4的是可执行文件。

EA:Expert Advisors,译为专家顾问,通俗的来说,就是用机器代替人监听行情,并针对行情应用交易策略,自动执行做多、做空的操作。由程序员借助一门计算机编程语言(mq4),编写交易指令,预设好某个情境下的操作,实现机器自动进行交易。

优点:

  1. 自动化交易:无需人工干预,消除了情绪因素对交易的影响,并且可以在没有人类干预的情况下全天候的交易;
  2. 严格执行策略:按照预设的交易策略执行交易,不会受到人类情绪波动和主观判断的影响,保证了交易策略的纪律性和一致性;
  3. 快速响应市场:EA可以实时检测市场变化并立即做出反应,快速执行交易操作,更容易捕捉到市场的瞬时机会;
  4. 减少认为错误:避免人为错误,如误操作、拖延等;
  5. 后测和优化:可以通过回测功能对EA进行历史数据的模拟测试,评估交易策略的变现并进行优化,提高盈利能力。

缺点:

  1. 机械化限制:EA只能按照预设的策略进行交易,缺乏人类交易者的灵活性和判断力,有可能无法适应市场的变化和突发情况;
  2. 依赖性能稳定性:EA的运行依赖于交易平台和计算机系统的稳定性和可靠性,如果系统出现故障或网络断线,可能导致交易失败或者损失;
  3. 过度优化风险:对EA进行过度优化可能导致过度拟合历史数据,使其表现在实际交易中的表现不如预期,甚至导致损失;
  4. 无法适应新情况:由于EA通常基于历史数据和固定的交易策略进行交易,对于 新的市场情况或者突发事件可能无法及时做出合适的调整;
  5. 需要技术知识:开发和优化EA需要一定的编程和金融市场知识,对于普通投资者来说,可能需要花费大量时间和精力才能掌握;
  1. onTrade: 当交易操作(如开仓、平仓、修改订单等)发生时,该函数会被调用。可以在该函数中编写相应的代码来处理交易操作的结果和执行相关的逻辑。

  2. OnTradeTransaction: 当交易事务(如交易记录、订单状态变化等)发生时,该函数会被调用。可以在该函数中编写代码来监控交易事务并执行相应的操作。

  3. OnTimer: 当定时器触发时,该函数会被调用。可以在该函数中编写代码来执行周期性任务,例如定时更新指标、检查市场条件等。

  4. OnChartEvent: 当在图表上发生事件(如鼠标单击、拖动图表等)时,该函数会被调用。可以在该函数中编写代码来响应图表事件并执行相应的操作。

  5. OnBookEvent: 当市场深度数据发生变化时,该函数会被调用。可以在该函数中编写代码来处理市场深度数据变化的情况。

  6. OnTester: 当在回测期间执行交易测试时,该函数会被调用。可以在该函数中编写代码来处理回测过程中的事件和情况。

  7. OnTesterInit: 当开始进行交易策略的回测时,该函数会被调用。可以在该函数中编写代码来初始化回测环境和设置回测参数。

  8. OnTesterPass: 当回测过程中每一次交易的测试通过时,该函数会被调用。可以在该函数中编写代码来处理每一次交易测试通过的情况。

  9. OnTesterDeinit: 当交易策略的回测结束时,该函数会被调用。可以在该函数中编写代码来清理回测环境和进行最终的处理。

Files

此文件夹存放各种自定义文件,例如EA、指标、脚本等程序的配置文件。

Images

此文件夹存放定制MT4插件所需的图表、指标和其他图片,以及截图和一些程序缩略图。

Include

此文件夹用于存储头文件(.mqh)和mql4程序中需要的其他代码包含文件。如果是代码文件,通常包含定义变量、函数和常数的代码块,以及需要使用的库函数或自定义函数。

Indicators

此文件夹用于存储自定义指标,这些指标用于分析市场数据并提供交易信号。指标是一种用于分析市场价格行为和预测未来价格走势的工具,指标通常基于数学计算和统计模型,通过对历史价格数据进行分析,提供交易决策的支持。

  1. OnInit: 当指标被加载到图表上时,该函数被调用。通常在这个函数中初始化指标的参数、图表对象和其他必要的设置。

  2. OnCalculate: 当新的价格数据到达时,或者在指定的时间间隔内,该函数被调用。在这个函数中,可以编写指标的计算逻辑,根据最新的价格数据计算出指标的值。

  3. OnTimer: 当定时器触发时,该函数被调用。可以在这个函数中编写周期性任务的代码,例如定时更新指标值或执行其他与时间相关的操作。

  4. OnChartEvent: 当在指标窗口上发生事件(例如鼠标单击、拖动指标窗口等)时,该函数被调用。可以在这个函数中编写代码来响应指标窗口上的事件并执行相应的操作。

Libraries

此文件夹通常用来存储动态库,这些库可以被指标或EA共享。由于MT4中大部分函数是写死的,因此某些情况下要实现一些功能比较麻烦,因此在使用其他语言的动态库可能更加方便。(插一嘴,MT不支持指针,C++中的字符串和mq4的字符串并不一样,还有MT4是32位的。给出三条建议,第一条是创建动态库时不要弄错了,需要32位的,如果时MT5则可以选择64位的,第二条是在试图传递字符串时用字符数组来实现,第三条建议是目前官网提供的无论是MT4的setup还是MT5的setup最后安装的都是MT5,需要去一些交易商下载32位的MT4)。

Logs

此文件夹包含MT4客户端和服务器的日志记录文件,记录了MT4客户端和服务器的活动信息,如连接状态、错误消息、运行日志等。

Presets

此文件夹用于存储EA的一些预设参数,在EA交易中,可以根据不同的EA,创建自定义设置参数并保存预设值,以便重复利用,通常以.set 结尾。

Projects

此文件夹用来存储已经创建的交易系统和EA项目文件,通常包含有关交易策略、交易规则、指标设置和其他与交易相关的信息。

Scripts

此文件夹存放MT4脚本,可以执行特定的任务,例如开仓、平仓、修改订单等。可以将脚本拖放到图表上来快速执行,脚本只加载一次并只运行一次,然后就会退出。

这篇关于MT4目录结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981596

相关文章

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

PostgreSQL如何查询表结构和索引信息

《PostgreSQL如何查询表结构和索引信息》文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`d`元命令、系统数据字典查询以及使用可视化工具DBeaver... 目录前言使用\d元命令查看表字段信息和索引信息通过系统数据字典查询表结构通过系统数据字典查询索引信息查询所有的表名可

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目