Новая версия платформы MetaTrader 5 build 4230: больше встроенных приложений и расширение поддержки ONNX - страница 13

 
Vladimir Pastushak #:

Какую ошибку вы получаете можете ответить ?

Что пишет GetLastError() ? 

Должна быть какая то ошибка возможно.

Никакую. Нет ошибок
 
В общем, заменил EventSetMillisecondTimer(7000) на EventSetTimer(7);
Для меня лично проблема решена.
 
igemon173 #:
Для меня лично проблема решена.

Для меня - нет.

const bool Init = EventSetTimer(1);   

void OnTimer()
{
  Comment(TimeLocal()); // Ничего на чарте.
  Print(TimeLocal()); // Принтует каждую секунду.
}
 
fxsaber #:

Для меня - нет.

ChartRedraw(0) ?

и проверить ChartGetString(0,CHART_COMMENT) поменялся-ли...

может в пачке дефайнов Comment переопределён

 
Maxim Kuznetsov #:

ChartRedraw(0) ?

и проверить ChartGetString(0,CHART_COMMENT) поменялся-ли...

const bool Init = EventSetTimer(1);   

void OnTimer()
{
  Comment(TimeLocal()); // Не выводит.
  ChartRedraw();        // Ничего не меняет.
  Print(ChartGetString(0, CHART_COMMENT)); // Ежесекундная пустота
  Print(_LastError);                       // Ежесекундная 4102
  ResetLastError();
}


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


Воспроизводится на WinServer. 

 

Такой код 

ResetLastError();
long test_chart = ChartFirst();
Print("ID:" + IntegerToString(test_chart) + " CHART:" + ChartSymbol(test_chart) + " ERR:" + string(GetLastError()));

воспроизводится на 

Admiral Markets MT5 x64 build 4231 started for Admiral Markets Group AS
Windows Server 2016 build 14393 on KVM, 2 x AMD Ryzen 5 3600 6-Core, AVX2, 0 / 2 Gb memory, 17 / 42 Gb disk, RDP, UAC, admin, GMT+2

таким образом 

ID:133368334512658700 CHART: ERR:4102

Это что же теперь на Winserver про функции с чартами можно забыть?

 
fxsaber #:

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

Воспроизводится на WinServer. 

Воспроизвел на

Выпуск Windows Server 2022 Standard

Версия 21H2

Дата установки ‎1/‎16/‎2023

Сборка ОС 20348.1487

4102 принтует


 

Вывод комментов на экран работает на 4231 билде с:

Windows Server 2012 R2 build 9600, 4 x AMD EPYC 7543P 32-Core, AVX2
Windows Server 2019 build 17763, 4 x Intel Xeon E-2224  @ 3.40GHz, AVX2
Windows Server 2022 build 20348, 8 x AMD EPYC 7543P 32-Core, AVX2
Windows 11 build 22631, 32 x AMD Ryzen 9 7950X 16-Core, AVX2

Только что проверил пример:

const bool Init = EventSetTimer(1);   

void OnTimer()
{
  Comment(TimeLocal()); // Не выводит.
  ChartRedraw();        // Ничего не меняет.
  Print(ChartGetString(0, CHART_COMMENT)); // Ежесекундная пустота
  Print(_LastError);                       // Ежесекундная 4102
  ResetLastError();
}

Добавил результат и для Windows 2012.

Может люди скрипт пускают вместо эксперта?

 
Renat Fatkhullin #:

Вывод комментов на экран работает на 4231 билде с:

Только что проверил пример:

2024.03.09 20:35:49.244 Terminal        MetaTrader 5 x64 build 4231 started for MetaQuotes Software Corp.
2024.03.09 20:35:49.244 Terminal        Windows 7 Service Pack 1 build 7601, 8 x AMD FX-8350 Eight-Core, AVX, 14 / 31 Gb memory, 178 / 1794 Gb disk, admin, GMT+3

Когда заработает этот код:

//+------------------------------------------------------------------+
//|                                                          Bat.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Graphics\Graphic.mqh>
#define RESULT_OR_NAN(x,expression) ((x==0)?(double)"nan":expression)
//--- Functions
double BlueFunction(double x)
  {
   return(RESULT_OR_NAN((fabs(x)-1) *(fabs(x)-3),2*sqrt(-fabs(fabs(x)-1)*fabs(3-fabs(x))/
   ((fabs(x)-1)*(3-fabs(x))))*(1+fabs(fabs(x)-3)/(fabs(x)-3))*sqrt(1-pow(x/7,2))+(5+0.97*
   (fabs(x-.5)+fabs(x+.5))-3*(fabs(x-.75)+fabs(x+.75)))*(1+fabs(1-fabs(x))/(1-fabs(x)))));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double RedFunction(double x)
  {
   return(RESULT_OR_NAN(fabs(x)-4,(-3*sqrt(1-pow(x/7,2))*sqrt(fabs(fabs(x)-4)/(fabs(x)-4)))));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double OrangeFunction(double x)
  {
   return(fabs(x/2)-0.0913722*(x*x)-3+sqrt(1-pow(fabs(fabs(x)-2)-1,2)));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double GreenFunction(double x)
  {
   return(RESULT_OR_NAN(fabs(x)-1,(2.71052+(1.5-.5*fabs(x))-1.35526*sqrt(4-pow(fabs(x)-1,2)))*
   sqrt(fabs(fabs(x)-1)/(fabs(x)-1))+0.9));
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   double from=-7;
   double to=7;
   double step=0.01;
   CGraphic graphic;
   graphic.Create(0,"G",0,30,30,780,380);
//--- colors
   CColorGenerator generator;
   uint blue= generator.Next();
   uint red = generator.Next();
   uint orange=generator.Next();
   uint green=generator.Next();
//--- plot all curves
   graphic.CurveAdd(RedFunction,from,to,step,red,CURVE_LINES,"Red");
   graphic.CurveAdd(OrangeFunction,from,to,step,orange,CURVE_LINES,"Orange");
   graphic.CurveAdd(BlueFunction,from,to,step,blue,CURVE_LINES,"Blue");
   graphic.CurveAdd(GreenFunction,from,to,step,green,CURVE_LINES,"Green");
   graphic.CurvePlotAll();
   graphic.Update();  
  }
//+------------------------------------------------------------------+

На экране пустота - код из статьи MQ.

 
Renat Fatkhullin #:

Может люди скрипт пускают вместо эксперта?

Это невозможно в MT5, т.к. MT5 автоматически во время компиляции ставит идентификацию кода, как советника.

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