MT4 编程函数手册
MT4 编程函数手册
本文是一份MT4交易平台的编程函数手册,详细介绍了交易变量和各类内置函数(数值相关、数学相关、时间相关、订单管理、交易量与价格相关等)的使用方法。对于MT4平台的开发者和交易员来说,本文具有较高的参考价值。
交易变量
为了最大方便用户,交易中的一些变量可以从智能系统输入。
- AccountNumber - 账号(同义词:AccNum)
- Ask - 卖价(买方出价)
- Balance - 交易账户的余额值
- Bars - 图表上条形的数目,说明用数据填充图表程度的非常重要的一个变量
- Bid - 买入价(卖方要价)
- Close - 收盘价格
- Credit - 信用优先
- Equity - 账户状况,包括未实现利润
- FreeMargin - 交易账户的自由保证金值(也用来核查账户资金的可用性)
- High - 期间最高价位
- Low - 期间最低价位
- Margin - 用来支撑开仓部位的资金(保证金)
- Open - 开盘价
- Point - 当前金融工具单点上的价值,例如,USD/JPY - 0.01,USD/CHF - 0.0001 等
- PriceAsk - 在市场观测窗口上显示的当前卖价
- PriceBid - 在市场观测窗口上显示的当前买价
- PriceHigh - 当前24小时期间的最高买价
- PriceLow - 当前24小时期间的最高卖价
- PriceTime - 在市场观测窗口上显示的当前时间
- Time - 价格图表上的条形时间的基准时间
- TotalProfit - 所有开仓部位的总未实现利润
- TotalTrades - 开仓部位的总数和交易中断上的延迟订单
- Volume - 交易量(期间交易的数目)
注意:
Close,Open,High,Low,Volume,Time为历史数据数组 (series arrays),在上个交易期间允许进入这些数据。
内置函数
数值相关函数
Abs - 返回数值的绝对值(模块)
语法:
Abs(表达式)参数:数值
Ceil - 返回最小接近整数,且大于或等于特定数值
语法:
Ceil(表达式)参数:数值
Floor - 返回最大接近整数,且小于或等于特定数值
语法:
Floor(表达式)参数:数值
Round - 返回最接近整数的特定数值
语法:
Round(表达式)参数:数值
Sqrt - 返回特定正数值的平方根
语法:
Sqrt(表达式)参数:正数值
数学相关函数
Cos - 返回数值的余弦值(弧度表示)
语法:
Cos(表达式)参数:数值
Sin - 返回数值的正弦值(弧度表示)
语法:
Sin(表达式)参数:数值
Tan - 返回数值的正切值(弧度表示)
语法:
Tan(表达式)参数:数值
Exp - 返回数值的指数
语法:
Exp(表达式)参数:数值
Log - 返回数值的对数(以自然对数为基)
语法:
Log(表达式)参数:正数值
时间相关函数
CurTime - 返回从1970年1月1日起所经过的秒数
语法:
CurTime()返回值:自1970年1月1日起经过的秒数
TimeToStr - 返回带有“yyyy.mm.dd hh:mi”格式的文本串
语法:
TimeToStr(时间)参数:正数值(时间戳)
Year - 返回当前年份
语法:
Year()返回值:当前年份
Day - 返回当月当前日序列号
语法:
Day()返回值:当前日期序列号
DayOfWeek - 返回当周当前日序列号(1 – 星期日,2 – 星期一,...,7 – 星期六)
语法:
DayOfWeek()返回值:当前星期序列号
Hour - 返回当前小时的序列数(24小时制)
语法:
Hour()返回值:当前小时序列数
订单管理函数
SetOrder - 用于开仓或设定延迟订单的主函数
语法:
SetOrder(操作、单位、价格、滑动、止损、获利、色彩)参数:
operation- 操作类型,可以取下列值:OP_BUY(开始购买部位),OP_SELL(开始出售部位),OP_BUYLIMIT,OP_SELLLIMIT,OP_BUYSTOP,OP_SELLSTOP(提交延迟订单)lots- 单位数price- 交易优先收盘价slippage- 最大价格滑动stoploss- 止损水平线takeprofit- 获利水平线color- 图表上箭头的色彩CloseOrder - 收盘头寸(部位)
语法:
CloseOrder(订单、单位、价格、滑动量、色彩)参数:
order- 开仓部位的订单数lots- 单位数price- 优先收盘价slippage- 最大价格滑动color- 图表上交叉点的色彩DeleteOrder - 删除前期提交的延迟订单
语法:
DeleteOrder(订单)参数:订单数
交易量与价格相关函数
Highest - 返回期间特定数间的最大值(Open, Low, High, Close 或 Volume)
语法:
Highest(类型、beginbar、期间)参数:
type- 选择计算的变量,取值:MODE_OPEN,MODE_LOW,MODE_HIGH,MODE_CLOSE,MODE_VOLUMEbeginbar- 表示条形的转换,与当前条形有关periods- 计算执行依据的期间数Lowest - 返回期间特定数间的最小值(Open, Low, High, Close 或 Volume)
语法:
Lowest(类型、beginbar、期间)参数:
type- 选择计算的变量,取值:MODE_OPEN,MODE_LOW,MODE_HIGH,MODE_CLOSE,MODE_VOLUMEbeginbar- 表示条形的转换,与当前条形有关periods- 计算执行依据的期间数Minute - 返回当前小时的分钟序列数
语法:
Minute()返回值:当前分钟序列数
Mod - 返回两个数值相除的余数
语法:
Mod(表达式1,表达式2)参数:数值1、数值2
Lowest - 特定期间返回开仓、低、收盘或交易量的最小值(依据"类型"参数而定)
语法:
Lowest(类型、beginbar、期间)参数:
type- 返回的变量类型,可以是:MODE_OPEN、MODE_LOW、MODE_HIGH、MODE_CLOSE、MODE_VOLUME。beginbar- 表示条形的转换,基于当前条形并从其中取值。periods- 计算所依据的期间数。Minute - 返回当前小时的分钟序列数
语法:
Minute()返回值:当前小时内的分钟序列数。
Mod - 返回代表着一个接着一个的数值的整数
语法:
Mod(数值1, 数值2)参数:
数值1- 第一个数值。数值2- 第二个数值。ModifyOrder - 修改前期开仓部位或延迟订单的特征
语法:
ModifyOrder(订单、价格、止损、获利、色彩)参数:
order- 开仓或延迟部位的数目或订单。price- 新的价格(仅适用于延迟部位)。stoploss- 新的止损水平。takeprofit- 新的获利水平。color- 图表上交叉点的颜色。Month - 返回当前月的序列号
语法:
Month()返回值:当前月的序列号。
MoveObject - 移动或创建命名对象
语法:
MoveObject(名称、类型、时间、价格、时间2、价格2)参数:
name- 对象名称。type- 对象类型,可以是:OBJ_HLINE(水平线)、OBJ_VLINE(垂直线)、OBJ_TRENDLINE(趋势线)、OBJ_SYMBOL(设定象形图)、OBJ_TEXT(文本串)。time- 参照图表第一时间。price- 参照图表第一价格。time2- 参照图表第二时间。price2- 参照图表第二价格。NumberToStr - 返回特定数值转换成特定准确格式的文本串
语法:
NumberToStr(数字、准确性)参数:
number- 特定数值。precision- 十进位的精度,决定小数点后的位数。OrderValue - 返回订单特定价值之一
语法:
OrderValue(部位、模式)参数:
position- 交易终端列表的订单头寸部位,从1开始。mode- 返回的数据类型,可以是:VAL_TICKET(订单号)、VAL_OPENTIME(开盘时间)、VAL_TYPE(订单类型)、VAL_LOTS(单位数)、VAL_SYMBOL(工具名称)、VAL_OPENPRICE(开盘价)、VAL_STOPLOSS(止损水平)、VAL_TAKEPROFIT(获利水平)、VAL_CLOSEPRICE(收盘价)、VAL_COMMISSION(委托交易量)、VAL_SWAP(部位展期的展期费用)、VAL_PROFIT(交易利润)、VAL_COMMENT(订单注释)、VAL_CLOSETIME(订单收盘时间)。Ord - 和
OrderValue完全相同Period - 返回界定的已用期间分钟数
语法:
Period()返回值:已用的期间分钟数。
Pow - 返回由
nBaseExpression数值提高到nExponentExpression倍数而产生的数值语法:
Pow( nBaseExpression, nExponentExpression )参数:
nBaseExpression- 基数数值。nExponentExpression- 指数数值。Print - 打印由用户在系统日志中界定的数据
语法:
Print(...)参数:任何非零数都可以。
PrintTrade - 存储日志中特殊部位的细节
语法:
PrintTrade(部位)参数:
部位- 交易终端中已开仓部位的数字。Rand - 返回一个伪随机数字
语法:
Rand()返回值:一个生成的伪随机数字。
Round - 返回代表最接近整数的特定数值
语法:
Round(数值)参数:一个数值。
ServerAddress - 返回服务器IP地址
语法:
ServerAddress()返回值:服务器的IP地址。
SetArrow - 设置图表绘图标志
语法:
SetArrow(时间、价格、标志、色彩)参数:
time- 参照图表第一时间。price- 参照图表第一价格。symbol- 从Wingdings字体设定标志的数值。color- 图表颜色。SetObjectText - 指定文本串到特定的对象
语法:
SetObjectText(名称、文本、字体、尺寸、颜色)参数:
name- 对象名称。text- 特定文本。font- 字体名称。size- 字体大小。color- 文本颜色。SetOrder - 用于开仓或设定延迟订单的主函数
语法:
SetOrder(操作、单位、价格、滑动、止损、获利、色彩)参数:
operation- 操作类型,可以取下列值:OP_BUY(开始购买部位)、OP_SELL(开始出售部位)、OP_BUYLIMIT、OP_SELLLIMIT、OP_BUYSTOP、OP_SELLSTOP(提交延迟订单)。lots- 单位数。price- 交易优先收盘价。slippage- 最大价格滑动。stoploss- 止损水平。takeprofit- 获利水平。color- 图表上的箭头颜色。SetText - 将图表中的文本创放到特定位置
语法:
SetText(时间、价格、字符串、色彩)参数:
time- 参照图表的第一时间。price- 参照图表的第一价格。string- 文本串。color- 文本颜色。Sin - 计算并返回代表弧度角度的正弦值
语法:
Sin(数值)参数:一个数值。
Sqrt - 计算并返回特定正数值的平方根
语法:
Sqrt(数值)参数:正数值。
Srand - 设置伪随机数字发生器到初始状态
语法:
Srand(时间)参数:正数值,通常为时间函数返回的值。
Symbol - 返回智能交易系统运行的金融工具名称的文本串
语法:
Symbol()返回值:当前运行的金融工具的名称。
Tan - 计算并返回代表角度弧度的正切数值
语法:
Tan(数值)参数:一个数值。
TimeToStr - 返回带有"yyyy.mm.dd hh:mi" 类型的文本串
语法:
TimeToStr(时间)参数:一个时间戳,表示自1970年1月1日起经过的秒数。
Year - 返回当前年份
语法:
Year()返回值:当前年份。