Всем, кто хотел видеть графики без пропущенных баров - сюда =) - страница 8

 
komposter, у меня появилось следующее предложение по борьбе с терминалом.
Если установить атрибуты файла WS_EURUSDm1440.hst только на чтение, то в момент старта терминала терминал также ругается в логах, но файл модифицировать НЕ МОЖЕТ! Файл прекрасно отображается на чарте как и до выключения терминала.
Так вот я думаю а что если сделать какую-нибудь внешнюю DLL, которая может по вызову её из эксперта менять атрибуты файла WS_EURUSDm1440. hst на чтение/запись? То есть когда требуется эксперту добавить в историю бар он делает вызов DLL, которая ставит атрибуты файла истории на запись, бар эксперт записывает, а потом опять вызывает DLL, чтобы она поставила атрибуты файла истории только на чтение. Я конечно же понимаю, что 100% гарантии никто в этом случае дать не сможет, но думаю, что в 95% случаях выключение/включение терминала произойдёт без порчи бара истории терминалом. Свет у меня отрубается не чаще 2х раз в месяц и меня это бы вполне устроило.
 
solandr писал (а):
komposter, у меня появилось следующее предложение по борьбе с терминалом.
Нет, ну это совсем грустно...
На самом деле, я уже разобрался почему терминал переписывает файл.
Я только не понимаю по какому праву терминал трогает мой офф-лайновый график...

Ладно, если ошибка в обычной таймсерии - надо обновить. Но это мой файл. Что хочу то и пишу.

В общем, не важно...
Сегодня постараюсь сделать рабочую версию эксперта.
 
А знаете, что самое печальное? =)
У меня на тестируемой истории было 3 бара с временем 23:00. Все остальные - 00:00, а эти 3, чтоб их...

В общем, ошибка в истории (кстати, мой "неправильный" файл с дневками, начинающимися в 23:00 МТ правит, а чесную историю - нет =))).

В любом случае, разборки не прошли напрасно - откапал маленькую багу ;)
solandr, попробуй у себя свежую версию.

Если ошибки остануться, проверь историю.

А если всё равно остануться, говори, буду дальше копать ;)
Файлы:
 
komposter писал (а):
В общем, ошибка в истории (кстати, мой "неправильный" файл с дневками, начинающимися в 23:00 МТ правит, а чесную историю - нет =))).

В любом случае, разборки не прошли напрасно - откапал маленькую багу ;)
solandr, попробуй у себя свежую версию.

Если ошибки остануться, проверь историю.

А если всё равно остануться, говори, буду дальше копать ;)


