目录

MT4正版下载 - MT4指标颜色随数值正负自动切换的实现方法_还有一茬破事

MT4指标颜色随数值正负自动切换的实现方法_还有一茬破事
用过MetaTrader 4的朋友应该都有过这种经历,盯着图表上的指标线,红色代表上涨、绿色代表下跌,或者反过来,反正颜色得自己心里记着。但有时候指标数值在正负之间来回震荡,比如MACD柱状图,一会儿在零轴上方一会儿在下方,光靠看柱子的长短还不够直观,要是颜色能跟着正负自动变就好了。这个需求其实特别常见,而且MT4的指标代码里完全能实现,关键就在于用对条件判断语句。

条件颜色控制的代码基础

MT4的指标绘制其实是通过一系列缓冲区数组完成的,每个缓冲区可以设定自己的颜色。想让颜色随数值变化,最直接的办法就是设置两个缓冲区,一个存正数区域的值,一个存负数区域的值,然后分别给它们上色。比方说,你写一个自定义震荡指标,当计算结果是正数时,把值赋给缓冲区1,同时把缓冲区2设为0或者空值;反过来当结果是负数时,就赋给缓冲区2,缓冲区1置空。
这样图表上就会显示两种颜色的柱子或线条了。

具体到代码层面,你得在指标初始化函数里用SetIndexStyle和SetIndexBuffer声明两个缓冲区的样式和数组,然后给它们分别指定不同的颜色。比如SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2)配合SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2),再通过SetIndexBuffer把计算数值填进去。这里有个细节,如果两个缓冲区都用柱状图样式,它们会重叠绘制,正数时显示缓冲区0的颜色,负数时显示缓冲区1的颜色,视觉上就是自动切换了。

不过实际写的时候有个坑,就是空值处理。MT4里用EMPTY_VALUE表示该位置没有数据,如果你不把另一个缓冲区设为EMPTY_VALUE,图表上可能会出现多余的零轴线或者杂乱的柱子。所以每次循环计算时,记得先给两个缓冲区都赋EMPTY_VALUE,再根据正负情况填充其中一个,这样才能干净利落地实现颜色切换效果。

还有一茬破事

说到注册表,我就更来气了,那个注册表编辑器,一般人听着就头大,我也不是专门搞电脑的,只是为了卸个软件还得学着去regedit里面翻那些乱七八糟的键值,比如什么HKEY_CURRENT_USER底下的Software又有MetaQuotes的文件夹,什么HKEY_LOCAL_MACHINE底下又出现一遍,我手里拿着网上搜来的教程,一个一个对照着找,找到还不能瞎删,怕删了别的系统设置就出问题,那种小心翼翼的感觉,简直像在做微创手术一样,我那时候就后悔自己以前为啥没学点计算机知识,要不然哪用得着受这份罪,还有那个MT4它自己带的所谓数据文件夹,存在ProgramData里面,你刚把那些文件移走,又发现在某个莫名其妙的地方自动生成了一个备份,这种留着备份的习惯真是烦透了,我还用那个搜索功能全局搜了一遍mt4相关的关键词,结果搜出来上百个结果,你看吧,也不知道哪些能删哪些不能删,哪些是装了别的软件的时候被顺便塞进来的流氓尾巴,这种事儿你不上网查根本说不准,网上查了也说不太准,最后搞得我直接把一个什么日志文件夹给删了,结果事后才知道那里面有我好早以前记录过的交易参数,虽然也不是多重要的东西吧,但心里总是别扭得慌。

我这人其实挺怕麻烦的,又爱图省事,遇到这种事就上网随便找一个什么卸载工具,想要一步到位,可惜的是,那个工具下载下来,界面倒挺花哨,点了一个什么全面清理的按钮,然后它就一直在那转圈儿,转了快二十分钟,屏幕上是一直跳着一条“正在分析系统程序”,我心里还想着这工具挺厉害,一下子就把所有相关的东西全找出来了,结果等它分析完,蹦出来一个列表,好家伙,里面不仅包含MT4,还把我其他好几款跟交易没什么关系的软件给勾上了,我当时就一个激灵,心想这要是点下去那不是全毁了,就赶紧把它关了,然后把那个卸载工具也给卸了,这又花了我不少时间,就在这无穷循环中间,我发现这个事真的不能急,一急就容易冲动办事,我当时还干了一件特别傻的事,就是为了图快,直接把MT4那个安装目录给重命名了,想着这样它就运行不了了吧,结果不但没生效,反而引出了那个自动更新的程序,那个更新程序弹窗出来问我要不要下载最新版本,我真的是一口老血憋在嘴里差点吐出来,所以你们别学我,千万别贸然去改目录名,也别乱删文件,除非你能确定那个文件确实就是它一个软件在用。

