Новая версия платформы MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий - страница 7

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
elibrarius
2605
elibrarius  
Konstantin:

я так же как и вы согласен, что бы на сервере делалось как можно больше операций, а в терминал приходила лишь прибыль, я просто мешок с деньгами у компа поставлю и лоток прикручу )))

вы сами то понимаете что у вас на сервер ляжет дополнительная нагрузка в расчетах по всем тикерам биржи и тем самым будет увеличение латенси сервера ? при чем если для вас это не важно, то для других это может быть важно, делайте на своей стороне этот расчет, тем более, что делать его вы будете не по всем доступным тикерам в отличии от работы сервера, а только по своим

Вы думаете при расчетах объемов это не делается? Данные уже подготовлены для расчета объемов, ничего дополнительного делать не нужно.

Я предлагаю к строке

Volume+=V(ask)+V(bid);
добавить еще одну строку
Delta+=V(ask)-V(bid);

Одна операция вычитания - это не нагрукза даже для самого примитивного калькулятора. И разумеется дельту нужно побарно хранить, как и Volume и передавать в дополнительном поле. А не считать ее каждый раз, как вы предполагаете (и как придется делать на клиенте). Клиенту придется скачивать и все тиковые данные, а можно обойтись барными.

И вы и я лишь предполагаем, что происходит там, так что пусть разработчики решат - большая это нагрузка или нет. Предлагаю прекратить спор о том - о чем не знаем.

Konstantin
747
Konstantin  
elibrarius:

Вы думаете при расчетах объемов это не делается? Данные уже подготовлены для расчета объемов, ничего дополнительного делать не нужно.

Я предлагаю к строке

Volume+=V(ask)+V(bid);
добавить еще одну строку
Delta+=V(ask)-V(bid);

Одна операция вычитания - это не нагрукза даже для самого примитивного калькулятора. И разумеется дельту нужно побарно хранить, как и Volume и передавать в дополнительном поле. А не считать ее каждый раз, как вы предполагаете (и как придется делать на клиенте). Клиенту придется скачивать и все тиковые данные, а можно обойтись барными.

И вы и я лишь предполагаем, что происходит там, так что пусть разработчики решат - большая это нагрузка или нет. Предлагаю прекратить спор о том - о чем не знаем.

я не предполагаю в отличии от вас, т.к. по Plaza 2 дербаню поток и знаю какие там данные идут, так же знаю, что сервер по всем тикерам moex эти данные дербанит, для интереса возьмите список тикеров с moex, потом получите с того же сервера МТ5 тиковые данные по этому списку и посчитайте дельту для каждого, замерьте при этом потраченное время с подсчетом и без, думаю сами увидите есть нагрузка или нет

elibrarius
2605
elibrarius  
Konstantin:

я не предполагаю в отличии от вас, т.к. по Plaza 2 дербаню поток и знаю какие там данные идут, так же знаю, что сервер по всем тикерам moex эти данные дербанит, для интереса возьмите список тикеров с moex, потом получите с того же сервера МТ5 тиковые данные по этому списку и посчитайте дельту для каждого, замерьте при этом потраченное время с подсчетом и без, думаю сами увидите есть нагрузка или нет

Для расчета дельты берутся данные отличающиеся от данных для расчета объемов?
Vladislav Andruschenko
225315
Vladislav Andruschenko  

сегодня получил такой глюк на терминале, 

MT5 билд последний

Windows 7 64

При вводе неправильного пароля в MQL Community и переход в вкладку маркет получил следующее:


Konstantin
747
Konstantin  
elibrarius:
Для расчета дельты берутся данные отличающиеся от данных для расчета объемов?

если вам тяжело сделать тест который я предложил выше, то говорить дальше не о чем

Alexey Navoykov
4463
Alexey Navoykov  

Просьба к разработчикам.  Добавить стандартный макрос __COUNTER__ ,  который выдаёт новое число при каждом обращении к нему.  Он используется для задания уникальных идентификаторов и типов (обычно внутри макросов),  например:

#define CONCAT(a,b) a##b
#define CONCAT2(a,b) CONCAT(a,b)

#define ARRAY(size)  struct CONCAT2(ARR, __COUNTER__)  { char data[size]; }

ARRAY(10) arr1;   ARRAY(10) arr2;

Сейчас вместо него приходится использовать __LINE__,  но в рассматриваемой ситуации он не поможет, когда оба вызова находятся в одной строке.  Либо же в другом включаемом файле может совпасть вызов в строке с тем же номером.

А также, неплохо было бы иметь возможность объявлять анонимные классы,  тогда всё станет вообще просто.

elibrarius
2605
elibrarius  
Konstantin:

если вам тяжело сделать тест который я предложил выше, то говорить дальше не о чем

Давно пора. Я же к разработчикам обращался.

По существу вопроса, от ответа на который вы уклонились.

Для расчета дельты берутся данные отличающиеся от данных для расчета объемов?

Одинаковые. И это дает возможность не писать новую функцию, как вы предлагаете. Т.к. она на 99% будет дублировать функцию расчета объемов. И будет отличаться одной строкой Delta+=V(ask)-V(bid); Новая дублирующая функция действительно увеличит нагрузку на сервер, и этого в моем предложении нет, но почему-то предлагаете вы. Зачем простую задачу представлять сложной?

Разумным и простым решением будет добавление этой строки в уже имеющийся код по расчету объема.

Alexey Navoykov
4463
Alexey Navoykov  

Баг компилятора.  Невозможно присвоить значение статическим полям шаблонного класса:

template<typename T>
class A
{
 public: 
  static int value;
};

template<typename T>
int A::value=0;

void OnStart()
{
  A<int>::value = 1;  // '=' - semicolon expected
}

На чтение работает нормально.

fxsaber
14386
fxsaber  
Alexey Navoykov:

Либо же в другом включаемом файле может совпасть вызов в строке с тем же номером.

Добавлять __FILE__.

Alexey Navoykov
4463
Alexey Navoykov  
fxsaber:

Добавлять __FILE__.

Имя файла содержит символы, несовместимые с именами типов/переменных.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий