14评论

0收藏

外汇智能交易MQL4语言教程(五)

avatar EA狙击手 | 4121 人阅读 | 14 人评论 | 2012-11-13

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 – 返回当年数。

""
还没有人打赏,支持一下

评论|共 14 个

西点

发表于 2012-11-13 22:17:17 | 显示全部楼层

有空一起交流一下  

fxsin8.7

发表于 2012-11-13 22:17:17 | 显示全部楼层

看贴回复是好习惯  

fuckqq

发表于 2012-11-13 22:17:17 | 显示全部楼层

呵呵 那就好好玩吧~~~~  

西点

发表于 2012-11-14 11:01:57 | 显示全部楼层

看看..  

fxopen

发表于 2012-11-14 11:01:57 | 显示全部楼层

顶下再看  

西点

发表于 2012-11-14 11:01:57 | 显示全部楼层

我有个EA,收费的,看哪个能破解  

爱秀

发表于 2012-11-14 11:01:57 | 显示全部楼层

留个脚印```````  

爱拼才会赢

发表于 2013-7-12 11:10:03 | 显示全部楼层

谢谢分享

借烟不戒烟

发表于 2013-8-2 21:22:44 | 显示全部楼层

楼主大人,可以请教个问题吗?
我写了这样的一个开单脚本,但是为什么日志显示removed  在FXDD平台测试的
int start()
  {
OrderSend(Symbol(),OP_BUY,1,Ask,30,0,0,"buy",1,0,White);
  }

您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则