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

 

P./S.: Причём в МТ5 получилось скачать продукт из Маркета и без авторизации аккаунта на MQL5 (в МТ4 без авторизации не стала пробовать).

Не знала ранее о такой возможности.

 
meat:

Да и аргументы, честно говоря, странные у вас. Тот кто не умеет пользоваться, он и не пользуется этим.  Много ли вы видели быдлокодов, где используется FileFlush?  Я ни одного.

Практически все неправильно ею пользовались, а потом у них "Метатрейдер тормозит". Эта WinAPI функция экстремально тормозная.

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


А переоткрытие файла усложняет код.

Зато сразу же заставляет думать над последствиями, не ставить на каждом тике FileFlush и потом не удивляться результатам в тестере торговых стратегий.

 
Renat:

Практически все неправильно ею пользовались, а потом у них "Метатрейдер тормозит".

Да вы преувеличиваете. Может и попадались отдельные горе-кодеры, но не стоит обобщать. С ваших слов получается, будто все тут нубы и идиоты.

Зато сразу же заставляет думать над последствиями...

Ренат, ну это не серьёзно, ей богу! Мы же не в школе. Складывается впечатление, что вы тут домашние задания раздаёте ученикам, типа пусть помучаются, зато научатся думать и т.д. ("тяжело в учении - легко в бою").  Вы позиционируете MQL как обучающее пособие для чайников или как рабочий инструмент для программистов?  Если второе, то зачем вы ставите искусственные палки в колёса?

Если кто-то чего-то не знает или не умеет - это его личные проблемы, пусть учится.  С какой стати из-за него урезать функционал всем остальным?

 
meat:

Да вы преувеличиваете. Может и попадались отдельные горе-кодеры, но не стоит обобщать. С ваших слов получается, будто все тут нубы и идиоты.

Ренат, ну это не серьёзно, ей богу! Мы же не в школе. Складывается впечатление, что вы тут домашние задания раздаёте ученикам, типа пусть помучаются, зато научатся думать и т.д. ("тяжело в учении - легко в бою").  Вы позиционируете MQL как обучающее пособие ля чайников или как рабочий инструмент для программистов?  Если второе, то зачем вы ставите искусственные палки в колёса?

Если кто-то чего-то не знает или не умеет - это его личные проблемы, пусть учится.  С какой стати из-за него урезать функционал всем остальным?

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

Мы не в школе. Мы в гораздо более худшем месте, где масса некачественного кода и где всегда априори MetaQuotes виноват во всем. Сделаешь так - виноват, сделаешь наоборот - все равно виноват.

Решение победить FileFlush как раз пришло от понимания, что отключить его - это меньшее зло, чем наблюдать за тормозами и жалобами трейдеров. Мы не просто его отключили, а вообще полностью переписали всю файловую работу так, что теперь это экстремально эффективный и скоростной движок, который сглаживает любые ошибки и неээфективные практики разработчиков. Думали мы очень хорошо.


Для информации: я не преувеличиваю, так как лично веду публичные обсуждения в наших форумах уже больше 13 лет:


 
crOss:
Возьмите любой эксперт (из примеров от MetaQuotes),запустите под билдом 975 на определённом периоде и с параметрами,
получите результаты работы, т.е. график кривой доходности и таблицу сделок.


Теперь запустите этот же эксперт под билдом 1010 на этом же периоде и с этими же параметрами, получите совершенно другие результаты...

P.S. Метатестер 32-разрядный

Что показывает анализ сделок в тестере 975 билда и 1010 билда?

Для начала найдите точку расхождения. Сравните значение свопов. Посмотрите объёмы сделок

 
Так как от Service Desk ни ответа ни привета уже неделю подымаю проблему тут (МТ4 745 билд):
1.  Есть индикатор вот с таким кодом:
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   EventSetTimer(10);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start ()
{
   return 0;
}
//+------------------------------------------------------------------+

void OnTimer()
{
   ChartSetSymbolPeriod(0, _Symbol, 1);
}
2. Есть эксперт с таким:
#include <ChartObjects\ChartObjectsTxtControls.mqh>     


CChartObjectButton *p_button1 = NULL;                              
int OnInit()
{
   p_button1 = new CChartObjectButton; 
   p_button1.Create(0, "ddd", 0, 10, 20, 30, 40); // create button
 
   return INIT_SUCCEEDED;
}

void OnDeinit(const int reason)
{
   if (p_button1 != NULL)
   {
      p_button1.Delete();
      delete p_button1;
   }
}
void OnTick(void)
{
}

3. Первым прикрепляем индикатор, вторым - эксперт
4. Ворушим чарт и ждем его зависание при использовании   ChartSetSymbolPeriod
5. Все работает с ручным переключением ТФ и с ручным переключением валютных пар. Но не работает с программным (или стек на освобождение кривой или утечка какая-то ....)


 Проблему с переключение ТФ мне удалось решить - API как в очередной раз получается надежнее
 А вот как с API переключить валютную пару на нужную?

 
