4.4. 内置函数


MetaQuotes 4语言提供许多功能,可用于多种多样的场合。这些包括技术指标、交易功能、时间功能、数学和三角函数功能、数据转换和输出函数,等。 


 Abs –返回这个数值的绝对值(模块)

语法:Abs函数 (n个表达式)

参数: 数值


 AccountName – 返回包含用户名的文本串 (同义词:AccName )

 Alert –产生包含用户定义数据的对话屏

语法: Alert(...) 

参数的任何非零数都可能。


 Ceil – 返回代表最小接近整数的一个数字,它等于或大于特定的数值。

语法:Ceil( n个表达式 )


参数:数值


CloseOrder –收盘头寸(部位)

语法:收盘头寸(订单、单位、价格、滑动量、色彩)

Parameters: 参数: 

 order -开仓部位的订单数

 lots – 单位数

price –优先收盘价

 slippage –最大价格滑动值

 color – 图表上交叉点的色彩

 Comment –在图表的左上角产生的用户定义数据

语法: Comment(...)


参数的任何非零数都可能。

 Cos –计算和返回数值的余弦值,代表用弧度表示的角度。 

语法: Cos( n分表达式 )

参数:数值


 CurTime –返回从1970年元月1日起所经过的秒数。 


 Day – 返回当月当前日序列号

 DayOfWeek –返回当周当前日序列号。1 – 星期日, 2 – 星期一, ... , 7 – 星期六


 DeleteOrder –删除前期提交的延迟订单

语法:DeleteOrder( 订单 ) 

参数: 订单-延迟部位的订单数


 Exp – 返回代表特定数值指数的一个数目

语法:  Exp( n个表达式)

参数:数值


 Floor –返回代表最大接近整数的一个数字,它等于或小于特定的数值。

语法: Floor( n个表达式)

参数:数值


Highest – 返回期间特定数间的 Open, Low, High, Close or Volume (取决于“类型”参数)的最大值。 

语法: Highest( 类型、beginbar、期间 )

Parameters: 参数: 

Type 类型 – 一个返回变量,可能去下列数值: MODE_OPEN, MODE_LOW, MODE_HIGH, MODE_CLOSE, MODE_VOLUMEbeginbar –表示条形的转换,与当前条形有关,并从中取值。

periods期间 – 计算执行依据的期间数


Hour –返回在24小时期间内当前小时的序列数。

iADX -平均指导动作目录


语法:iADX( 期间、模式、转换)

参数:

period – 计算的期间数;

mode – 数据类型,可以取下列数值:MODE_MAIN(主要指标)、MODE_PLUSDI(line +DI), MODE_MINUSDI(line -DI).

shift – 与当前条形有关的转换 (后退期间数),为数据待取值的依据。


iATR - 平均间距的指标

语法:iATR( 期间、转换)

参数:

period – 计算期间数;

shift – 与当前条形(后退期间数)相关的转换,为数据待取值的依据。



