Новая версия платформы MetaTrader 5 build 6090: общие улучшения - страница 4

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Бета-версия MetaTrader 5 build 5955: поддержка MCP и агентного ИИ

fxsaber, 2026.07.16 07:56

b6012, неправильная сигнатура у штатной StructToTime.
datetime StructToTime2( const MqlDateTime &Time )      
{
  return(::StructToTime(Time)); // constant variable cannot be passed as reference
}

b6090, так и не исправили.

struct A
{
  MqlDateTime Time;
  
  string ToString( void ) const
  {
    return((string)::StructToTime(this.Time)); // constant variable cannot be passed as reference
  }
};
 
fxsaber # :

b6090, так и не исправили.

Об этом сообщили. Хотя сейчас период отпусков, и процесс идет медленнее, чем обычно.
 
Alex FXPIP #:
Оказалось, что у Wine есть persistent per-executable оверрайд версии Windows в реестре ( HKCU\Software\Wine\AppDefaults\<exe>\Version ), и конкретно для terminal64.exe / metaeditor64.exe там стояло win7 — отсюда и "Windows Server 2008 R2 build 7601" в журнале терминала, несмотря на то, что глобально в winecfg было выставлено Windows 10/11.
При установке pkg прописывается win11. Вероятно, при установке обновлением поверх предыдущего wine, этот ключ может не перезаписываться.
 
npats2007 #:
Подключил MCP, попросил вывести все возможности подробно.

По тестеру:
"Strategy Tester
- Запуск бэктеста с подготовленным .ini.
- Подключение файла параметров .set.
- Запрос статуса, прогресса и времени выполнения запущенного теста."

- Не хватает экспорта результатов теста в HTML, а лучше и в JSON.
- Не хватает экспорта отдельного списка сделок в HTML, а лучше и в CSV, JSON 
- Хорошо бы подключить доступ к документации MQL
Добрый день. Не подскажете, где подробнее почитать по поводу подключения МСP, локальных моделей? Давно не был, потерял немного ориентацию. У меня есть разработанный скилл с учётом всей документации по MQL5. Дайте мне ссылочку, где можно это всё более подробно почитать.
 
Vitaly Muzichenko # :

Только начинает обновлять минимум/максимум = срабатывает  CHARTEVENT_CHART_CHANGE


Мне непонятно, о чём вы пытаетесь сообщить?

Я не вижу никаких проблем.

 
Alain Verleyen #:

Мне непонятно, о чём вы пытаетесь сообщить?

Я не вижу никаких проблем.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 6090: общие улучшения

Vitaly Muzichenko, 2026.07.30 16:54

@Renat Fatkhullin

Это правильное срабатывание события CHARTEVENT_CHART_CHANGE

Размер окна графика не меняется, число также не меняется, но событие срабатывает IndicatorSetInteger(INDICATOR_DIGITS,3)

Если установить IndicatorSetInteger(INDICATOR_DIGITS,6), то видно, что значение меняется, и при этом срабатывает CHARTEVENT_CHART_CHANGE

--

Полагаю, что это ошибка, CHART_CHANGE должен срабатывать тогда, когда меняется физический размер подокна, или по крайней мере показываемое значение IndicatorSetInteger(INDICATOR_DIGITS,2)

Всё это происходит на обновлении нулевого бара

Если нулевой бар не меняет значения мин/мах окна - всё хорошо.



 
Vitaly Muzichenko # :

Я попросил вас предоставить код для воспроизведения проблемы. Предоставленный вами код НЕ воспроизводит проблему.

В любом случае, теперь я понимаю.

 
Alain Verleyen # :

Я попросил вас предоставить код для воспроизведения проблемы. Предоставленный вами код НЕ воспроизводит проблему.

В любом случае, теперь я понимаю.

Code
 
Vitaly Muzichenko #:
Code

Еще раз ссылка на тот-же код в ответ на комментарий, в котором сказано, что он не воспроизводит проблему?

Если это не троллинг, то что это?


 
Vladislav Boyko #:

Еще раз ссылка на тот-же код в ответ на комментарий, в котором сказано, что он не воспроизводит проблему?

Если это не троллинг, то что это?

Ну, у меня воспроизводит


Есть другой код, тоже воспроизводит

//+------------------------------------------------------------------+
//|                                                         TRIX.mq5 |
//|                             Copyright 2000-2026, MetaQuotes Ltd. |
//|                                                     www.mql5.com |
//+------------------------------------------------------------------+
#property copyright   "Copyright 2000-2026, MetaQuotes Ltd."
#property link        "https://www.mql5.com"
#property description "Triple Exponential Average"
#include <MovingAverages.mqh>
//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_width1  1
#property indicator_label1  "TRIX"
#property indicator_applied_price PRICE_CLOSE
//--- input parameters
input int InpPeriodEMA=14;               // EMA period
//--- indicator buffers
double    TRIX_Buffer[];
double    EMA[];
double    SecondEMA[];
double    ThirdEMA[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,TRIX_Buffer,INDICATOR_DATA);
   SetIndexBuffer(1,EMA,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,SecondEMA,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,ThirdEMA,INDICATOR_CALCULATIONS);
//--- sets first bar from what index will be drawn
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,3*InpPeriodEMA-3);
//--- name for index label
   string short_name=StringFormat("TRIX(%d)",InpPeriodEMA);
   IndicatorSetString(INDICATOR_SHORTNAME,short_name);
   PlotIndexSetString(0,PLOT_LABEL,short_name);
//--- indicator digits
   IndicatorSetInteger(INDICATOR_DIGITS,5);
  }
//+------------------------------------------------------------------+
//| Triple Exponential Average                                       |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   if(rates_total<3*InpPeriodEMA-3)
      return(0);
//---
   int start;
   if(prev_calculated==0)
     {
      start=3*(InpPeriodEMA-1);
      for(int i=0; i<start; i++)
         TRIX_Buffer[i]=EMPTY_VALUE;
     }
   else
      start=prev_calculated-1;
//--- calculate EMA
   ExponentialMAOnBuffer(rates_total,prev_calculated,0,InpPeriodEMA,price,EMA);
//--- calculate EMA on EMA array
   ExponentialMAOnBuffer(rates_total,prev_calculated,InpPeriodEMA-1,InpPeriodEMA,EMA,SecondEMA);
//--- calculate EMA on EMA array on EMA array
   ExponentialMAOnBuffer(rates_total,prev_calculated,2*InpPeriodEMA-2,InpPeriodEMA,SecondEMA,ThirdEMA);
//--- calculate TRIX
   for(int i=start; i<rates_total && !IsStopped(); i++)
     {
      if(ThirdEMA[i-1]!=0.0)
         TRIX_Buffer[i]=(ThirdEMA[i]-ThirdEMA[i-1])/ThirdEMA[i-1];
      else
         TRIX_Buffer[i]=0.0;
     }
//--- OnCalculate done. Return new prev_calculated.
   return(rates_total);
  }
//+------------------------------------------------------------------+

void OnChartEvent(const int id,const long&lp,const double&dp,const string&sp)
{
  if(id==CHARTEVENT_CHART_CHANGE)
    Print(TRIX_Buffer[Bars(NULL,0)-1]);
}

--

Но если текущее значение меньше максимума/минимума в окне - CHARTEVENT_CHART_CHANGE не срабатывает