ALXIMIKS:
Так как от Service Desk ни ответа ни привета уже неделю подымаю проблему тут (МТ4 745 билд):
1.  Есть индикатор вот с таким кодом:
2. Есть эксперт с таким:

3. Первым прикрепляем индикатор, вторым - эксперт
4. Ворушим чарт и ждем его зависание при использовании   ChartSetSymbolPeriod
5. Все работает с ручным переключением ТФ и с ручным переключением валютных пар. Но не работает с программным (или стек на освобождение кривой или утечка какая-то ....)


 Проблему с переключение ТФ мне удалось решить - API как в очередной раз получается надежнее
 А вот как с API переключить валютную пару на нужную?

Ваша заявка не потеряна.

Обязательно ответим.

 
Кто-нибудь может пояснить: у меня несколько последних дней рейтинг (профиля) падает. Это новая фича, просто что-то подкручивается в алгоритме сайта, или что-то еще?
 
Renat:

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

Мы не в школе. Мы в гораздо более худшем месте, где масса некачественного кода и где всегда априори MetaQuotes виноват во всем. Сделаешь так - виноват, сделаешь наоборот - все равно виноват.

А вы не задумывались над тем, что возможно вы сами и способствуете распространению этой байки? Т.е. получается, что вы априори считаете себя виноватыми.  К вам обращается несколько нубов с претензией, что у них там что-то не работает, а вы вместо того, чтобы вежливо им объяснить или послать их учить матчасть, прогибаетесь под них и переделываете свой продукт в угоду их невежеству. Так ведь получается?  В итоге страдает и качество продукта, и эти люди ничему не учатся.

Я понимаю ещё если бы речь шла о торговой платформе. Но речь идёт о языке программирования, где важна гибкость. А вы лишаете этой гибкости.  Вы ведь сами программист и понимаете наверно, что универсальных решений нет.  Ваш якобы эффективный механизм подходит лишь для каких-то частных случаев, и совершенно не годится в других случаях.  Одному нужно скидывать данные на диск через каждые 10 секунд, другому - через каждые 10 мегабайт, третьему - на каждом тике (да-да, бывает и такая потребность, если инфа очень важна). И повторюсь, если человек неправильно что-то использует - это его личные проблемы, не нужно потакать его невежеству и прогибаться под него.

Я всё это не просто так начал.  У меня был код, где по FileFlush инфа периодически скидывалась на диск. И в последнее время я заметил, что ничего не скидыватся, хотя данных накапливается на 30-40 Мб.  В итоге при падении терминала (а это нередкое явление) всё теряется.  И вы даже не удосужились хотя бы предупредить об этом.  Это напрочь подрывает доверие к MQL, если в любой момент любая функция может перестать работать.

 
meat:

А вы не задумывались над тем, что возможно вы сами и способствуете распространению этой байки? Т.е. получается, что вы априори считаете себя виноватыми.  К вам обращается несколько нубов с претензией, что у них там что-то не работает, а вы вместо того, чтобы вежливо им объяснить или послать их учить матчасть, прогибаетесь под них и переделываете свой продукт в угоду их невежеству. Так ведь получается?  В итоге страдает и качество продукта, и эти люди ничему не учатся.

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


Я понимаю ещё если бы речь шла о торговой платформе. Но речь идёт о языке программирования, где важна гибкость. А вы лишаете этой гибкости.  Вы ведь сами программист и понимаете наверно, что универсальных решений нет.  Ваш якобы эффективный механизм подходит лишь для каких-то частных случаев, и совершенно не годится в других случаях.  Одному нужно скидывать данные на диск через каждые 10 секунд, другому - через каждые 10 мегабайт, третьему - на каждом тике (да-да, бывает и такая потребность, если инфа очень важна). И повторюсь, если человек неправильно что-то использует - это его личные проблемы, не нужно потакать его невежеству и прогибаться под него.

Давайте вы за нас поотвечаете так "это ваши личные проблемы" на наших форумах. Посмотрим, сколько часов выдержите прежде чем вам расскажут как надо вести бизнес и почему вы неправы.


Я всё это не просто так начал.  У меня был код, где по FileFlush инфа периодически скидывалась на диск. И в последнее время я заметил, что ничего не скидыватся, хотя данных накапливается на 30-40 Мб.  В итоге при падении терминала (а это нередкое явление) всё теряется.  И вы даже не удосужились хотя бы предупредить об этом.  Это напрочь подрывает доверие к MQL, если в любой момент любая функция может перестать работать.

Я выше указал, что у нас приоритет - эффективная работа и максимальная производительность только нашей платформы, а не режим работы на сторону. Это в первую очередь касается всех файловых операций: логов, баз данных и файлов экспертов.

Если вы так хотите работать снаружи с открытыми(а это само по себе уже серьезная проблема) файлами, то предпринимайте меры.

Не надо биться об стену - данное решение осознанное и не будет изменено.

Причина обращения: