Новая версия клиентского терминала MetaTrader 4 build 218 - страница 3

 
Renat писал (а) >>

Геп на минутках был. Уже дырку по GBPUSD закачали - фильтры излишне сильно настроены были - вот они на гепе и подрезались.

Если конечно это возможно пусть лучше реквоты, чем дыры. Для ДЦ вроде разницы нет, а вот для анализа есть.

 

Поменял сразу три вещи - появилась проблема, не знаю на кого грешить?

1. Поставил Windows Vista.

2. Поставил антивирус Касперского 8.0.0.454

3. Обновилась программа МТ4 до 218.

Появилась следующая проблема - в закладке "ЭКСПЕРТЫ" Торгового Терминала щелкаю правой кнопкой мыши, далее "ОТКРЫТЬ" открывается папка проводника ... expert/logs в ней как обычно текстовый файл с именем даты, но в этом файле не все мои выводимые в процессе работы эксперта PRINT-ы как это было ранее, а какая то чушь. Привожу ее ниже:

"20:03:59 Compiling 'MACD Sample'
20:03:59 Compiling 'Moving Average'
20:04:00 Compiling 'Accelerator'
20:04:00 Compiling 'Accumulation'
20:04:00 Compiling 'Alligator'
20:04:00 Compiling 'ATR'
20:04:00 Compiling 'Awesome'
20:04:01 Compiling 'Bands'
20:04:01 Compiling 'Bears'
20:04:01 Compiling 'Bulls'
20:04:02 Compiling 'CCI'
20:04:02 Compiling 'Heiken Ashi'
20:04:02 Compiling 'Ichimoku'
20:04:03 Compiling 'iExposure'
20:04:03 Compiling 'MACD'
20:04:03 Compiling 'Momentum'
20:04:04 Compiling 'Moving Averages'
20:04:04 Compiling 'OsMA'
20:04:04 Compiling 'Parabolic'
20:04:05 Compiling 'RSI'
20:04:05 Compiling 'Stochastic'
20:04:05 Compiling 'ZigZag'
20:04:06 Compiling 'close'
20:04:06 Compiling 'delete_pending'
20:04:06 Compiling 'modify'
20:04:07 Compiling 'modify_pending'
20:04:07 Compiling 'period_converter'
20:04:07 Compiling 'rotate_text'
20:04:08 Compiling 'send_pending'
20:04:08 Compiling 'trade'
20:04:09 Compiling 'stdlib'"

Что не так? И где исправлять ситуацию?

 

Как правильно решить следующую задачу ?

Есть индикатор, в котором инициализированная переменная должна соответствовать Close на глубине расчетной истории.

Вот пример индикатора

#property indicator_chart_window
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Red      // Цвет линии

//---- input parameters
extern int       History=1440;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  Print("History=",History," Close=",DoubleToStr(Close[History],4));
/*
  while(Close[History]==0) 
   {
   History--;
   Print("1111 History=",History," Close=",DoubleToStr(Close[History],4));
   }
*/
for(int i=0;i<10;i++)
   {
   Print(i," History=",History," Close=",DoubleToStr(Close[History],4));
   History--;
   }
  return(0);
  }
int deinit() { return(0); }
int start()  { return(0); }

Вот лог при запуске советника (советник прилагается).

2008.09.09 01:48:01 2008.01.02 09:02 1111 GBPUSD,M1: removed

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 9 History=1431 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 8 History=1432 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 7 History=1433 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 6 History=1434 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 5 History=1435 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 4 History=1436 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 3 History=1437 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 2 History=1438 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 1 History=1439 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: 0 History=1440 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: History=1440 Close=0.0000

2008.09.09 01:47:58 2008.01.02 09:01 1111 GBPUSD,M1: loaded successfully

2008.09.09 01:47:58 Sov_1111 inputs: History=1440;

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

