MT4智能交易系统编程手册Word文件下载.docx
- 文档编号:8330172
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:30
- 大小:236.07KB
MT4智能交易系统编程手册Word文件下载.docx
《MT4智能交易系统编程手册Word文件下载.docx》由会员分享,可在线阅读,更多相关《MT4智能交易系统编程手册Word文件下载.docx(30页珍藏版)》请在冰点文库上搜索。
星号
-斜线〞组合(/*[注解]*/,就像在"
C"
编程语言一样)。
设定和控制操作战略,交易商保存一份日志文件,存储产生的信号信息、变量输出和已执行交易的结果。
智能交易系统日志保存在MultiBankTrader目录下/logs/YYYYMMDD.log文件里。
当前的日志可以从下方的"
终端〞窗口〔日志标签〕直接进入。
进入MQL4语言的目录系统,要么按目录按钮或从工具菜单翻开MetaQuotes语言词典窗口操作。
这个短小的手册包含分类、运算、存储词语等功能,使得用户对该语言所用到的每个元素都有所了解。
1.主要语言构造
像其他任何语言一样,MQL4有一套构成根本构造的主要组成元素。
这些组成元素以一种特殊的方式组合排列的,以便代表适当的述和表达。
语言的主要对象就是数据,包括三种类型:
数字、逻辑和排列。
所有的数值均采用双格式,逻辑数据可能包括真值和假值。
排列就是用省略号标注的一系列字符。
字符串也叫做文本串。
数据可以包含在适当类型的变量之中,或直接由程序的源文本表现出来。
一个MetaQuotes语言述指一个完整的用法说明。
述可以包括保存字、运算符号、数据、变量、表达式或标点符号,而且总是以分号结尾。
保存字指具有特定或特别意义的预先设定的词语。
运算符号指在数据、变量和〔或〕表达式中特定的具体运算符号。
变量是用来限制数字、排列或逻辑数据的。
表达式指保存字、变量、数据和运算符号的组合,因为它们具有语言的3中类型〔保存字、变量、数据〕中的任一价值。
标点符号用来代表表达式,界定参数,区分词语或重新排列计算顺序。
2.标点符号
字符
名称
描述
;
分号
完毕MetaQuotes4语言指令
()
圆括号
对表达式的值进展分组,改变计算顺序。
标注函数参数并启动变量描述表达式
标注变量的初始值并在变量描述区排列组合
逗号
提取函数值时,对参数进展区分在变量描述区对变量进展区分在描述排列长度时对数字进展区分区分进入排列元素的指标
:
冒号
用在变量描述区,启动变量列表
"
"
引号
标注一个文本〔字〕串。
[]
方括号
标注数字,确定排列长度标注进入某个特殊排列元素的数字〔指数〕标注进入历史数据的期间数字
{}
波形括号
充当运算括号。
可以用来代替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.相关符号
相关符号用来对同种类型的两个数值进展比较。
第一个数值和第二个数值进展比较,产生逻辑值"
真值〞或"
假值〞,"
小于〞-'
<
'
〔左小于号〕,"
大于〞-'
>
〔右小于号〕;
等于〞-'
〔等号〕;
不等于〞-'
;
小于或等于〞-'
大于或等于〞-'
。
由相关表达式而取得的逻辑值用在MetaQuotesII语言的控制构造里。
ifFreeMargin<
1000thenexit;
这个字串按词典顺序进展比较,即,"
aaa"
字串被认为小于字串"
zzz"
当逻辑值进展比较时,我们应该牢记:
True〞的逻辑值的数值为1,而"
False〞的逻辑值的数值为"
0〞。
3.5.逻辑符号
逻辑符号使用户能够将逻辑值结合起来。
逻辑OR-'
|'
〔垂直线或竖杠〕;
逻辑AND-'
&
〔"
和〞符号〕。
逻辑符号有相应的保存字OR,AND,NOT。
IfFreeMargin>
100andFreeMargin<
1000thenprint("
Freemarginis"
FreeMargin);
注意:
当OR和AND运算符号是双值时,即它们有两个值进展运算,NOT运算符号是单值,即它之适用于单值。
Variable:
Condition1(True);
Condition1=FreeMargin>
=1000;
IfnotCondition1thenexit;
下面是逻辑运算符号的结果表:
Value1
Value2
Value1ORValue2
True
False
Value1ANDValue2
NOTValue1
4.固定字
MetaQuotes4语言使用下面的几组固定字。
1.逻辑符号。
AND,NOT,OR.
2.MQL4语言指令。
Array,Begin,Break,Continue,Define,Downto,Else,End,Exit,For,If,Input,Then,To,
Variable,While。
界定语言指令构造的固定字也叫做关键字。
3.置函数。
Abs,Acame,AccountName,Alert,Ceil,CloseOrder,ment,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.预先设定交易终端变量。
Acum,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_ISSION,VAL_MENT,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.智能交易系统向导
智能交易系统向导提示MQL4允许编写智能交易系统、自编指标、自编脚本和从模板中进展编辑
预先设定参数或变量的名称,将会自动在文本编辑栏中出现参数框架:
4.2.MetaQuotes4语言的指令构造
4.2.1.变量宣告和语句
在计算过程中保存临时数据要求使用变量。
变量在本程序的开头局部就用保存字、变量、排列和定义进展了表达。
他允许使用这些词语的负数形式,即"
Variables,ArraysandDefines〞。
这些词中间总有一个开场变量的宣告表达。
这些词语的差异如下:
variable"
语句简单变量,"
array"
语句排列,"
define"
语句附加用户定义的变量,类似于预先界定的用户变量,均可以通过设置对话框进展修改,即从外部修改。
然而,又不像预先界定的变量,用户变量可以在程序部的计算过程中进展更改。
变量宣告语法:
变量:
名称〔初期值〕;
这里名称就是变量的名字;
初期值〞就是变量的起初值。
初期值对变量的类型
-数字、字串或逻辑值进展界定。
一个数字变量宣告的例子:
Variable:
Counter(0);
一个字串变量宣告的例子:
String1("
任意字串"
);
一个逻辑变量宣告的例子:
MyCondition(false);
数组声明语法:
Array:
ArrayName[Arraylength](初始值);
其中,数组长度有一个或假设干〔多达4〕个数字-数字-number[,number[,number[,number]]].
在MetaQuotes4语言里,数组可能是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条件语句使得控制智能交易系统指令的执行顺序得以可能。
该语句可能有不同的方式编写:
ifConditionthenStatement;
orifConditionthenbegin
Statement;
Statement;
end;
其中,条件为一个逻辑表达式,取值为True或False;
Statement"
指MetaQuotesII语言中的任何指令。
符号括号Begin–End可能被波形括号{}所替代。
条件语句可能被用在对程序进展分支。
为到达此目的,另一个关键字Else要用上。
语法:
ifConditionthenStatement1elseStatement2;
endelse
...
endelseStatement2;
orifConditionthenStatement1else
可以使用嵌套式的条件语句。
一般说来,语句可能由MetaQuotesII语言的任何合法指令表示,除非变量宣告,因为严格来说,变量宣告并不是一个可执行语句。
4.2.4.WHILE循环
WHILE循环确保在循环条件有效时,包含在循环主体中的语句的屡次执行。
一个循环可以用Break语句提前终止。
迭代可以通过使用Continue语句停顿。
这个语句造成循环的下一个迭代开场,即Continue后面的语句直到循环主体完毕在本迭代中不得执行。
在条件语句中用Break和Continue是合理的。
whileConditionbeginStatement;
[break;
][continue;
]
其中,条件是循环执行条件-在每个循环迭代之前计算出的一个逻辑表达式,取值为True或False;
语句是MetaQuotes4语言的任何指令。
符号括号Begin–End表示循环主体,可以被波形括号{}替代。
BreakandContinue〞描述也不是强制性的。
Example:
Counter=1;
whileCounter<
=Barsbeginprint(Close[Counter-1]);
Counter=Counter+1;
这个例子说明一个将要执行的循环,基准次数,或者,如果基准=0,而且循环就不止一次。
4.2.5.For循环
For循环确保在循环主体中所包含的具体次数的语句执行。
forNumberVariable=InitialValueto|downtoLimitValuebegin
其中数字变量就是在每次
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MT4 智能 交易系统 编程 手册