К сожалению приницпиальных изменений не произошло :o(. Также ругается в логах и те же самые графики с Digits=0.
2006.11.02 11:45:16 HistoryBase: 42 errors in 'WS_NZDUSDm1440'
2006.11.02 11:45:16 HistoryBase: 271 errors in 'WS_EURJPYm1440'
2006.11.02 11:45:16 HistoryBase: 271 errors in 'WS_EURCHFm1440'
2006.11.02 11:45:16 HistoryBase: 272 errors in 'WS_AUDUSDm1440'
2006.11.02 11:45:16 HistoryBase: 271 errors in 'WS_EURGBPm1440'
2006.11.02 11:45:16 HistoryBase: 272 errors in 'WS_USDJPYm1440'
2006.11.02 11:45:16 HistoryBase: 272 errors in 'WS_USDCADm1440'
2006.11.02 11:45:16 HistoryBase: 272 errors in 'WS_GBPUSDm1440'
2006.11.02 11:45:16 HistoryBase: 78 errors in 'WS_CHFJPYm1440'
2006.11.02 11:45:16 HistoryBase: 272 errors in 'WS_USDCHFm1440'
2006.11.02 11:45:16 HistoryBase: 272 errors in 'WS_EURUSDm1440'

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

Как проверить историю? Это история, которую терминал по-честному самостоятельно накачал посредством длительного нажатия на клавишу Home. Я ничего в неё не импортировал. Может быть Вы её посмотрите и что-то сможете сказать по ней? Файл истории прикладываю.

PS: Я конечно же могу сделать предположение о том, что история, хранящаяся на сервере у брокера имеет какие-то ошибки,  например большие "шпильки" на графиках, а также разрывы в котировках по нескольку дней, но только возникает вопрос следующего плана. Почему терминал не выдаёт ошибок при работе с ней, а выдаёт ошибки только тогда, когда эту историю подкорректировали посредством несложного преобразования и ТОЛЬКО после того, что убедились, что график откорректированной истории корректно отображается, хотя при этом терминал и пишет в логах ошибки? Что могли бы сказать разработчики о возможности подружить терминал с этим экспертом?
Файлы:
history.zip  681 kb
 
solandr:
К сожалению приницпиальных изменений не произошло :o(. Также ругается в логах и те же самые графики с Digits=0.
Вы попробуйте открыть сразу несколько офлайновых графиков, чтобы быстрее увидеть ошибку.
ОК, сегодня продолжу борьбу ;)

Как проверить историю? Это история, которую терминал по-честному самостоятельно накачал посредством длительного нажатия на клавишу Home. Я ничего в неё не импортировал. Может быть Вы её посмотрите и что-то сможете сказать по ней? Файл истории прикладываю.

У меня тоже была "честная" история. Все Д1 бары начинаются в 00:00, а 3 бара - в 23:00.
МТ на это ни как не отреагировал.
А вот офф-лайн график идентичный честному МТ бракует.

Т.е. я специально пробовал убрать из кода все преобразования, и просто копировал историю - МТ говорит errors...
 
solandr:
К сожалению приницпиальных изменений не произошло :o(. Также ругается в логах и те же самые графики с Digits=0.
Пробуй ;)
Файлы:
 
komposter писал (а):
Пробуй ;)

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

Но к сожалению осталась одна неприятность. Эксперты не работают на автономно открытом графике :o(((.
Вот например вот этот эксперт ничего не печатает:
//+------------------------------------------------------------------+
//|                                                          bid.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net// |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net//"
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   Print("Bid=",Bid);
//----
   return(0);
  }
//+------------------------------------------------------------------+
Возможно ли как то подтолкнуть запуск экспертов на автономно открытом графике, иначе весь смысл стараний, к сожалению теряется? Хотя индикаторы и скрипты вроде нормально работают на автономнооткрытых графиках.
Правда это нужно ещё досконально проверить. Если индикаторы действительно работают корректно, то можно будет разделить эксперта на 2 составляющие. Одна - это индикатор на автономном графике, а вторая - это эксперт, управляющий ордерами и получающий данные через глобальные переменные терминала от индикатора. Хотя конечно же даже не знаю что проще будет. Самому заняться в эксперте неучётом воскресных баров при расчётах, или разделить уже отлаженного на реале эксперта на 2 части? Хотелось бы, чтобы всё было по-человечески как и задумывалось, а не как прийдётся поступать в случае неработоспособности экспертов на автономнооткрытых графиках.
 
solandr:
Отлично! Теперь вроде бы никаких ошибок терминал не печатает и графики открываются корректно после повторного включения терминала. Если не секрет, то как удалось победить терминал?

Но к сожалению осталась одна неприятность. Эксперты не работают на автономно открытом графике :o(((.
Секрет =)

А эксперты вообще не работают на офф-лайн графиках.
В смысле, не запускается ф-ция start().

Решение есть - весь код поместить в цикл:
int init()
{
   start();
}
int start()
{
   while (!IsStopped())
   {
      //код эксперта
      Sleep(10);
   }
}
 
komposter писал (а):

Решение есть - весь код поместить в цикл:


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


Заранее благодарю!

 
solandr:

Но только всё равно не понятно почему нельзя было разрешить работу экспертов на офлайновых графиках? Могли бы Вы дать ссылку на официальную информацию разработчиков о том, что они это сделали по каким-то определённым причинам и пересматривать свою позицию не будут? Я её наверное плохо искал?

Попробовал найти - не получилось.
Но информация была, это точно )
Причина обращения: