Ошибки, баги, вопросы - страница 1341

 

Windows 10, MT4 Build 854 странные заголовки (вместо spread написано "!"), не все пункты меню переведены и присутствует пустой пункт в меню:


 
Незапланированное изменение значения
#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 - volatile (в том смысле, чтобы не оптимизировать код затрагивающий переменные передаваемые по ссылке в функции, вызываемые из .dll). С учетом того, что отсутствие такой оптимизации будет практически незаметно, а ее последствия - существенны для результата.

 
Artyom Trishkin:

Windows 10, MT4 Build 854 странные заголовки (вместо spread написано "!"), не все пункты меню переведены и присутствует пустой пункт в меню:

Подтверждаю.
 

Могу ошибаться, но NULL при использовании для обнуления переменных, инициализирует переменную нулем.

В справке написано

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

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

Теоретически получается что при использовании NULL переменная должна быть пустая как в случае с переменно типа string и не содержать ни 0 ни - ни +. 

При инициализации переменной типа string text = NULL;  то переменная получается пустая а при инициализации других типов присваивается 0.

 
Artyom Trishkin:

Windows 10, MT4 Build 854 странные заголовки (вместо spread написано "!")

 spread слишком широкое название, в MT5 и в Обзоре и в Окне котировок всегда был !

 
A100:

 spread слишком широкое название, в MT5 и в Обзоре и в Окне котировок всегда был !

 

Может быть, не обращал внимания, но более информативным было б хотя бы "SP"
 

Есть еще один интересный баг в 854 билде

У меня есть папка тест которая лежит в экспертах, в ней лежит исходник и ексежшник с именем тест.

В основном каталоге експертс лежит файл с именем тест так же с исходником и екзешником, так вот при компиляции последнего в терминале для теста устанавливается первый .

То есть хочу затестить советника с именем и расположением Експертс\\Тест а в терминале при компиляции автоматически ставится каждый раз Експертс\\Тест\\Тест,    приходится каждый раз переставлять советника.

Это напрягает...

 

Здравствуйте уважаемые трейдеры,

 

Помогите пожалуйста решить одну проблему:

Функция SymbolInfoDouble( _Symbol,  SYMBOL_TRADE_TICK_VALUE) для инструмента #IBM_L возвращает 0.

Терминал LiteForex MT5 Terminal x64 build 1150 started (Liteforex Investments Limited).

Валюта счета EUR.

Тестовый скрипт в приложении. 

Журнал выводит: 

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

 

Это значение мне нужно для того, чтобы подсчитать объем сделки.

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

 В коде правильно выбираю cSymbolInfo.Name(symbol) перед тем  как вызывать TickValue(). Код работает для других инструментов, например EURUSD.

Файлы:
 

 

Все печальнее чем я думал. Сайт глючит на моем браузере. коды не вставляет . картинки с 3раза вставляет те которые надо (с первых раз грузит предыдущие картинки)  

Импорт не работает. уже ПК перегружал. терминал переустанавливал. ПК чистил.

В маркете все тоже не особо  проверка продуктов от недели (могли бы создать спец терминал для  такого рода действий ) 

Одно плохо что Вы и есть разработчики данного терминала, и как говорится деваться  не куда.

Исправьте все свой баги.  

 

 

**** ну вот как работать ***

 

Пошли 2 сутки как не могу загрузить тиковые котировки в мт4.  

Смог. спустя горы страданий, но дальше интерестнее толку та 0 тестер колом стойт после нажатия Старт.

 

Это называется "Нет конкурентов?! можно не стараться и плевать на ошибки " в пойсковике проблемы с импортом котировок в терминал проблемы с 2010 года нашел.

Если это так затратно .  сделайте отдельную платформу для тестов .