|
- 什么是智能交易系统?它是一个用特殊的MetaQuotes 语言 4 (MQL 4)编写的自动交易系统(ATS),和特定的图表联系在一起。智能交易系统不仅能通知交易商交易机会,而且还能自动执行交易账户上的交易,直接发送到交易服务器。和许多的IT系统一样,智能交易系统系统支持历史数据战略测试,图表上表示的登入/登出点。而且,智能交易系统的可执行码分别存储于源文件和加密的执行文件中-这种安排保证了交易商所使用的逻辑隐藏(如有必要的话),而不会泄密。
-
- MetaTrader4 软件将智能交易系统在程序的根目录/Experts 子目录里保存为*.MQ4(source text) 和 *.EX4 (可执行码)文件。交易商可以无限量地保存智能交易系统数据,这些数据可以通过导航条窗口容易地加以管理。
-
- 创建自定义智能交易系统数据的程序以及将数据和交易终端连接在MetaTrader4 用户指南里有详细的描述。
-
- MetaQuotes 4 语言是用来编写自定义智能交易系统软件,以便使交易程序管理自动化以及执行交易商自己的交易策略。MetaQuotes 4 语言易学、易用、易创建。MetaQuotes 4 语言包括相当数量的变量,用来控制当前和前期的报价、主要的算术和逻辑运算和特征,主要的内置指标和用来开启和控制头寸的命令。在语法上,该语言和由TradeStation 技术有限公司开发的简易语言相似,但是它有其自身的一些具体特征。
- 程序代码是用MetaEditor4编辑器编写的,它能够用不同的色彩集中反映MQL 4语言的不同结构,因此,有助于用户熟悉专家系统的文本。 注解开始于//符号(双斜线)。注解也可以用“斜线-星号”-“星号-斜线”组合(, 就像在 "C"编程语言一样)。
-
- 设定和控制操作战略,交易商保存一份日志文件,存储产生的信号信息、变量输出和已执行交易的结果。智能交易系统日志保存在MetaTrader4 目录下/logs/YYYYMMDD.log 文件里。当前的日志可以从下方的“终端”窗口(日志标签)直接进入。
-
- 进入MQL 4语言的目录系统,要么按目录按钮或从工具菜单打开MetaQuotes语言词典窗口操作。这个教程包含分类、运算、存储词语等功能,使得用户对该语言所用到的每个元素都有所了解。
-
- 1. 主要语言结构
-
- 像其他任何语言一样,MQL4有一套构成基本结构的主要组成元素。这些组成元素以一种特殊的方式组合排列的,以便代表适当的陈述和表达。
-
- 语言的主要对象就是数据,包括三种类型:数字、逻辑和排列。 所有的数值均采用双格式,逻辑数据可能包括真值和假值。排列就是用省略号标注的一系列字符。字符串也叫做文本串。数据可以包含在适当类型的变量之中,或直接由程序的源文本表现出来。
-
- 一个MetaQuotes 语言陈述指一个完整的用法说明。陈述可以包括保留字、运算符号、数据、变量、表达式或标点符号,而且总是以分号结尾。
-
- 保留字指具有特定或特别意义的预先设定的词语。
- 运算符号指在数据、变量和(或)表达式中特定的具体运算符号。
- 变量是用来限制数字、排列或逻辑数据的。
- 表达式指保留字、变量、数据和运算符号的组合,因为它们具有语言的3中类型(保留字、变量、数据)中的任一价值。
- 标点符号用来代表表达式,界定参数,区分词语或重新排列计算顺序。
-
- 2. 标点符号
- 字符
- 名称
- 描述
- ;
- 分号
- 结束MetaQuotes 4语言指令
- ( )
- 圆括号
- 对表达式的值进行分组,改变计算顺序。
- 标注函数参数并启动变量描述表达式
- 标注变量的初始值并在变量描述区排列组合
- ,
- 逗号
- 提取函数值时,对参数进行区分
- 在变量描述区对变量进行区分
- 在描述排列长度时对数字进行区分
- 区分进入排列元素的指标
- :
- 冒号
- 用在变量描述区,启动变量列表
- " "
- 引号
- 标注一个文本(字)串。
- [ ]
- 方括号
- 标注数字,确定排列长度
- 标注进入某个特殊排列元素的数字(指数)
- 标注进入历史数据的期间数字
- { }
- 波形括号
- 充当运算括号。可以用来代替 begin...end。将指令系列隔离成块。
- 注解括号
- 标注注解
- //
- 双斜线
- 明确说明单串注解的开始
-
-
- 3. 运算符号
-
- 运算符号分成5 组:分配符号、字串符号、数学运算符号、相关符号和逻辑符号。
-
- 3.1. 分配符号
-
- 分配符号'='(等号)是用来将具体数值(数字、排列或逻辑,视变量类型而定)分配到变量中。分配值可以是表达式的结果。比如:
- 变量: Counter(0);
- ...
- Counter = Counter + 1;结果,反向变量取值为1。变量值也可以分配来对元素进行排列。
-
- 3.2. 字串符号
-
- 操作文本串,只有一个运算符可以用上: '+' (加号)。 它是用来连接两个字串的。比如:
- 变量: 字串(" ");
- ...
- 字串 = "some_" + "text";
- 结果,字串变量包含“some_text”这样的文本串,允许将字串与数字和逻辑值结合起来。在后面的这个例子里,数字及或逻辑值在结合前,应转化为字串类型。比如:
- String = "string" + 1;
- 因此,字串变量将包含"string1"的文本串。
- 操作数不仅可以是数值,也可以是相应的含有这样数值类型的变量,以及表达式,经执行后,便产生这样的数值。
-
- 3.3. 数学符号
- 4种主要的数学运算:加法- '+' (加号)、减法-'-' (减号)、乘法-'*' (星号)、除法-'/' (斜线),都用在计算数值的数学表达式里。
- 数学表达式的例子:( Ask + Bid ) / 2 , High[1] + 20 * Point
-
- 3.4. 相关符号
- 相关符号用来对同种类型的两个数值进行比较。 第一个数值和第二个数值进行比较,产生逻辑值“真值”或“假值”, “小于”-'<' (左小于号), “大于”-'>' (右小于号);“等于”-'=' (等号);“不等于”-'<>'; “小于或等于”-'<='; “大于或等于”-'>='。由相关表达式而取得的逻辑值用在MetaQuotes II语言的控制结构里。比如:
-
- if FreeMargin < 1000 then exit; 这个字串按词典顺序进行比较,即,"aaa" 字串被认为小于字串 "zzz"。当逻辑值进行比较时,我们应该牢记:“True”的逻辑值的数值为1,而“False”的逻辑值的数值为“0”。
-
- 3.5. 逻辑符号
- 逻辑符号使用户能够将逻辑值结合起来。逻辑OR - '|' (垂直线或竖杠);逻辑AND-'&' (“和”符号)。逻辑符号有相应的保留字OR, AND, NOT。 比如:
- If FreeMargin > 100 and FreeMargin < 1000 then print( "Free margin is ", FreeMargin );注意:当OR 和 AND运算符号是双值时,即它们有两个值进行运算,NOT运算符号是单值,即它之适用于单值。比如:
- Variable: Condition1( True );
- ...
- Condition1 = FreeMargin >= 1000;
- If not Condition1 then exit;
- 下面是逻辑运算符号的结果表:
- Value1
- Value2
- Value1 OR Value2
- True
- True
- True
- True
- False
- True
- False
- True
- True
- False
- False
- False
- Value1
- Value2
- Value1 AND Value2
- True
- True
- True
- True
- False
- False
- False
- True
- False
- False
- False
- False
- Value1
-
- NOT Value1
- True
-
- False
- False
-
- True
-
- 4.固定字
- MetaQuotes 4 语言使用下面的几组固定字。
- 1. 逻辑符号。
- AND, NOT, OR.
- 2. MQL 4语言指令。
- Array, Begin, Break, Continue, Define, Downto, Else, End, Exit, For, If, Input, Then, To, Variable, While。界定语言指令结构的固定字也叫做关键字。
- 3. 内置函数。
- Abs, AccName, AccountName, Alert, Ceil, CloseOrder, Comment, Cos, CurTime, Day, DayOfWeek, DeleteOrder, Exp, Floor, Highest, Hour, iADX, iATR, iBANDS, iCCI, iMA, iMACD, iMFI, iMOM, iRSI, iSAR, iSTO, iWPR, IsDemo, IsIndirect, LastTradeTime, Log, Lowest, Minute, Mod, ModifyOrder, Month, MoveObject, NumberToStr, Ord, OrderValue, Period, Pow, Print, PrintTrade, Rand, Round, ServerAddress, SetArrow, SetObjectText, SetOrder, SetText, Sin, Sqrt, Srand, Symbol, Tan, TimeToStr, Year.
- 4. 预先设定用户变量(用户定义变量)。
- Lots, StopLoss, TakeProfit, TrailingStop.
- 5. 预先设定交易终端变量。
- AccNum, AccountNumber, Ask, Balance, Bars, Bid, Close, Credit, Equity, FreeMargin, High, Low, Margin, Open, Point, PriceAsk, PriceBid, PriceHigh, PriceLow, PriceTime, Time, TotalProfit, TotalTrades, Volume.
- 6. 预先设定内置函数参数(宏命令)。
- MODE_CLOSE, MODE_EMA, MODE_HIGH, MODE_LOW, MODE_MAIN, MODE_MINUSDI, MODE_OPEN, MODE_PLUSDI, MODE_SIGNAL, MODE_SMA, MODE_STOPLOSS, MODE_TAKEPROFIT, MODE_VOLUME, MODE_WMA, OBJ_HLINE, OBJ_SYMBOL, OBJ_TEXT, OBJ_TRENDLINE, OBJ_VLINE, OP_BUY, OP_BUYLIMIT, OP_BUYSTOP, OP_SELL, OP_SELLLIMIT, OP_SELLSTOP, SYMBOL_ARROWDOWN, SYMBOL_ARROWUP, SYMBOL_CHECKSIGN, SYMBOL_STOPSIGN, SYMBOL_THUMBSDOWN, SYMBOL_THUMBSUP, VAL_CLOSEPRICE, VAL_CLOSETIME, VAL_COMISSION, VAL_COMMENT, VAL_LOTS, VAL_OPENPRICE, VAL_OPENTIME, VAL_PROFIT, VAL_STOPLOSS, VAL_SWAP, VAL_SYMBOL, VAL_TAKEPROFIT, VAL_TICKET, VAL_TYPE.
- 实际上,上述固定字为宏记录器,即语法分析程序用数值取而代之。宏记录器的引入简化了编写用户功能要求的程序:更加方便、无关联的重要词语可以用来替代一些函数参数值。同样可以用于色彩名称。
- 7. 色彩。
- AliceBlue, AntiqueWhite, Aqua, Aquamarine, Azure, Beige, Bisque, Black, BlanchedAlmond, Blue, BlueViolet, Brown, BurlyWood, CadetBlue, Chartreuse, Chocolate, Coral, CornflowerBlue, Cornsilk, Crimson, Cyan, DarkBlue, DarkCyan, DarkGoldenrod, DarkGray, DarkGreen, DarkKhaki, DarkMagenta, DarkOliveGreen, DarkOrange, DarkOrchid, DarkRed, DarkSalmon, DarkSeaGreen, DarkSlateBlue, DarkSlateGray, DarkTurquoise, DarkViolet, DeepPink, DeepSkyBlue, DimGray, DodgerBlue, FireBrick, FloralWhite, ForestGreen, Fuchsia, Gainsboro, GhostWhite, Gold, Goldenrod, Gray, Green, GreenYellow, Honeydew, HotPink, IndianRed, Indigo, Ivory, Khaki, Lavender, LavenderBlush, LawnGreen, LemonChiffon, LightBlue, LightCoral, LightCyan, LightGoldenrod, LightGreen, LightGrey, LightPink, LightSalmon, LightSeaGreen, LightSkyBlue, LightSlateGray, LightSteelBlue, LightYellow, Lime, LimeGreen, Linen, Magenta, Maroon, MediumAquamarine, MediumBlue, MediumOrchid, MediumPurple, MediumSeaGreen, MediumSlateBlue, MediumSpringGreen, MediumTurquoise, MediumVioletRed, MidnightBlue, MintCream, MistyRose, Moccasin, NavajoWhite, Navy, OldLace, Olive, OliveDrab, Orange, OrangeRed, Orchid, PaleGoldenrod, PaleGreen, PaleTurquoise, PaleVioletRed, PapayaWhip, PeachPuff, Peru, Pink, Plum, PowderBlue, Purple, Red, RosyBrown, RoyalBlue, SaddleBrown, Salmon, SandyBrown, SeaGreen, Seashell, Sienna, Silver, SkyBlue, SlateBlue, SlateGray, Snow, SpringGreen, SteelBlue, Tan, Teal, Thistle, Tomato, Turquoise, Violet, Wheat, White, WhiteSmoke, Yellow, YellowGreen.
- 所有的固定字均是非敏感字号,即它们可以小写也可以大写。
- 4.1. 智能交易系统向导
- 智能交易系统向导提示MQL 4允许编写智能交易系统、自编指标、自编脚本和从模板中进行编辑
- 预先设定参数或变量的名称,将会自动在文本编辑栏中出现参数框架。
- 4.2. MetaQuotes 4 语言的指令结构
- 4.2.1. 变量宣告和语句
- 在计算过程中保存临时数据要求使用变量。变量在本程序的开头部分就用保留字、变量、排列和定义进行了叙述。他允许使用这些词语的负数形式,即 “ Variables, Arrays and Defines”。 这些词中间总有一个开始变量的宣告叙述。这些词语的差别如下: "variable" 语句简单变量,"array"语句排列, "define" 语句附加用户定义的变量,类似于预先界定的用户变量,均可以通过设置对话框进行修改,即从外部修改。然而,又不像预先界定的变量,用户变量可以在程序内部的计算过程中进行更改。
- 变量宣告语法:
- 变量:名称(初期值);这里名称就是变量的名字;“初期值”就是变量的起初值。初期值对变量的类型-数字、字串或逻辑值进行界定。
- 一个数字变量宣告的例子:
- Variable : Counter( 0 );
- 一个字串变量宣告的例子:
- Variable : String1( "任意字串" );
- 一个逻辑变量宣告的例子:
- Variable : MyCondition( false );
- 数组声明语法:
- Array : ArrayName[Array length]( 初始值 );其中,数组长度有一个或若干(多达4)个数字-数字 - number[, number [, number [, number]]].
- 在MetaQuotes 4语言里, 数组可能是1-,2-,3-,4-个元素长度,一般情况下,数组就是一组可以用同一个名称查找到的、并按照相继成行定位数组且给定了数组元素的序列号(数)的变量。数组方便于对同样类型的数据排序。数组的一个典型例子就是交易终端的历史数据,比如,收盘、开盘、高点位、低点位、交易量。这些数据作为单一元素数组的。比如, Close[ 5 ] 指后退5个交易期间的收盘值。两个元素的数组可能是一个简单表格,其中第一个分量为行而第二个分量则为列。
- Array: MyTable[ 10, 5 ]( 0 ); // 一个10行5列的表格。
- ...
- print( MyTable[ 2, 4 ] ); // 打印第二行的第4个元素
- 数组可能包括任何类型的数值-数字、字串或逻辑值,但是应该为同一类型,其中的初期值在数组被宣告时为特定的。
- 附加用户定义变量宣告语法:
- 定义:名称(初期数);其中名称为变量名称;初期数为变量起初的数字值。
- 应该注意,附加用户定义变量可能只为数字类型。如上所述,用户定义变量可以在程序的计算过程中进行修改。这些修改只能运用到智能交易系统的当前时段,直到特殊的智能交易系统从图表中删除或客户终端的操作结束。当新的智能交易系统时段启动时,用户定义变量值将重新初始化。
- 4.2.2. 退出语句
- 退出报告中断智能系统软件的操作。也就是所谓的预先设定的程序终止。
- 4.2.3. IF-THEN条件语句
- If-Then条件语句使得控制智能交易系统指令的执行顺序得以可能。该语句可能有不同的方式编写:
- if Condition then Statement;or
- if Condition then begin
- Statement;
- Statement;
- ...
- end;其中,条件为一个逻辑表达式,取值为True 或 False;
- "Statement" 指MetaQuotes II语言中的任何指令。符号括号Begin – End可能被波形括号{ }所替代。
- 条件语句可能被用在对程序进行分支。为达到此目的,另一个关键字Else要用上。语法:
- if Condition then Statement1 else Statement2;or
- if Condition then begin
- Statement;
- Statement;
- ...
- end
- else
- Statement;
- Statement;
- ...
- end;or
- if Condition then begin
- Statement;
- Statement;
- ...
- end
- else Statement2;or
- if Condition then Statement1
- else
- Statement;
- Statement;
- ...
- end;可以使用嵌套式的条件语句。一般说来,语句可能由MetaQuotes II语言的任何合法指令表示,除非变量宣告,因为严格来说, 变量宣告并不是一个可执行语句。
- 4.2.4. WHILE循环
- WHILE循环确保在循环条件有效时,包含在循环主体中的语句的多次执行。一个循环可以用Break 语句提前终止。迭代可以通过使用Continue语句停止。这个语句造成循环的下一个迭代开始,即Continue后面的语句直到循环主体结束在本迭代中不得执行。在条件语句中用Break 和 Continue是合理的。语法:
- while Condition begin
- Statement;
- [break;][continue;]
- ...
- end;其中,条件是循环执行条件-在每个循环迭代之前计算出的一个逻辑表达式,取值为True 或 False;
- 语句是MetaQuotes 4语言的任何指令。
- 符号括号Begin – End表示循环主体,可以被波形括号{ }替代。
- “Break and Continue”描述也不是强制性的。
- Example:
- Counter = 1;
- while Counter <= Bars begin
- print( Close[ Counter - 1 ] );
- Counter = Counter + 1;
- end;这个例子说明一个将要执行的循环,基准次数,或者,如果基准=0,而且循环就不止一次。
- 4.2.5. For 循环
- For循环确保在循环主体中所包含的具体次数的语句执行。语法:
- for NumberVariable = InitialValue to|downto LimitValue begin
- Statement;
- [break;][continue;]
- ...
- end; 其中数字变量就是在每次迭代之后循环要么增加或者减少到1的循环变量 (视使用关键字To 或 Down to而定);
- 初期值指循环变量的起初数值。
- 语句指MetaQuotes 4 语言的任何指令。
- To or Downto 确定循环变量增加到1(To)或者减少到1(Downto);
- 限值是循环变量的边际数值。
- 操作符brackets Begin – End表示循环主体,可以被波形括号{}取而代之。
- Break 和Continue语句并非是强制性的。
- Example: 比如:
- for Counter = 1 to 10 begin
- if Counter > Bars then break;
- print( Close[ Counter ] );
- end; 这个例子说明一个可能被执行10次的环。但是,若基准值小于10, 循环就会提前终止,也就是说循环执行BARS次。
- 4.2.6. BREAK中断语句
- 中断语句确保一个For 循环或一个While循环早点终止。前例不仅说明循环执行,也说明了中断语句的使用。“Break”语句不仅用于循环主体之外。循环是嵌套式的,中断语句中离其最近的循环。换言之,中断内部循环的语句并没中断外部循环。
- 4.2.7. CONTINUE继续语句
- CONTINUE继续语句提前终止循环的迭代,并从循环主体开始下一个迭代。换句话说,在Continue之后语句被忽略。比如:
- for Counter = 1 to 10 begin
- ...
- if Counter > Bars then continue;
- print( Close[ Counter ] );
- ...
- end;这个例子说明一个将被执行了差不多10次的循环。但收盘值(counter)被打印不会比基准次数多。"..."代表MetaQuotes 4 语言的其他语句。
- 4.3.交易中断的预选界定变量
- 为了最大的方便用户,交易中断的一些变量可以从智能系统输入。
- 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为历史数据数组(seriesarrays),在上个交易期间允许进入这些数据。
- 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 – 返回当年数。
复制代码
|
|