常用MT4内置函数1

在 MQL4 编程中,MetaTrader 4 提供了大量的内置函数,用于处理交易、字符串操作、数组操作、时间管理等任务。以下是常用的内置函数的详细分类,尤其是字符串相关函数和订单相关函数会详细列举。


一、字符串相关内置函数

字符串操作在 MQL4 中非常重要,尤其是在处理订单信息、日志记录和与外部 API 交互时。以下是 MQL4 中常用的字符串相关函数:

1. 字符串处理函数

函数名 功能说明
StringLen(string str) 返回字符串的长度(字符个数)。
StringSubstr(string str, int start, int length) 提取子字符串,从 start 开始,长度为 length
StringFind(string str, string substr, int start_pos=0) 查找子字符串 substr 在字符串 str 中首次出现的位置,返回索引(从 0 开始)。
StringReplace(string str, string search, string replace) 将字符串 str 中的 search 替换为 replace,返回替换后的字符串。
StringTrimLeft(string str) 去除字符串左侧的空格。
StringTrimRight(string str) 去除字符串右侧的空格。
StringToUpper(string str) 将字符串转换为大写。
StringToLower(string str) 将字符串转换为小写。
StringFormat(string format, ...) 格式化字符串,类似于 printf,支持占位符(如 %s, %d, %.2f 等)。
StringToCharArray(string str, char &array[], int start=0, int count=WHOLE_ARRAY, int cp=SYSTEM_CP) 将字符串转换为字符数组,支持指定字符编码(如 UTF-8)。
CharArrayToString(const char &array[], int start=0, int count=WHOLE_ARRAY, int cp=SYSTEM_CP) 将字符数组转换为字符串,支持指定字符编码。
StringAdd(string str1, string str2) 将两个字符串拼接为一个字符串。

2. 字符编码相关函数

函数名 功能说明
StringToInteger(string str) 将字符串转换为整数。
StringToDouble(string str) 将字符串转换为浮点数。
IntegerToString(int value) 将整数转换为字符串。
DoubleToString(double value, int digits) 将浮点数转换为字符串,保留指定的小数位数。
StringToTime(string str) 将日期时间格式的字符串转换为 datetime 类型(如 "2023.03.08 12:34" 转换为时间戳)。
`TimeToString(datetime value, int mode=TIME_DATE TIME_MINUTES)` datetime 时间类型转换为字符串,支持不同格式(日期、时间、日期+时间)。

二、订单相关内置函数

MQL4 提供了一系列内置函数,用于处理订单的查询、修改、执行等操作。这些函数主要用于与交易服务器交互。

1. 订单查询函数

函数名 功能说明
OrdersTotal() 返回当前账户的活动订单总数(挂单和持仓)。
OrdersHistoryTotal() 返回当前账户的历史订单总数(已关闭订单)。
OrderSelect(int index, int select, int pool) 选择订单,index 为索引,select 指定选择方式(SELECT_BY_POSSELECT_BY_TICKET),pool 指定订单池(MODE_TRADESMODE_HISTORY)。
OrderTicket() 返回当前选择订单的票号(唯一标识符)。
OrderType() 返回当前选择订单的类型(OP_BUY, OP_SELL, OP_BUYLIMIT, OP_SELLLIMIT, 等)。
OrderSymbol() 返回当前选择订单的交易品种(如 EURUSD)。
OrderLots() 返回当前选择订单的手数。
OrderOpenPrice() 返回当前选择订单的开仓价格。
OrderClosePrice() 返回当前选择订单的平仓价格(历史订单)。
OrderStopLoss() 返回当前选择订单的止损价格。
OrderTakeProfit() 返回当前选择订单的止盈价格。
OrderOpenTime() 返回当前选择订单的开仓时间。
OrderCloseTime() 返回当前选择订单的平仓时间(历史订单)。
OrderProfit() 返回当前选择订单的利润(浮动盈亏)。
OrderSwap() 返回当前选择订单的隔夜利息(Swap)。
OrderCommission() 返回当前选择订单的佣金。
OrderMagicNumber() 返回当前选择订单的魔术号(EA 用于标识订单的数字)。
OrderComment() 返回当前选择订单的备注信息。
OrderExpiration() 返回当前选择订单的到期时间(仅适用于挂单)。

2. 订单交易函数

函数名 功能说明
OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) 开仓或挂单函数,用于发送订单到交易服务器。
OrderClose(int ticket, double lots, double price, int slippage, color arrow_color=CLR_NONE) 平仓函数,用于关闭指定订单。
OrderCloseBy(int ticket, int opposite, color arrow_color=CLR_NONE) 对锁仓订单进行平仓。
OrderModify(int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE) 修改订单的止损、止盈或挂单价格。
OrderDelete(int ticket) 删除挂单。

3. 订单类型常量

常量名 描述
OP_BUY 0 市价买单。
OP_SELL 1 市价卖单。
OP_BUYLIMIT 2 买入限价挂单。
OP_SELLLIMIT 3 卖出限价挂单。
OP_BUYSTOP 4 买入止损挂单。
OP_SELLSTOP 5 卖出止损挂单。

4. 订单池常量

常量名 描述
MODE_TRADES 0 当前活动订单池(挂单和持仓)。
MODE_HISTORY 1 历史订单池(已关闭订单)。

三、其他常用内置函数

1. 日志输出函数

函数名 功能说明
Print(...) 输出日志到终端日志窗口。支持多个参数。
PrintFormat(string format, ...) 格式化输出日志,类似于 printf
Alert(...) 弹出警告窗口,显示信息。
Comment(...) 在图表左上角显示注释信息。

2. 时间相关函数

函数名 功能说明
TimeCurrent() 返回当前服务器时间(datetime 类型)。
TimeLocal() 返回本地计算机时间(datetime 类型)。
TimeGMT() 返回当前 GMT 时间(datetime 类型)。
TimeDay(datetime time) 返回指定时间的日期(天)。
TimeHour(datetime time) 返回指定时间的小时。
TimeMinute(datetime time) 返回指定时间的分钟。

总结

  1. 字符串相关函数

    • 用于处理订单信息、日志记录、API 数据交互,常用的有 StringFormatStringToCharArrayStringReplace 等。
  2. 订单相关函数

    • 用于查询订单信息和执行交易操作,常用的有 OrdersTotalOrderSelectOrderSendOrderModify 等。
  3. 时间和日志函数

    • 用于记录系统运行时间和调试信息,常用的有 TimeCurrentPrintComment 等。

熟练掌握这些内置函数是编写高效 MQL4 程序的基础。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MT4(MetaTrader 4)除了订单相关的内置函数外,还提供了许多其他有价值的内置函数,这些函数涵盖了账户信...
    AI_Finance阅读 760评论 0 0
  • @编写时头部:例: property copyright "牛在汇上飞" 其中: // 表示后面是预处理语句。 ...
    牛在汇上飞阅读 7,166评论 0 2
  • MT4(MetaTrader 4)提供了一系列内置的订单相关函数,用于管理、查询和操作订单。这些函数主要用于处理交...
    AI_Finance阅读 984评论 0 0
  • MySQL 字符串函数 函数描述实例ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。返回 Cust...
    扎Zn了老Fe阅读 669评论 0 1
  • 1、系统内置函数1.查看系统自带的函数hive> show functions;2.显示自带的函数的用法hive>...
    我还不够强阅读 4,365评论 0 0