较热60.3

MT5图表切换周期后自定义指标参数自动重置,怎么锁定?

XM 推荐平台

覆盖品种全,新手友好,支持多种入金方式

CySEC(塞浦路斯) / ASIC(澳洲) / IFSC(伯利兹) · 最低入金 $5
小桥流水
小桥流水 楼主
6 天前 463 7 1分钟 新汇友(注册会员) Lv.1 主题3 帖数6 积分339 汇币156
1楼
说实话,我统计了一下最近一周,光这个问题就让我重设了不下二十次参数,人都快整崩溃了。😭
我用的Windows 10系统,MT5 build 4550版本。情况是这样的:我自己写了个均线+ATR止损的指标,参数调好了比如周期设成20和14,结果只要我切到H4再切回H1,面板上的数值就自动变回默认的10和5。一开始我以为是EA冲突,把其他图表都关了还是这样。
我试过把指标设为默认模板保存,也试过在图表属性里勾选“锁定”,但切换周期后依然重置。日志里没看到具体报错,但加载时会有一行 custom indicator 'xxx' parameters changed 的提示。这到底是我代码里OnInit()写的有问题,还是MT5本身对自定义指标周期切换时的参数记忆机制就是这样?
有没有朋友遇到过类似情况?是不是需要在OnCalculate里加个静态变量来保存参数状态?还是说只能每次切换后手动重设?求指点一下,重设参数倒是小事,就怕哪天忘看了直接按错参数下单。🙏
0 回复 复制 众裁0
#1
MidnightRaven
MidnightRaven #2· 6 天前
6 天前
2楼
你说的日志里那行parameters changed,我遇到过,不是代码问题。MT5切换周期默认会重载指标,参数存的是当前周期的global variable,你试试在OnInit里用GlobalVariableCheck恢复旧值。我上次用这招锁住了,记得global变量名要带品种和周期后缀。
回复 复制 众裁0
6 天前 #2
MistyMeadow
MistyMeadow #3· 5 天前
5 天前
3楼
楼上说的global variable方法我试了,确实能锁住,但切换周期后图表上画线的位置会不会错位啊?我指标里有历史数据重算,怕恢复参数后线对不上。
回复 复制 众裁0
5 天前 #3
betty9604
betty9604 #4· 前天 09:09
前天 09:09
4楼
我也被这问题折磨过,参数重置其实是MT5每个周期独立加载指标导致的。你日志那行不是bug,OnInit里加个全局变量GlobalVariableGet/Save就行,但注意要按品种+周期区分存值。补充一下,别用静态变量,跨周期不管用,我踩过这坑。你指标有历史重算的话,恢复参数后记得调用SetIndexDrawBegin刷新下。
回复 复制 众裁0
前天 09:09 #4
OceanBreeze27
OceanBreeze27 #5· 前天 10:06
前天 10:06
5楼
楼上说的global variable方案我试过,确实能锁参数,但要注意GlobalVariableSet的键名得带品种和周期后缀,否则多图表同时跑会串值。我上次用EURUSD_H1做键,切周期后画线位置没出过错,历史重算也正常。不过建议你OnInit里加个Print调试下恢复值,确认是旧参数再下单。
回复 复制 众裁0
前天 10:06 #5
MistyMeadow
MistyMeadow #6· 前天 15:06
前天 15:06
6楼
GlobalVariableSet的键名带品种和周期后缀这个细节我记下了,不过我有个疑问,如果同时开着EURUSD和GBPUSD的H1图表,键名一个是EURUSD_H1一个是GBPUSD_H1,这样应该不会串吧?还有恢复参数后画线位置错位的问题,我指标里也有历史重算,是不是得在OnCalculate里加个标志位处理一下?求大佬指点。🙏
回复 复制 众裁0
前天 15:06 #6
MossyPebble
MossyPebble #7· 前天 16:12
前天 16:12
7楼
看了你说的build 4550这个版本号,我正好也在用,确实切周期重载指标时参数记忆机制挺坑的。我自己也试过OnInit里用GlobalVariableSet,但要注意键名带品种+周期后缀这个细节,不然EURUSD和GBPUSD同时挂着真会串值。参数锁住了,画线错位倒是没遇过,可能我指标没重算历史数据吧。
回复 复制 众裁0
前天 16:12 #7
SmartFlyer
SmartFlyer #8· 14 小时前
14 小时前
8楼
参数重置是MT5按周期独立缓存指标状态导致的,不是OnCalculate的问题。建议在OnInit里用GlobalVariableGet/Save,键名带品种+周期后缀就行。补充一下,记得在OnDeinit里也存一次,防止关闭图表时丢值。
回复 复制 众裁0
14 小时前 #8
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。汇友之家合作的各家经纪商均为持有正规外汇牌照的经纪商,我们不参与经纪商的任何经营活动。经纪商在经营过程中可能出现破产清算、资不抵债、跑路或躲避责任等情况,这些问题汇友之家无法控制,亦不承诺任何经纪商资金的绝对安全。请知悉!
← 上一帖 MT5自定义指标加载后图表错位,是代码里Buffer数组越界了吗? 下一帖 → 关于VPS防火墙配置与端口管理,这篇可能最接地气