我觉得此事的根本问题在于这个软件开发商太喜欢在安装的时候不留余地,所有的程序组件都是盘根错节(就像你钱包里的卡和钱串在一起),卸载的时候你拿掉一头还牵着一头,很难一次性清干净,更别提那些在线登录过之后留下的缓存图片、历史单记录、还有各种指标文件,全都存在于你压根不会去看的目录的角落里边(5)(6)(7),你可能跟我一样,一开始都只是抱着一个简单的念头,就是把它弄走,给新东西腾个地方,结果发现这个东西像一个盘踞在民房里的蜘蛛网,你伸手去够也够不着,用扫帚去扫又拆不了它的洞穴,最后只能坐下来想办法把它分成好几块来清理,这种吃力不讨好的感觉,大概只有亲身试过的人才能明白,我这人的性格是又犟又懒,一开始那半个多小时我就是在那儿较劲,不用任何辅助就靠系统自带的功能硬卸,越卸越不对劲,越不对劲越不服气,活脱脱一个自虐现场。

反正这件事让我学到的就是,以后碰上这种体积不大但藏得很深的软件,最好不要指望通过控制面板里的那个列表直接搞定,因为它的卸载程序说不定还会问你为什么要卸载,还弹出一个调查问卷叫你说说理由,你说你卸就卸嘛,还整个问卷,我当时就在问卷选项里随MT4正版下载手点了“其他”两个字,又填了一句“因为它更新得太频繁太烦人了”,结果它弹出个新对话框说谢谢反馈,然后就没动静了,我当时那个火气直接冲到头顶,一下子把那个窗口关了,后来才发现,那个窗口一关,卸载程序也跟着关了,等于刚才点的那些确认全都作废了,我恨呐,但能怎么办,只能重新来一遍,这次我学聪明了,右键菜单里的那个“以管理员身份运行”选项一直亮着,我就先以管理员身份把它启动,绕过了那些权限提示,然后按照它走的那个进度条,一步都不敢走神,因为一旦走神,它可能就自己偷偷给你停住了。

常见的坑和解决办法

说实话,这个功能虽然好用,但坑也不少。最常见的坑就是,设置完之后忘了创建新图表,然后到处找自己的两小时图,找半天找不到。我刚才说过了,自定义周期是要通过“新图表”来打开的,不是在原有图表上切换,这个逻辑一定要记住。

还有一个坑是,有些版本MT4的“属性”窗口里面,“时间框架”这个选项是灰色的,点不了。遇到这种情况,一般是因为你当前图表锁定了时间框架。你需要在图表上右键,找到“时间框架”子菜单,看看是不是勾选了“锁定”选项,如果有,取消勾选就行了。

另外,如果你用的是MT4的多图表模式,也就是一个窗口显示多个图表,那自定义周期的操作会稍微有点不一样。你得先在其中一个图表窗口上完成上述操作,然后再通过“新图表”功能把两小时图添加进来。多图表模式下,每个子窗口都是独立的,所以你得分别设置。

模拟交易和首次下单的关键细节

强烈建议新手先用模拟账户练手。在登录界面选择“新模拟账户”,填一些基本信息就能拿到虚拟资金,操作流程和真实账户一模一样。模拟账户最大的价值不是练技术,而是熟悉下单界面、止损止盈设置、持仓管理等操作细节,等你把这些都搞顺了,再上真实资金心里才有底。

真正下单时,点击工具栏上的“新订单”按钮,或者按F9快捷键,会弹出下单窗口。这里要确认好几件事:交易品种对不对,手数大小合不合理,是市价单还是挂单。新手最容易犯的错就是手数选太大,0.01手和1手的资金占用差了100倍,一定要看清楚再点。止损止盈可以在下单时直接设好,也可以成交后拖动图表上的水平线调整。

下单成交后,终端窗口会显示你的持仓,能看到开仓价格、当前浮动盈亏、止损止盈价位。想平仓就右键持仓单,选择“平仓”,或者双击持仓再点平仓按钮。这里有个小细节,平仓时如果价格波动快,你看到的价格可能已经变了,但系统会按你点击瞬间的最新价格成交,不用太纠结那零点几个点。

设置止损止盈时,别用整数位或者太贴近市价的点位,容易被正常波动扫掉。建议参考一下最近的支撑阻力位,或者用ATR指标辅助判断,虽然不能保证百分百不被扫,但至少比随手填一个数靠谱得多。还有就是,下单前一定要确认账户的杠杆比例和保证金计算方式,不然手数一开大,保证金不够就直接开不了仓。

文章目录