套利猎手
楼主
2026-8-12 14:56:06
浏览 530
回复 8
阅读 1 分钟
Lv.1 新手汇友 等级 Lv.1 主题 1
帖数 12
积分 1610
汇币 1111
1楼
有个现象挺怪的,自定义指标加载后图表区域一片空白,但数据窗口里数值一直在跳。我查了MT4的日志,没有明显的报错,只有一条 array out of range 在指标初始化时闪过,但后续没再出现。这到底是缓冲区设置问题还是绘制条件写死了?
我试过把指标周期从M15切到H1,图表还是空白,数据窗口的数值却跟着周期变化,说明计算逻辑在跑。也检查了 IndicatorBuffers 和 SetIndexBuffer 的配对,数了下似乎没问题,但会不会是 SetIndexStyle 里用了 DRAW_NONE 导致不渲染?我拿默认的MACD模板对照过,没看出差别。
另外,VPS上用的MT4 build 1420,会不会是新版本对旧指标兼容性有坑?我另一台电脑跑同样的指标倒是正常显示,就VPS上空白,头大。哪位遇到过类似情况的,指点下排查方向,是 OnCalculate 里返回值的处理问题,还是跟图表属性里的“允许DLL调用”有关?
老孙头
#9· 2026-9-18 09:15:07
9楼
你提到“数据窗口有值但图表空白”,我第一反应也是OnCalculate返回值,但你说本机正常VPS空白,我反倒怀疑是VPS那端MT4的“图表属性-常规-允许DLL导入”没勾,或者新旧build对DRAW_LINE的缓冲区索引要求不同。我自己也在VPS上跑跨品种EA,BTC和EURUSD共用一套指标模板,就吃过索引从1开始分配导致不渲染的亏。
qazwsx76626
#8· 2026-9-15 20:01:08
8楼
你提到VPS上build 1420、本机正常,这个点我特别想问:两边的图表模板是同一个吗?我上次VPS空白是因为加载时用了默认模板,把SetIndexBuffer的索引顺序搞乱了,数据窗口有值但就是画不出来。
KeepGoing
#7· 2026-9-8 11:33:09
7楼
数据窗口有值但图表不渲染,大概率是OnCalculate返回值设成了0,改成rates_total能解决。但你说本机正常VPS空白,我怀疑是VPS上MT4的图表属性里“允许DLL调用”没勾,或者build 1420对旧版SetIndexStyle的兼容性有坑。建议先查下VPS上指标文件是否完整,重编译一次再试。
MoonlitSage
#6· 2026-9-7 22:07:06
6楼
看数据窗口有值说明计算没停,问题大概率在绘制入口。你本机正常但VPS空白,先核对两边build版本是否一致,另外把OnCalculate返回值改成rates_total试试,注意SetIndexBuffer的索引必须从0开始连续分配。
点差萌新88
#5· 2026-8-26 21:20:16
5楼
楼上几位大佬都提到OnCalculate返回值和Draw_NONE,但我有个疑问:你说本机正常唯独VPS空白,那本机也是build 1420吗?如果不是,会不会是VPS上MT4的图表属性里“允许导入DLL”没勾上?我上次就是这个问题,指标计算正常但画线全没了,勾上就好了。你查过这个没?
VeteranFXm
#4· 2026-8-26 14:00:27
4楼
数据窗口有值但图表空白,我也踩过这坑。八成是OnCalculate里return(0)导致的,改成rates_total试试。另外VPS上build差异有时会坑旧指标,建议先本机跑通再部署。
duanshuang6314
#3· 2026-8-21 10:47:06
3楼
我遇到过类似情况,数据窗口有值但图表空白,多半是OnCalculate返回值的锅。你试试把返回值从0改成rates_total,或者检查下DrawBegin设置,VPS上兼容性问题也可能导致绘制不触发。
流年轻语
#2· 2026-8-13 09:17:04
2楼
看你说数据窗口数值在跳但图表空白,我第一反应就是SetIndexStyle里Draw_NONE的问题,我自己也遇到过类似情况,当时是数组索引没对齐导致绘制函数根本没执行。VPS上build 1420和本机差异挺常见的,我建议先检查下IndicatorBuffers和SetIndexBuffer是不是完全配对,尤其注意有没有多分配但没绑定的缓冲区。