MT4止损设置 - MT4下载文件安全校验与存储路径管理要点_如何利用Ctrl+U高效管理自选品种

先说这破需求咋来的
其实就是懒得天天盯着盘等那个突破,前日高点这种位置你盯着它吧它就是不来,你一上厕所它就突破了,等你回来一看好家伙都冲出去几十点了,所以我寻思着干脆让MT4自己看着前日高点到了就自动挂个突破单,我一觉睡到自然醒它自己进场。 不过说实话这东西比我想的麻烦多了,关键是MT4自带的功能里根本没有“前日高点突破自动开仓”这种傻瓜选项,你得自己拼凑,我先把我知道的几个路子都列出来,想到哪说哪: (1)最直接的办法是写个EA程序,用iHigh(Symbol(), PERIOD_D1, 1)取昨天的最高价,然后每根新K线出现的时候判断当前价格有没有穿过这个价位,穿过了就OrderSend,听起来不难但是你得懂MQL4语言。 (2)不想写代码那就用现成的突破EA模板,网上搜“前日高低点EA”能找到一堆,但是大多数是忽悠人的,下回来不是不能用就是藏着后门偷偷改你参数,我用过一个什么“幽灵突破王”结果头天晚上测试第二天的模拟盘直接给我开了八笔单子止损设的跟没有一样。 (3)还有人用挂单的方式,就是每天凌晨根据前一天的最高价算一个buy stop挂上去,这个方法简单多了,不用写EA,你只要每天早上手动算一下把挂单位放好就行,但是问题来了你得每天早上起来弄,那跟我手动盯盘有啥区别简直是用一个坑去填另一个坑。 (4)再高级点的做法就是把前日高点当成一个动态阻力,然后用MT4的“警报”功能设定价格到达某位置时响警报,听到了再手动开仓,好歹不用盯盘但你还是得在电脑旁边坐着。 (5)其实我最开始的思路是用“策略测试器”里的现成模板改,结果发现那玩意儿只能跑历史数据,没法真刀真枪的挂到实盘上。 我折腾下来感觉还是回到写EA这条路上比较靠谱,但是写EA这事真的不是光看教程就行的,你得知道那个MetaEditor里头的各种函数是啥意思,我一开始连“OrderSend”的参数顺序都记不住,不是搞错手数就是把滑点设成零结果老是不能成交,这东西就跟你学手排挡开车一样道理你都懂,真上车了离合器和油门的配合还是得一顿一顿。 说个跑题的事儿,我之前在网上还见过有人问能不能用MT4的脚本功能实现这个突破开仓,其实脚本和EA是两码事,脚本就是一次性执行的,就相当于你点一下它帮你干一件事,比如帮你快速下一个单,它没有循环没有实时监控的能力,所以真正的自动开仓还得是EA这种常驻型的程序。如何利用Ctrl+U高效管理自选品种
交易老手通常不会把几十个品种全部堆在报价栏里,那样反而碍眼、影响判断。比较科学的做法是只保留自己真正在交易的5到10个品种,随时保持界面清爽。而Ctrl+U就是实现这个目标的最佳工具。
当你按下Ctrl+U打开窗口后,左侧是全部品种列表,右侧是当前已显示品种列表。如果你想把某个品种从报价栏移除,只需要在右侧选中它,然后点击“隐藏”按钮,它就会从左侧的报价栏中消失。反过来,如果你想把某个品种加回来,在左侧找到它,点击“显示”就行。
这里有个小技巧值得分享:MT4支持通过键盘快速定位品种。在Ctrl+U打开的窗口中,直接点击一下左侧列表,然后敲击键盘上的字母,就能跳转到以该字母开头的品种区域。比如你想找“GBPJPY”,直接按字母“G”,列表就会快速滚动到G开头的品种附近,省去了用鼠标滚轮来回翻找的时间。
对于做多品种组合交易的朋友来说,利用Ctrl+U快速调整列表还有一个额外的好处——你可以根据当天关注的品种来灵活安排报价栏的顺序。比如今天重点做黄金和原油,就把它们放在最上面,其他品种暂时隐藏,这样盘面看起来一目了然,不会因为品种太多而分散注意力。
在图表上挂载并激活EA
看到EA出现在导航器里,离成功就不远了。把EA从导航器直接拖拽到你要交易的货币对图表上,松手后弹出日常盯盘MT4这些数据够用了别整太花哨_日常盯盘MT4这些数据够用了别整太花哨一个设置窗口。
这里有几个关键选项要留意:允许实时自动交易这个复选框必须勾上,否则EA只是加载在图表上,但不会执行任何交易操作。
设置窗口里还有“常用”和“输入参数”两个标签页。输入参数页面里可以调整EA的各项设置,比如手数大小、止损止盈点数、风险百分比等等。不同EA的参数千差万别,建议先用默认参数跑一段时间模拟盘,熟悉了再调整。
确定后,图表右上角会显示一个笑脸图标,同时EA名称旁边出现一个绿色的三角箭头,这说明EA已经正常运行了。如果显示的是哭脸或者红色叉号,说明EA被禁用了,这时候需要检查一下MT4工具栏上的“算法交易”按钮是否处于开启状态。这个按钮在工具栏上是个类似播放键的图标,点击后变成绿色就对了。
彻底解决重启丢失的完整操作流程
说了这么多,最后给大家一套可以直接照搬的操作流程。第一步,在MetaEditor中打开你的EA,在OnInit函数里添加读取文件的代码,用FileOpen打开指定路径的文件,用FileReadString读取每行内容,用StringSplit按等号拆分成键值对,然后赋值给对应的全局变量。第二步,在OnDeinit函数里添加写入代码,遍历所有需要保存的变量,用FileWrite写入“变量名=变量值”的格式。
第三步,也是最容易被忽略的一步,在OnTick函数里添加一个定时器机制,比如用全局变量LastSaveTime记录上次保存的时间,当前时间减去LastSaveTime超过10秒就执行一次保存。这样可以防止程序异常退出时丢失最后几分钟的数据。第四步,测试一下,重启MT4后,在EA的日志窗口里打印出读取到的变量值,确认和之前保存的一致。
按照这个流程操作,基本上再也不用担心全局变量丢失了。当然,如果你用的是别人写的EA,不方便改代码,那可以用MT4自带的模板保存功能,先把所有指标和变量设置好,然后保存为模板文件,重启后重新加载模板。但这个方法只对指标参数有效,对EA内部的全局变量是无效的。所以最根本的解决办法还是自己动手写持久化函数。