平均移动收敛/发散指标(iBANDS –– 布林带指数

语法: iBANDS(期间,误差,模式,转换)

参数:

period – 计算的期间数;

deviation -误差;

mode – 可以取下列值: MODE_MAIN(主线、滑移)、 MODE_LOW(下边线), MODE_HIGH(上边线).

shift – 与当前条形(后退期间数)相关的转换,为数据待取值的依据。

iCCI – 交易通道指标

语法: iCCI(期间、转换)

参数:

period – 计算的期间数

shift – 与当前条形(后退期间数)相关的转换,为数据待取值的依据。

 iMA – 移动平均指标

语法: iMA( 期间、模式、转换)

参数:

period – 计算的期间数

mode – 计算模式,可以取下列值: MODE_SMA, MODE_EMA, MODE_WMA.

shift – 与当前条形(后退期间数)相关的转换,为数据待取值的依据。

iMACD -平均移动收敛/发散指标


语法: iMACD( fast_ema_period, slow_ema_period, signal_period, mode, shift )

参数:

fast_ema_period -计算’快’ 平均移动期间(通常12);

slow_ema_period - number of periods for calculation of the ’slow’ moving average (usually 26);

signal_period计算’慢’ 平均移动期间(通常12);

mode 数据源,可以取下列值:MODE_MAIN (主要指标)、MODE_SIGNAL (信号列);

shift -与当前条形(后退期间数)相关的转换,为数据待取值的依据。


 iMFI – 现金流量指标

语法: iMFI( 期间、转换)

参数:

period – 计算期间数;

shift – 与当前条形(后退期间数)相关的转换,为数据待取值的依据。


iMOM – 动量指标

语法:iMOM( 期间、转换)

参数:

period – 计算期间数;

shift – 与当前条形(后退期间数)相关的转换,为数据待取值的依据。


iRSI – 相对强弱指标

语法:iRSI(期间、转换)

参数:

期间 – 计算期间数;

iSAR -抛物线

语法: iSAR(步骤,最大值,转换)


参数:

步骤-增量,通常是0.02;

最大值 – 最大值, 通常是0.02; 


iSTO - "随机振荡"指标


语法: iSTO( %K期间、 %D期间、 慢、方法、模式、转换)

参数:

%Kperiod - %K线期间;

%Dperiod - %D线期间;

slowing – 慢值;

method – 计算方法,取下列值: MODE_SMA (简单平均)、MODE_EMA (指数值)、 MODE_WMA (权重值);

mode – 数据源,可以取下列值: MODE_MAIN (主指标线), MODE_SIGNAL (信号指标线);

shift -与当前条形(后退期间数)相关的转换,为数据待取值的依据。



 iWPR -威廉氏百分数范围指标

语法:iWPR( 期间、转换)

参数:

期间 – 计算期间数;

shift – 与当前条形(后退期间数)相关的转换,为数据待取值的依据。

IsDemo – 如果智能交易系统系统在试用帐户运行,返回逻辑值,否则会返回错误值.

IsIndirect –如果使用反向方式对特定工具进行计算,会返回正确的逻辑值,否则会返回错误值。

LastTradeTime –返回代表最近交易执行时间的一个数字(SetOrder, DelOrder, CloseOrder, ModifyOrder),计算从1970年元月1日0点经过的秒钟数。


Log (-特定正数值的对数


语法:日志( n个表达式)


参数: 正数值

Lowest - 特定期间返回开仓,低,高,收盘或交易量最小值(依据"类型"参数而定) ...returns 

语法:最低点(类型、beginbar、 期间)

参数:

type – 可以取下列值: MODE_OPEN, MODE_LOW, MODE_HIGH, MODE_CLOSE, MODE_VOLUME


beginbar –表示条形的转换,与当前条形有关,并从中取值。

periods期间 – 计算执行依据的期间数


Minute –返回当前小时的分钟序列数。 


Mod -返回代表着一个接着一个的数值的整数

语法:Mod( n个表达式1, n个表达式2)


参数: 数值1、数值2



 ModifyOrder –前期开仓部位或延迟订单修改的特征

语法:ModifyOrder( 订单、价格、止损、获利、色彩)

参数:

order – 开仓或延迟部位的数目或订单;

price – 新的价格 (仅适用于延迟部位!);

stoploss – 新的止损水平线;

takeprofit – 新的获利水平线;

color – 图表上象形图 的色彩


Month –返回当前月的续列号


 MoveObject –移动或建立命名对象

语法:MoveObject( 名称、类型、时间、价格、 时间2、时间2)

参数:

name – 文本串形式的名称;

type – 对象类型,可以取下列值:OBJ_HLINE (水平线)、 OBJ_VLINE (垂直线), OBJ_TRENDLINE (趋势线)、 OBJ_SYMBOL (设定象形图)、 OBJ_TEXT (文本串);

time – 参照图表第一时间;

price -参照图表第一价格;

time2 -参照图表第二时间;

price2 -参照图表第二时间


 NumberToStr – 返回特定数值转换成特定准确格式的文本串。通过在十进位点数之后的其他4个数产生的数值的函数。

语法: 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_COMISSION (委托交易量), VAL_SWAP (部位展期的展期费用数额), VAL_PROFIT (交易利润数), VAL_COMMENT (以文本串形式对特殊部位的注解), VAL_CLOSETIME (订单收盘时间)。


Ord –和OrderValue完全相同。


 Period –返回界定的已用期间分钟数


 Pow – 返回由nBaseExpression数值提高到nExponentExpression 倍数而产生的数值,参见参数。

语法:Pow( nBaseExpression, nExponentExpression )

参数:数值1、数值2。 


Print – 打印由用户在系统日志里界定的数据。


语法: Print(...)


参数的任何非零数均可能。


 PrintTrade – 存储日志中特殊部位的细节

语法: PrintTrade( 部位 )

参数:部位 – 在交易终端里已开仓部位数字


 Rand –返回一个产生的伪随机数字。在使用此函数之前,伪随机数字发生器应用Srand函数调整到初始状态。 如果伪随机数字发生器不用,就在启动程序时一次调整到初始状态。


 Round – 返回代表最接近整数的特定数值

语法: Round( n个表达式)

参数: 一个数值

 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 - OP_BUY 和OP_SELL操作的最大价格滑动;

stoploss – 止损水平线;

takeprofit – 获利水平线;

color – 当提取函数时,图表上箭头的色彩


 SetText –把图表种的文本创放到特定的位置

语法:SetText( 时间、价格、字符串、色彩 )

参数:

time -参照图表第一时间;

price -参照图表第一价格;

string – 文本串;

color – 文本色彩


Sin -计算并返回代表弧度角度的数值

语法:Sin( n个表达式)

参数: 数值

 Sqrt -计算和返回特定正数值的平方根

语法:  Sqrt( n个表达式 )

参数: 正数值


 Srand – 设定伪随机数字发生器到初始状态。如果使用发生器,将其在启动程序时一次性设置到初始状态。 初始设置所用的最佳值就是时间函数回归的数字-在此情况下,产生顺序的随机性就增大。

语法:Srand( 时间)

参数: 正数值

 Symbol –返回智能交易系统运行的金融工具名称的文本串。


Tan -计算并返回代表角度弧度的正切数值。


语法: Tan( n个表达式)

参数: 数值


TimeToStr – 返回带有"yyyy.mm.dd hh:mi" 类型的文本串,由代表经过1970元月1日起的秒钟数的特定数值。


语法: TimeToStr( 时间)

参数: 正数值


 Year – 返回当年数。