本文主要是介绍MT4目录结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Experts
该文件夹包含用户编写的EA程序代码文件。可以自动将用户编写的交易策略应用到行情中,其中后缀名为mq4的是源代码,后缀名为ex4的是可执行文件。
EA:Expert Advisors,译为专家顾问,通俗的来说,就是用机器代替人监听行情,并针对行情应用交易策略,自动执行做多、做空的操作。由程序员借助一门计算机编程语言(mq4),编写交易指令,预设好某个情境下的操作,实现机器自动进行交易。
优点:
- 自动化交易:无需人工干预,消除了情绪因素对交易的影响,并且可以在没有人类干预的情况下全天候的交易;
- 严格执行策略:按照预设的交易策略执行交易,不会受到人类情绪波动和主观判断的影响,保证了交易策略的纪律性和一致性;
- 快速响应市场:EA可以实时检测市场变化并立即做出反应,快速执行交易操作,更容易捕捉到市场的瞬时机会;
- 减少认为错误:避免人为错误,如误操作、拖延等;
- 后测和优化:可以通过回测功能对EA进行历史数据的模拟测试,评估交易策略的变现并进行优化,提高盈利能力。
缺点:
- 机械化限制:EA只能按照预设的策略进行交易,缺乏人类交易者的灵活性和判断力,有可能无法适应市场的变化和突发情况;
- 依赖性能稳定性:EA的运行依赖于交易平台和计算机系统的稳定性和可靠性,如果系统出现故障或网络断线,可能导致交易失败或者损失;
- 过度优化风险:对EA进行过度优化可能导致过度拟合历史数据,使其表现在实际交易中的表现不如预期,甚至导致损失;
- 无法适应新情况:由于EA通常基于历史数据和固定的交易策略进行交易,对于 新的市场情况或者突发事件可能无法及时做出合适的调整;
- 需要技术知识:开发和优化EA需要一定的编程和金融市场知识,对于普通投资者来说,可能需要花费大量时间和精力才能掌握;
-
onTrade: 当交易操作(如开仓、平仓、修改订单等)发生时,该函数会被调用。可以在该函数中编写相应的代码来处理交易操作的结果和执行相关的逻辑。
-
OnTradeTransaction: 当交易事务(如交易记录、订单状态变化等)发生时,该函数会被调用。可以在该函数中编写代码来监控交易事务并执行相应的操作。
-
OnTimer: 当定时器触发时,该函数会被调用。可以在该函数中编写代码来执行周期性任务,例如定时更新指标、检查市场条件等。
-
OnChartEvent: 当在图表上发生事件(如鼠标单击、拖动图表等)时,该函数会被调用。可以在该函数中编写代码来响应图表事件并执行相应的操作。
-
OnBookEvent: 当市场深度数据发生变化时,该函数会被调用。可以在该函数中编写代码来处理市场深度数据变化的情况。
-
OnTester: 当在回测期间执行交易测试时,该函数会被调用。可以在该函数中编写代码来处理回测过程中的事件和情况。
-
OnTesterInit: 当开始进行交易策略的回测时,该函数会被调用。可以在该函数中编写代码来初始化回测环境和设置回测参数。
-
OnTesterPass: 当回测过程中每一次交易的测试通过时,该函数会被调用。可以在该函数中编写代码来处理每一次交易测试通过的情况。
-
OnTesterDeinit: 当交易策略的回测结束时,该函数会被调用。可以在该函数中编写代码来清理回测环境和进行最终的处理。
Files
此文件夹存放各种自定义文件,例如EA、指标、脚本等程序的配置文件。
Images
此文件夹存放定制MT4插件所需的图表、指标和其他图片,以及截图和一些程序缩略图。
Include
此文件夹用于存储头文件(.mqh)和mql4程序中需要的其他代码包含文件。如果是代码文件,通常包含定义变量、函数和常数的代码块,以及需要使用的库函数或自定义函数。
Indicators
此文件夹用于存储自定义指标,这些指标用于分析市场数据并提供交易信号。指标是一种用于分析市场价格行为和预测未来价格走势的工具,指标通常基于数学计算和统计模型,通过对历史价格数据进行分析,提供交易决策的支持。
-
OnInit: 当指标被加载到图表上时,该函数被调用。通常在这个函数中初始化指标的参数、图表对象和其他必要的设置。
-
OnCalculate: 当新的价格数据到达时,或者在指定的时间间隔内,该函数被调用。在这个函数中,可以编写指标的计算逻辑,根据最新的价格数据计算出指标的值。
-
OnTimer: 当定时器触发时,该函数被调用。可以在这个函数中编写周期性任务的代码,例如定时更新指标值或执行其他与时间相关的操作。
-
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目录结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!