错误、漏洞、问题 - 页 1341

 

metaeditor(64)?.exe有一个内置的编译器,不是吗?相应地,mql(64)?.exe是那种 "独立的"、自成一体的编译器。

这就是为什么我的问题是正确的,而你的回答是:"无论如何,在命令行中不会对ex? 文件进行智能放置。只有编辑器可以做到这一点,而且只能在窗口模式下进行。"完善地回答了这个问题。

事实上,我为此感谢你。

 

在MetaEditor中 设置的搜索 路径为R:\\。

它以R:\\\的形式出现在搜索结果中。

不影响操作,但请检查是否有隐藏的错误(例如,你可以输入路径R:\\\\\\\)。

 

Windows 10,MT4 Build 854奇怪的标题(而不是传播它说"!"),不是所有的菜单项都被翻译,有一个空的菜单项。


 
价值的非预期变化
#import "Test.dll"
        void f( const int& x[] );
#import
void OnStart()
{
        int x[ 1 ] = { 1 };
        int y = x[ 0 ];
        Print( "y=", y ); //  здесь y = 1
        f( x );
        Print( "y=", y ); //а здесь y = 2, но я его явно не менял
}
//Test.cpp
void WINAPI f( int x[] ) { x[ 0 ] = 2; }

很明显,f()在#import这里的描述是不正确的,但问题不是x发生了什么变化,而是y发生了什么变化。

也许编译器认为x是不稳定的(在不优化代码的意义上,影响通过引用传递给从.dll调用的函数的变量)是有意义的。考虑到没有这种优化,实际上是无法察觉的,而其后果对结果来说是很重要的。

 
Artyom Trishkin:

Windows 10,MT4 Build 854奇怪的标题(而不是传播它说"!"),不是所有的菜单项都被翻译,有一个空的菜单项。

已确认。
 

我可能弄错了,但是NULL用来给变量归零时,会把变量初始化为零。

在帮助中,它说

Синтаксически тип void является фундаментальным типом наравне с типами char, uchar, bool, short, ushort, int, uint, color, long, ulong, datetime, float, double и string. 
Этот тип используется либо для указания того, что функция не возвращает значения, либо в качестве параметра функции обозначает отсутствие параметров.

Предопределенная константная переменная NULL имеет тип void. Она может быть присвоена переменным любых других фундаментальных типов без преобразования. 
Также допускается сравнение переменных фундаментальных типов со значением NULL

理论上,当使用NULL时,变量应该是空的,就像变量字符串类型的情况一样,既不包含0,也不包含-,也不包含+。

当初始化一个 字符串类型的变量时,text = NULL;该变量是空的,并且在初始化其他类型时被分配为0。

 
Artyom Trishkin:

Windows 10, MT4 Build 854奇怪的标题(不是传播,而是说"!")。

点差这个名字太宽泛了,在MT5的 "概览 "和 "报价 "窗口中,它一直是!

 
A100:

点差这个名字太宽泛了,在MT5中,无论是在概览还是在报价窗口中,它都是!

也许我没有注意,但至少 "SP "会更有参考价值
 

在854版本中还有一个有趣的错误

我有一个测试文件夹,在专家那里,它包含源代码和名称为test的excerset文件。

我在主文件夹里有一个名字为test的文件(也有源代码和excelet),所以当我编译后者时,第一个文件被安装在终端用于测试。

也就是说,我想用Xperts/Test的名字和位置来测试专家顾问,但终端每次在编译时都会自动设置Xperts/Test,所以我每次都要重新安排EA。

这是很烦人的...

 

交易员你好。

请帮助我解决一个问题。

仪器#IBM_L的SymbolInfoDouble( _Symbol,SYMBOL_TRADE_TICK_VALUE) 函数返回0。

LiteForex MT5 Terminal x64 build 1150 (Liteforex Investments Limited)。

账户货币为欧元。

应用程序中的测试脚本。

杂志显示。

2015.08.12 22:23:51.930 TestTickValue (#IBM_L,H1) Tick value = 0.00000.

我需要这个值来计算交易量。

double lots = loss * cSymbolInfo.TickSize() / ( priceDiff * cSymbolInfo.TickValue() );

在调用TickValue()之前,我在代码中正确选择了cSymbolInfo.Name(symbol)。该代码适用于其他工具,例如EURUSD。

附加的文件: