游客发表
MQL5中文手册这名字听着挺枯燥的文手,但你要是文手真在MetaTrader 5里写过几个脚本,就知道这玩意儿比官方英文文档亲切多了。文手官方文档翻译腔重,文手术语生硬,文手看半天不知道在说啥。文手中文手册不一样,文手它把那些函数、文手常量、文手结构体拆开揉碎,文手用你能听懂的文手话讲明白。
比如`OrderSend()`这个函数,文手官方文档列了一堆参数,文手什么`symbol`、文手`volume`、文手`price`、`slippage`,看得人头晕。中文手册直接告诉你:第一个参数填交易品种,第二个填手数,第三个填开仓价格,第四个填最大滑点。就这么简单。它还提醒你,滑点别填0,不然市价单容易挂不上。这种细节,官方文档里翻半天才找得到,中文手册一句话点透。
再比如`PositionSelect()`和`OrderSelect()`的区别,新手最容易搞混。中文手册用一个表格对比:Position是持仓,Order是挂单和已成交单。然后它补了一句特别实在的话——"如果你只想查当前持仓的盈亏,用Position;如果你想看历史成交记录,用Order。"就这一句,比看十遍定义都管用。
我看过几个中文手册的版本,质量参差不齐。有个版本把`ChartSetInteger`的`CHART_COLOR_BACKGROUND`参数解释得特别细致,还附带了一个改变图表背景色的小例子。照着敲一遍,图表确实变了颜色,那种成就感比看一百页理论都强。另一个版本讲`iMA()`指标函数时,直接给了个均线交叉的完整EA代码,虽然注释不多,但逻辑清晰,跑起来就能用。
中文手册也有毛病。有些版本更新不及时,MQL5已经加了新函数,它还没写。比如`TradeClass`对象里的`SetExpertMagicNumber()`方法,老版本手册压根没提,你只能去论坛翻帖子。还有的地方翻译得过于随意,"pending order"翻成"挂单"没问题,但"stop limit order"翻成"止损限价单"就有点绕,不如直接叫"停止限价单"来得直观。
不过话说回来,你要是真想学MQL5,光靠中文手册不够。手册是字典,不是老师。你得一边看手册,一边打开MetaEditor写代码,跑通了再改,改错了再查。我试过照着手册里的`OnTick()`例子写了个简单网格策略,结果第一遍编译就报错,仔细一看,原来是`PositionGetInteger(POSITION_TYPE)`的返回值类型没搞清楚。手册里写了返回`ENUM_POSITION_TYPE`枚举,但没强调你要先`PositionGetSymbol()`选中持仓。这种坑,只有实战踩过才记得住。
还有个细节,中文手册里关于`datetime`类型的处理讲得挺好。它直接告诉你,`TimeCurrent()`返回的是服务器时间,不是本地时间,做回测的时候要注意时区差异。这个提醒很关键,不然你写个凌晨开仓的逻辑,回测数据和实盘对不上,还以为策略有问题。手册里还给了个`TimeToString()`的格式化例子,`"yyyy.mm.dd hh:mi"`,简单实用。
最后说点主观的。我更喜欢带代码注释多的中文手册版本,那种光是翻译函数名、不解释逻辑的,看了等于没看。好的中文手册会告诉你这个函数在什么场景下用,性能怎么样,有没有坑。比如`ArrayResize()`,手册里强调它会重新分配内存,频繁调用会拖慢速度,建议一次性分配足够大。这种经验之谈,官方文档里根本不会写。
所以,如果你刚接触MQL5,别硬啃英文原版,找份靠谱的中文手册当入门工具,先跑通几个简单脚本,再回头对照官方文档查细节。手册是死的,代码是活的。看一百遍`OrderSend()`的定义,不如亲手下一单模拟盘。
友情链接