Новая версия платформы MetaTrader 4 build 1310 - страница 4

 
При созранении отчета тестера стратегии  выходит пустая страница с надписью pİ.
 

В предыдущих версиях нормально работали мои советники. Версия 1310 сбоит по нескольку раз в день. Терминал (с работающим советником) несколько раз в день самопроизвольно закрывается. Также несколько раз в день выходят ошибки "Access violation write to 0х001FFC5C in c:\Program Files(x86)\.....\имя_советника.ex4" Ну, адрес памяти всякий раз новый. Терминал стоит на win10. Перекомпилировал советника на всякий случай - результата нет.

Я бы вернулся на предыдущий билд и отключил автообновление пока не исправят.  Как это можно сделать?

 
derek:

Я бы вернулся на предыдущий билд и отключил автообновление пока не исправят.  Как это можно сделать?

Файлы возьмите в моем архиве.

Как отключить авто-обновление — поищите здесь, обсуждалось.

 
Igor Makanu:

если честно, то не помню просто

МТ4 стал открывать раз в 3 месяца, вот и бросилось в глаза после МТ5 отсутствие значка запущен скрипт

Значка не было. Только в контекстном меню можно посмотреть, имеется ли на графике скрипт. Там появляется пункт меню "Удалить скрипт". Также при переключении ТФ или в момент подключения нового скрипта появится уточняющий вопрос, мол, будет удален скрипт, точно ли хотите этого.

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

 
Andrey Khatimlianskii:

Файлы возьмите в моем архиве.

Спасибо за архив. К сожалению, не помог в моей проблеме.


Вторую неделю не могу торговать в четверке, бьюсь над решением.

Ничего не затирал на скрине. Все именно так.


Если нажать на Свойства.


Шаблон этого чарта.

<chart>
id=132520720751068750
symbol=GBPAUD.rann
period=60
leftpos=1370
digits=5
scale=2
graph=0
fore=0
grid=1
volume=0
scroll=1
shift=0
ohlc=1
one_click=0
one_click_btn=1
askline=0
days=0
descriptions=0
shift_size=20
fixed_pos=0
window_left=26
window_top=26
window_right=1316
window_bottom=512
window_type=3
background_color=0
foreground_color=16777215
barup_color=65280
bardown_color=65280
bullcandle_color=0
bearcandle_color=16777215
chartline_color=65280
volumes_color=3329330
grid_color=10061943
askline_color=255
stops_color=255

<window>
height=100
fixed_height=0
<indicator>
name=main
</indicator>
</window>
</chart>


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

Там заодно всегда при этом возникает ошибка EventSetTimer.

2020.12.14 12:41:02.693 HistoryTicks GBPAUD.rann,H1: Alert: HistoryTicks: bool EventSetTimer2(const int,const int), Line = 334: Count = 2, _LastError = 4024
2020.12.14 12:41:02.693 HistoryTicks GBPAUD.rann,H1: cannot set timer (1)


Если сделать в случае неудачи EventSetTimer несколько повторных попыток, то Терминал на несколько секунд подвисает, выдавая все равно на все попытки ошибки.


ЗЫ Когда добавляю Sleep(1000) в начале OnInit советника (который к своему чарту с индикатором применяет шаблон), баг перестает проявляться.

 
fxsaber:

Ничего не затирал на скрине. Все именно так.

Мне удавалось добиться такого эффекта и без применения шаблона. То ли компиляцией индикатора, то ли еще как-то, уже не помню.

 
Andrey Khatimlianskii:

Мне удавалось добиться такого эффекта и без применения шаблона. То ли компиляцией индикатора, то ли еще как-то, уже не помню.

В данном случае в Терминале только ex4-файлы. Без исходников.

 
fxsaber:

В данном случае в Терминале только ex4-файлы. Без исходников.

Имел в виду, что баг не в применении шаблона, ну или не только в нем.

 

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

Новая версия платформы MetaTrader 4 build 1310

fxsaber, 2020.12.14 11:48

Вторую неделю не могу торговать в четверке, бьюсь над решением.

Ничего не затирал на скрине. Все именно так.


Если нажать на Свойства.


Шаблон этого чарта.

<chart>
id=132520720751068750
symbol=GBPAUD.rann
period=60
leftpos=1370
digits=5
scale=2
graph=0
fore=0
grid=1
volume=0
scroll=1
shift=0
ohlc=1
one_click=0
one_click_btn=1
askline=0
days=0
descriptions=0
shift_size=20
fixed_pos=0
window_left=26
window_top=26
window_right=1316
window_bottom=512
window_type=3
background_color=0
foreground_color=16777215
barup_color=65280
bardown_color=65280
bullcandle_color=0
bearcandle_color=16777215
chartline_color=65280
volumes_color=3329330
grid_color=10061943
askline_color=255
stops_color=255

