MetaTrader 4 Build 529测试版发布,带有新的编译器 - 页 21

 

我在指标的源代码中加入这几行。

#property version             "1.00"
#property description         "This indicator looks for two consecutive fractal and puts signal pointers"
#property description         "Flag DrawArrowSig : true = Set signal arrow, false = No set signal arrow"
#property icon                "\\files\\FindTwoFractals32x32.ico";

这就是我们最后的结果。


因此,这个问题。

  1. 有可能在指标中使用资源吗?
  2. 图标文件"\\files\\FindTwoFractals32x32.ico " 的路径指定是否正确 如果实际的文件位置是D:\NewMT4\MQL4\files,并且用ME启动终端/portable。
  3. 图标的可接受的像素大小是多少?
谢谢你。
 
artmedia70:

我在指标的源代码中加入这几行。

这就是我们最后的结果。


因此,这个问题。

  1. 有可能在指标中使用资源吗?
  2. 图标文件"\\files\\FindTwoFractals32x32.ico " 的路径指定是否正确 如果实际的文件位置是D:\NewMT4\MQL4\files,并且用ME启动终端/portable。
  3. 图标可接受的像素大小是多少?
谢谢你。


1.这是可能的。我们将把窗口改为与MT5相同的尺寸。

2.请看 "文件-打开数据目录"。这是将从这里读取路径的地方

3.最好使用全套的(一个文件中的几个图标),从16x16到64x64(128x128).ico文件。很快,程序将直接在操作系统的界面上显示其本地图标。

你也可以阅读更多关于资源的信息。

 

在创建外部参数和输入参数时,你做了一个非常方便的技巧,在//之后用它的描述替换变量。

是否可以替换自定义函数的描述,现在我在我的函数中对一个字符串类型的变量进行了空的初始化,以查看所有传递值的参数。

 
double  iBands(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          period,           // период
   int          deviation,        // отклонение
   int          bands_shift,      // сдвиг относительно цены
   int          applied_price,    // тип цены
   int          mode,             // индекс линии
   int          shift             // сдвиг
   );
У deviation тип double должен быть.
 

大部分的问题是通过在原型中明确命名变量来解决的。也就是说,不是type1、type2,而是transaction_type、trade_operation,等等。

如果有枚举值,最好用枚举来描述它们,这样就可以在编辑时自动替换。

 
Renat:
为了与UAC兼容,我们把所有东西都带入同一个视图。534构建中的目录迁移已经完成。

也就是说,有不止一个534建筑?这个问题本身就产生了,因为我有534个版本,终端不是安装在X:\Program Files (x86),也不是安装在X:\Program Files,操作系统是Windows 7,权限是管理员系统,万一我对终端的目录和子目录设置了完全访问,但 "垃圾 "还是在X:\Users\xxx\AppData\Roaming\MetaQuotes\创建。同时,X:\ProgramData\MetaQuotes中的 "垃圾 "也被创建。在529的构建中,所有上述内容,X:\Users\xxx\AppData\Roaming\MetaQuotes\中的垃圾没有被创建。

我忘了,/portable参数是打开的。

 
这个神秘的参数"/portable "是什么?应该把它放在哪里?或者说不是吗?
 
Zhunko:
这个神秘的参数"/portable "是什么?应该把它放在哪里?还是没有?
该参数在其沙盒中强行启动终端,并在终端或unitor启动时启用。从理论上讲,它应该防止程序在系统中产生垃圾。我已经创建了一个批处理文件 - 启动终端.exe /portable
 
Barbarian:

也就是说,有不止一个534建筑?这个问题本身就产生了,因为我有534个版本,终端不是安装在X:\Program Files (x86),也不是安装在X:\Program Files,操作系统为Windows 7,权限为管理员系统,以防万一,我对终端的目录和子目录设置了完全访问权限,但 "垃圾 "仍然在X:\Users\xxx\AppData\Roaming\MetaQuotes\创建。同时,X:\ProgramData\MetaQuotes中的 "垃圾 "也被创建。在529的构建中,所有上述内容,X:\Users\xxx\AppData\Roaming\MetaQuotes\中的垃圾没有被创建。

忘记了,/portable参数已经启用。

建一个。

64位Windows上的32位应用程序完全安装在Program Files (x86)中 - 这是微软的兼容性要求。

Users/AppData区域的数据目录不再是垃圾,也不再是微软的建议(多年来所有的开发者都不关心这个问题),而是生活的硬道理。在最近的操作系统中,微软用大锤敲打每个人,让他们正常工作,因为没有其他方法来应对UAC。在大众市场,这是唯一剩下的方法。可以把它看作是到处都启用了UAC,而且从未被禁用。

要强制终端将大部分数据保存在本地目录下,或在便携式/可运输模式下工作(例如在闪存上),你需要使用/portable标志。但这仍然不适用于在Users/AppData中存储一般的非个人化数据。

 
Barbarian:
该参数强制终端在其沙盒中运行,并在终端或单播启动时启用。它应该是为了防止该程序在系统上制造垃圾。我创建了一个批处理文件 - 启动终端.exe /portable
很奇怪...这不应该是默认的吗,就像以前一样?