При попытке использовать while() терминал виснет намертво (. (Закоментированно)

Что делать подскажите.

Файлы:
sov_1111.mq4  2 kb
1111.mq4  1 kb
 
Prival писал (а) >>

Как правильно решить следующую задачу ?

Есть индикатор, в котором инициализированная переменная должна соответствовать Close на глубине расчетной истории.

При тестировании эксперту доступна история от даты старта на 1000 баров назад

07:45:05 1111: loaded successfully
07:45:05 1111 inputs: History=1440;
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: History=1440 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 0 History=1440 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 1 History=1439 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 2 History=1438 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 3 History=1437 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 4 History=1436 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 5 History=1435 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 6 History=1434 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 7 History=1433 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 8 History=1432 Close=0.0000
07:45:05 2008.01.02 08:00 1111 EURUSD,H4: 9 History=1431 Close=0.0000

07:46:18 1111 inputs: History=900;
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: History=900 Close=1.3437
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 0 History=900 Close=1.3437
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 1 History=899 Close=1.3426
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 2 History=898 Close=1.3439
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 3 History=897 Close=1.3448
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 4 History=896 Close=1.3449
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 5 History=895 Close=1.3455
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 6 History=894 Close=1.3465
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 7 History=893 Close=1.3490
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 8 History=892 Close=1.3481
07:46:18 2008.01.02 08:00 1111 EURUSD,H4: 9 History=891 Close=1.3493

 

Все-таки что то не то с тестером.

1. Просто накидываю индикатор на график. Значение есть

2008.09.09 09:13:39 1111 GBPUSD,M1: History=900 Close=2.0849

2. Теперь сохраняю шаблон под именем tester, и запускаю в режиме визуализации

2008.09.09 09:13:58 1111 GBPUSD,M1: History=900 Close=0.0000

(( Значения нет.

Индикатор

#property indicator_chart_window
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Red      // Цвет линии

//---- input parameters
extern int       History=900;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  Print("History=",History," Close=",DoubleToStr(Close[History],4));
  return(0);
  }
int deinit() { return(0); }
int start()  { return(0); }

Эксперт

#property copyright "Привалов С.В."
#property link      "Skype -> privalov-sv"

extern int       History=900;
int init()  {return(0);}
int deinit(){return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
int    Ma=iCustom(NULL,0,"1111",History,0,1);   
   return(0);
  }

вот еще обратил внимание.

Лог журнала тестера

2008.09.09 09:28:23 2007.11.07 00:17 1111 GBPUSD,M1: removed
2008.09.09 09:28:20 2007.11.07 00:00 1111 GBPUSD,M1: History=900 Close=2.0848
2008.09.09 09:28:20 2007.11.07 00:00 1111 GBPUSD,M1: loaded successfully
2008.09.09 09:28:20 Sov_1111 inputs: History=900;
2008.09.09 09:28:17 Sov_1111: loaded successfully
Лог вкладки эксперта терминала

2008.09.09 09:28:17 1111 GBPUSD,M1: initialized
2008.09.09 09:28:17 1111 GBPUSD,M1: History=900 Close=0.0000
2008.09.09 09:28:17 1111 GBPUSD,M1: loaded successfully

Разработчики это ошибка тестера ? Или я что то не так делаю ?

 

В новой версии build 218 при тестировании остаются графические объекты и история сделок предыдущих прогонов.

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

При изменении периода тестера координаты существующих объектов не масштабируются (если был на 5 баре то появляется тоже на 5 и совершенно выпадают из текущих котировок).

Очистка каталогов tester\history, tester\Logs ничего не дает.

Помогает удаление терминала и повторная установка.

Как решить проблему?

 
albe писал (а) >>

...

Появилась следующая проблема - в закладке "ЭКСПЕРТЫ" Торгового Терминала щелкаю правой кнопкой мыши, далее "ОТКРЫТЬ" открывается папка проводника ... expert/logs в ней как обычно текстовый файл с именем даты, но в этом файле не все мои выводимые в процессе работы эксперта PRINT-ы как это было ранее, а какая то чушь. Привожу ее ниже:

...

Что не так? И где исправлять ситуацию?

Возможно, проблема заключается в Висте. В ней применена новая технология, которая по умолчанию запускает приложения с правами обычного пользователя, несмотря на тип учетной записи "Администратор компьютера". Как следствие, запрещена запись в папку "Program Files", куда установлена программа MetaTrader, и куда как раз активно вносятся изменения в процессе работы. Однако, ошибки не возникает, так как Виста "делает вид", что писать туда можно, но на самом деле вносит изменения в папку "Roaming" в профиле пользователя.

В общем, если короче, у меня тоже Виста. Поначалу также был удивлен поведением программы. В свойствах ярлыка для запуска МетаТрейдера поставил галочку "Запускать от имени администратора", и все проблемы кончились. Но если включен контроль учетных записей, то Виста при каждом запуске будет спрашивать, действительно ли мы хотим запустить эту программу. Меня лично это не особо беспокоит.

Вот, постарался коротко описать ситуацию. Возможно, дело в этом...

 
Prival писал (а) >>

Все-таки что то не то с тестером.

1. Просто накидываю индикатор на график. Значение есть

2008.09.09 09:13:39 1111 GBPUSD,M1: History=900 Close=2.0849

2. Теперь сохраняю шаблон под именем tester, и запускаю в режиме визуализации

2008.09.09 09:13:58 1111 GBPUSD,M1: History=900 Close=0.0000

(( Значения нет.

Насколько я помню, в МТ4 не гарантирются корректные значения предопределённых переменных во время работы функции init(). Возможно проблема в том, что индикатор пытается читать Close именно в init().

 
lna01 писал (а) >>

Насколько я помню, в МТ4 не гарантирются корректные значения предопределённых переменных во время работы функции init(). Возможно проблема в том, что индикатор пытается читать Close именно в init().

Я это понял. Спасибо. Но мне очень нужно, до начала прорисовки индикатора иметь ряд значений цены. Начали танцы с бубном. Vinin обещал помочь.

 

Это без проблем делается при помощи добавления одной булевой переменной, например назовём её FirstRun .

Затем в init делаем FirstRun = true;

Затем в start()
 
  if (FirstRun) {
 
    FirstRun = false;
 
// Далее всё, что мы хотели, но не решались сделать в init()
    ...
 
  }
Причина обращения: