MQL4语言编程培训19:MQL4 EA编程中的关键点
/ s* q& x" O! ^0 Z, l& e
* x, _) k2 N' o0 kMQL4语言编程培训19:MQL4 EA编程中的关键点6 i+ u! j) O: [; g
9 f* r4 I- x$ E( g8 M0 ?+ R% i. b4 V/ L9 b
本课程适合初期MT4编程爱好者学习。9 `- M) b& Y1 ~( N2 f7 c! S
全系列23课,深入浅出讲解MT4的编程和基础知识。& {- F5 j* H! Z( ^
全课程不拘泥与一般的编程授课,采用图文并茂的方式,介绍了相当多的背景和技巧。是目前国内不可多得的MT4授课精品课程。
. g3 `/ S% O' M2 j- g" GMT4(MetaTrader 4)是全球最流行的外汇,黄金,期货交易平台软件。全球有超过70%的经纪公司和来自全世界三十多个国家的银行选择了它。它最大的特点就是:全球唯一一款支持程序化智能交易的免费的软件。通过学习本课程,可以让外汇黄金期货交易员实现把自己的交易思路变成全自动的智能交易程序。让你实现躺着赚钱的梦想。' N2 H5 n- J+ U2 L
; ]1 ?/ T- b7 @2 p7 w& o. S说实话,我不认为一个连书写都不规范的程序员是个好程序员。MQL4跟C语言规范一致,所以下文具备很高的参考价值。" k5 C" M9 M. D4 [' J
从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则:1 j. R$ w y% x0 W, p2 O. x
1.一个说明或一个语句占一行。5 t# h9 o6 | N/ S% e: Z
2.用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。5 Q7 N' c N! |+ K; X" K% v1 S
3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。) e( A- X, W4 N; c; ]' l( H9 A1 E' l0 Q
在编程时应力求遵循这些规则,以养成良好的编程风格。下面给初学者分享一份软件工程中的编程规范【部分】。& J5 j6 Q6 o' J* g% ?, s' E
: P6 a4 S7 |4 {8 g4 [# u
1. 基本要求
! Y6 j" T/ S; W H# g4 R" M6 M1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。/ T% u, z2 D8 v1 O6 @9 D7 H6 r
1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。
' q0 M+ c0 S( `1 L. \& v* s1.3 尽量使用标准库函数和公共函数。 E" v/ v# r) x! [, ~
1.4 不要随意定义全局变量,尽量使用局部变量。& }, x4 y8 B" ?' _! w$ N
1.5 使用括号以避免二义性。
( [* i& u1 o& o8 w. \
& ~* z/ E% y2 r2.可读性要求
; f% e7 O5 w6 P2.1 可读性第一,效率第二。6 ]& g! Z2 h) I" h; o% ~7 e$ |7 }
2.2 保持注释与代码完全一致。0 N; K* g4 t1 R3 u$ V/ m f
2.3 每个源程序文件,都有文件头说明,说明规格见规范。& p7 j" ]- ?& G1 h
2.4 每个函数,都有函数头说明,说明规格见规范。9 n: w, p# M3 g! T E& u
2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。9 ^" @' Z( b7 ~9 G' H
2.7 常量定义(DEFINE)有相应说明。- j) b/ B6 W: g3 f5 F
2.8 处理过程的每个阶段都有相关注释说明。 v7 q( x! C, _ D% m
2.9 在典型算法前都有注释。* v- y8 P1 B9 }) I
2.10 利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为 6个字节。
8 H3 Z& U9 p' y A7 a2.11 循环、分支层次不要超过五层。% k8 x! B6 Y( w$ s7 Y- {# ?
2.12 注释可以与语句在同一行,也可以在上行。
4 J( C/ p$ t. X7 E! s2 y2.13 空行和空白字符也是一种特殊注释。* _! [0 V& X! X$ l- A
2.14 一目了然的语句不加注释。' b X: d; u B, ]6 `# n
2.15 注释的作用范围可以为:定义、引用、条件分支以及一段代码。
; S7 I% j8 \% A7 d8 |" T ^ ]: b2.16 注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3 。
" n2 n7 [* B( |; h4 I0 t; Y+ d1 ]; {% Y$ t2 \. k: [) e( U
3. 结构化要求. X8 N9 s5 z* T) ^1 }7 m
3.1 禁止出现两条等价的支路。
' V3 R% F: \9 k3.2 禁止GOTO语句。8 O' y! A( X/ |+ Z# C2 q
3.3 用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN。
0 r( O2 {1 U9 }! Z- ?5 P3.4 用 CASE 实现多路分支。
! z$ M8 r) G6 F# D# w4 L h. \3.5 避免从循环引出多个出口。
" F/ x8 i% K" H" x% I( G# @3.6 函数只有一个出口。% L' _; l% G7 T+ y7 E/ _
3.7 不使用条件赋值语句。
+ I0 `% L |( W; U; w) r8 ~) t3.8 避免不必要的分支。1 \- p8 ~8 ?/ h! i
3.9 不要轻易用条件分支去替换逻辑表达式。9 m' {4 U! _- f/ R" ~$ V7 K: b% \
$ j* W9 T6 U- q+ s
4. 正确性与容错性要求
! r, ]2 o3 L" C1 @+ H% q4.1 程序首先是正确,其次是优美
) `8 ^2 w: Q _! P5 @: T4 l4.2 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。
# @" b# |8 l3 V; V& I4.3 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。
: L( c4 U" |9 R7 ^4.4 所有变量在调用前必须被初始化。
8 ~7 U% ~0 |7 S4.5 对所有的用户输入,必须进行合法性检查。: L6 {% V$ m# [# C' r# g
4.6 不要比较浮点数的相等,如: 10.0 * 0.1 == 1.0 , 不可靠
0 K1 U/ w9 D& F+ i4.7 程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等。
, B5 \- V2 A, l( o$ M6 ?4.8 单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。" j$ d6 w/ H3 I, S+ S7 y- O
4 N0 `5 c' C- `$ Z
5. 可重用性要求
* s, M& D" b- F6 [5.1 重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。8 a* I: h- ~% g+ b8 {( z
5.2 公共控件或类应考虑OO思想,减少外界联系,考虑独立性或封装性。: r$ x7 c+ a! W2 c- B% Y
5.3 公共控件或类应建立使用模板。) Y7 E4 z% Z2 m8 |
/ O; O, c) B) H( E! e+ G
. r0 r& K3 J7 r$ v9 |4 g. k
518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户、如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。 MQL4语言编程培训19:MQL4 EA编程中的关键点
1 F* P0 U0 t( d% ]! U8 }0 I3 n2 f* |" u
& Q/ S0 {+ k; [! _
|