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_VOLUME
beginbar
- 表示条形的转换,与当前条形有关periods
- 计算执行依据的期间数Lowest - 返回期间特定数间的最小值(Open, Low, High, Close 或 Volume)
语法:
Lowest(类型、beginbar、期间)
参数:
type
- 选择计算的变量,取值:MODE_OPEN
,MODE_LOW
,MODE_HIGH
,MODE_CLOSE
,MODE_VOLUME
beginbar
- 表示条形的转换,与当前条形有关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()
返回值:当前年份。