<window>
height=100
fixed_height=0
<indicator>
name=main
</indicator>
</window>
</chart>


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

Там заодно всегда при этом возникает ошибка EventSetTimer.

Добил все таки до 100%-го воспроизведения.


Запустить индикатор IndicatorBUG (в прицепе):

#property strict

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots indicator_buffers

int OnInit()
{
  const bool Res = !EventSetTimer(1);

  if (Res)
    Alert(MQLInfoString(MQL_PROGRAM_NAME) + ": EventSetTimer == false, _LastError = " + (string)_LastError);

  return(Res);
}

void OnDeinit( const int )
{
  uint StartTime = GetTickCount();

  while (GetTickCount() - StartTime < 1000)
    ;
}

int OnCalculate( const int, const int, const datetime &[], const double &[], const double &[],
                 const double &[], const double &[], const long &[], const long &[], const int &[] )
{
  return(0);
}


На этом же чарте запустить советник ExpertBUG (в прицепе):

#property strict

bool ReloadChart( const long Chart = 0 )
{
  return (ChartSaveTemplate(Chart, "\\Files\\" + __FILE__ + ".tpl") &&
          ChartApplyTemplate(Chart, "\\Files\\" + __FILE__ + ".tpl") && // Поставили задание в очередь чарта.
          ChartGetInteger(Chart, CHART_WINDOW_HANDLE));                 // Заставляем двигаться очередь.
}

int OnInit( void )
{
  return(GlobalVariableCheck(__FILE__) ? GlobalVariableDel(__FILE__)
                                       : (GlobalVariableSet(__FILE__, 0) && ReloadChart()));
}

void OnDeinit( const int )
{
  ::ChartRedraw();
}

class CLASS
{
public:
  ~CLASS() { ::ChartRedraw(); }
} Object;


В результате получится висеть непонятный индикатор (см. скрин выше). И будет ошибка установки таймера. Ниже полный лог (читать снизу вверх).

2020.12.15 16:11:56.499 Expert ExpertBUG EURUSD.rann,M1: removed
2020.12.15 16:11:56.496 ExpertBUG EURUSD.rann,M1: uninit reason 8
2020.12.15 16:11:56.496 ExpertBUG EURUSD.rann,M1: initialization failed (1)
2020.12.15 16:11:56.480 Custom indicator IndicatorBUG EURUSD.rann,M1: removed
2020.12.15 16:11:55.485 IndicatorBUG EURUSD.rann,M1: uninit reason 8
2020.12.15 16:11:55.485 IndicatorBUG EURUSD.rann,M1: initialization failed (1)
2020.12.15 16:11:55.485 IndicatorBUG EURUSD.rann,M1: Alert: IndicatorBUG: EventSetTimer == false, _LastError = 4024
2020.12.15 16:11:55.485 IndicatorBUG EURUSD.rann,M1: cannot set timer (1)
2020.12.15 16:11:54.440 Expert ExpertBUG EURUSD.rann,M1: loaded successfully
2020.12.15 16:11:54.429 Custom indicator IndicatorBUG EURUSD.rann,M1: loaded successfully
2020.12.15 16:11:54.418 Custom indicator IndicatorBUG EURUSD.rann,M1: removed
2020.12.15 16:11:53.430 Expert ExpertBUG EURUSD.rann,M1: removed
2020.12.15 16:11:53.428 IndicatorBUG EURUSD.rann,M1: uninit reason 7
2020.12.15 16:11:53.427 ExpertBUG EURUSD.rann,M1: uninit reason 8
2020.12.15 16:11:53.427 ExpertBUG EURUSD.rann,M1: initialization failed (1)
2020.12.15 16:11:52.068 Expert ExpertBUG EURUSD.rann,M1: loaded successfully
2020.12.15 16:11:50.500 IndicatorBUG EURUSD.rann,M1: initialized
2020.12.15 16:11:47.285 Custom indicator IndicatorBUG EURUSD.rann,M1: loaded successfully


Потратил очень много времени для получения этого результата. Прошу форумчан отписаться, воспроизводится или нет.

Очень прошу разработчиков выпустить еще один MT4-билд, исправляющий этот баг.

Строка для поиска: Oshibka 018.

Файлы:
 
fxsaber:

Потратил очень много времени для получения этого результата. Прошу форумчан отписаться, воспроизводится или нет.

Строка для поиска: Oshibka 018.

1313, воспроизводится:


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