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

 
solandr:
Ещё хотелось бы узнать о следующих время от времени выскакивающих ошибках, возникающих при включении терминала:

Это ошибки _выключения_, а не ключения )

Если экперт нормально завершает работу, он закрывает файлы, и потом нормально открывает при следующей загрузке.

Максимум может быть открыто 32 файла.
Если МТ матюкается, значит предыдущие файлы не закрыты, и вместе с новыми получается слишком много.
Хотя, может и другие скрипты/эксперты открывают файлы?

Что такое errors в HistoryBase - не знаю.
Если получиться воспроизвести проблему и понять в чем дело, скажи пожалуйста. Постараемся исправить ;)
 
komposter писал (а):

Максимум может быть открыто 32 файла.
Если МТ матюкается, значит предыдущие файлы не закрыты, и вместе с новыми получается слишком много.
Хотя, может и другие скрипты/эксперты открывают файлы?

Мои эксперты с файлами не работают. Активно работают только с глобальными переменными терминала. Но никогда ранее проблем в работе у них не возникало. Уже в течение месяца как наблюдаю за работой на реале.

Хорошо, если смогу отловить условия возникновения ошибок, то сообщу. Предварительно могу сказать лишь, что в момент первоначального старта терминала происходит инициализация экспертов и необходимых индикаторов, которое занимает секунд 20. То есть на это время в виду больших единоразово производимых расчётов сразу на 12 валютных парах терминал просто подвисает. Но потом после прохождения инициализации расчёты производятся очень экономно с распределением по времени через генератор случайных чисел. То есть случайным образом выбирается интервал (от 10 до 30 минут), через который будет произведён следующий просчёт каналов для данной валютной пары. Значение записывается в глобальную переменную терминала и потом сравнивается в эксперте. Таким образом достаточно объёмные расчёты по 12 валютным парам отлично работают на контроллере на базе процессора VIA C3 800MHz совершенно его не надрывая. Весь смысл заключается в удобстве этого контроллера в эксплуатации - компактные габариты, масса 1 кг, Win2000 нормально работает на нём и самое главное что он просто безвентиляторный - можно хоть у головы его поставить и спать спокойненько - шума никакого он не производит как это делают обычные компы своими куллерами. http://www.compactpc.com.tw/ebox-3851.htm
Правда он малось греется. Но я эту проблему решил просто подвесив медные радиаторы от P4 по бокам корпуса. Теперь всё нормально с температурой у него.
Доступ к терминалу я делаю через утилиту RawAdmin с любого места где есть инет. То есть монитор нужен лишь только для первоначальной установки операционной системы на этот миникомп.
 
solandr:
Таким образом достаточно объёмные расчёты по 12 валютным парам отлично работают на контроллере на базе процессора VIA C3 800MHz совершенно его не надрывая. Весь смысл заключается в удобстве этого контроллера в эксплуатации - компактные габариты, масса 1 кг, Win2000 нормально работает на нём и самое главное что он просто безвентиляторный - можно хоть у головы его поставить и спать спокойненько - шума никакого он не производит как это делают обычные компы своими куллерами. http://www.compactpc.com.tw/ebox-3851.htm
Правда он малось греется. Но я эту проблему решил просто подвесив медные радиаторы от P4 по бокам корпуса. Теперь всё нормально с температурой у него.
Доступ к терминалу я делаю через утилиту RawAdmin с любого места где есть инет. То есть монитор нужен лишь только для первоначальной установки операционной системы на этот миникомп.
А сколько стоит такая игрушка? Сходу не нашел цены.
 
Rosh:
А сколько стоит такая игрушка? Сходу не нашел цены.

Я её покупал за 185USD за само изделие + 70USD за 2,5HDD на 40Гб. Но в России она будет стоить наверное раза в 2 дороже.
 

Вот увидел описанную ошибку опять. Думаю, что она чаще всего проявляется на неактивном рынке. Когда рынок очень неактивен, то ошибка прявляется строго регулярно. Один пуск термнала нормально, следущий с ошибкой, потом цикл повторяется. Когда рынок активен ошибка может долго не проявляться. Вот описание ошибки.
Сначала при открытии терминала происходит пропадание нормальной оси цен по вертикали справа. При чём это может быть например на 8 графиках из 12. Каждый раз может быть по разному. Скриншоты ниже. При этом никаких ошибок в логе не прописывается!
Далее выключаем и включаем терминал вновь. Графики приходят опять в нормальное состояние, а в журнале терминала появляется следующая запись об ошибках:
2006.10.31 12:20:30 HistoryBase: 48 errors in 'WS_AUDJPYm1440'
2006.10.31 12:20:30 HistoryBase: 42 errors in 'WS_NZDUSDm1440'
2006.10.31 12:20:30 HistoryBase: 272 errors in 'WS_EURJPYm1440'
2006.10.31 12:20:30 HistoryBase: 272 errors in 'WS_EURCHFm1440'
2006.10.31 12:20:30 HistoryBase: 272 errors in 'WS_AUDUSDm1440'
2006.10.31 12:20:30 HistoryBase: 272 errors in 'WS_EURGBPm1440'
2006.10.31 12:20:30 HistoryBase: 273 errors in 'WS_USDJPYm1440'
2006.10.31 12:20:30 HistoryBase: 272 errors in 'WS_USDCADm1440'
2006.10.31 12:20:30 HistoryBase: 273 errors in 'WS_GBPUSDm1440'
2006.10.31 12:20:30 HistoryBase: 78 errors in 'WS_CHFJPYm1440'
2006.10.31 12:20:29 HistoryBase: 273 errors in 'WS_USDCHFm1440'
2006.10.31 12:20:29 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 12:19:59 HistoryBase: 48 errors in 'WS_AUDJPYm1440'
2006.10.31 12:19:59 HistoryBase: 42 errors in 'WS_NZDUSDm1440'
2006.10.31 12:19:59 HistoryBase: 272 errors in 'WS_EURJPYm1440'
2006.10.31 12:19:59 HistoryBase: 272 errors in 'WS_EURCHFm1440'
2006.10.31 12:19:59 HistoryBase: 272 errors in 'WS_AUDUSDm1440'
2006.10.31 12:19:59 HistoryBase: 272 errors in 'WS_EURGBPm1440'
2006.10.31 12:19:59 HistoryBase: 273 errors in 'WS_USDJPYm1440'
2006.10.31 12:19:59 HistoryBase: 272 errors in 'WS_USDCADm1440'
2006.10.31 12:19:59 HistoryBase: 273 errors in 'WS_GBPUSDm1440'
2006.10.31 12:19:59 HistoryBase: 78 errors in 'WS_CHFJPYm1440'
2006.10.31 12:19:59 HistoryBase: 273 errors in 'WS_USDCHFm1440'
2006.10.31 12:19:59 HistoryBase: 273 errors in 'WS_EURUSDm1440'

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

Иногда, когда запуск терминала происходит без визуальных ошибок описанный выше лог может также появляться, хотя графики выглядят нормально при этом.












 

Я уже опять начал тестировать эксперта на одной валюте.
Выяснил одну особенность. Ошибка
HistoryBase: 273 errors in 'WS_EURUSDm1440'
появляется в момент открытия графика изменённых котировок.
То есть если этого графика не открывать, то этой ошибки печататься не будет.

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

Брокер InterBankFX, период D1, ограничение на количество баров в окне 2000.
Настройки эксперта:
//---- Список графиков которые необходимо обрабатывать, разделённый запятой (",")
extern string ChartList = "EURUSD1440m";
extern bool SundayToMonday = true;
//---- Частота, с которой будут обновляться графики в милисекундах
//---- Чем больше значение, тем меньше ресурсов будет использовать скрипт.
extern int RefreshLuft = 30000;

Также разрешён импорт функций из DLL.

2006.10.31 14:55:53 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:55:21 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:54:49 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:54:18 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:53:46 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:53:14 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:52:43 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:52:13 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:51:42 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:51:11 HistoryBase: 273 errors in 'WS_EURUSDm1440'
2006.10.31 14:50:40 HistoryBase: 273 errors in 'WS_EURUSDm1440'


Файлы:
 
Сообщения об ошибках появляются при проверке считанных графиков с вашего сгенерированного файла.
Эти означает наличие самых примитивных ошибок:
  • неправильные OHLC (например, High ниже Open и тд)
  • неправильные или нулевые объемы
  • ошибка чередования баров по времени, когда бары оказываются перемешаны
Эти ошибочные бары автоматически вырезаются из истории. Проверьте свой скрипт детально.
 
Renat:
Проверьте свой скрипт детально.

Сегодня обязательно проверю...
 
Renat:
Сообщения об ошибках появляются при проверке считанных графиков с вашего сгенерированного файла.
Эти означает наличие самых примитивных ошибок:
Или, в нашем случае, непривильное значение Digits в заголовке файла. ..

Провел расследование.
- в коде меняем #define DELETE_DAY 0 на #define DELETE_DAY 1 (чтоб он понедельники удалял, а не воскресенья =)
- запускаем советник со значением ChartList = "EURUSD1440"
- открываем автономно сгенерированный график (WS_EURUSD, D1)
- заходим в директорию, где хранится история текущего брокера
- копируем от-туда файл WS_EURUSD1440.hst в любую другую директорию
- закрываем МТ (перед этим можно удалить советника - не имеет значения)
- открываем МТ

А теперь самое интересное =)
Берём тот файл, что мы сохранили, и сравниваем с тем, что остался в директории МТ.
Копирайты - не мои (жалко, что ли? ;), и Дигитс = 0. Дальше не проверял. ..

Напомню, это делает не советник - его можно удалить перед выключением терминала.
Проверите?
 

komposter, брокер InterBankFX - это не совсем обычный брокер ;o). Он имеет некоторые специфичные настройки, о которых я узнал уже во время реальной торговли!
Например функция MarketInfo(symbol_for_work,MODE_SPREAD), которая просто изумительно работает на демо от Альпари (выдаёт фиксированное значение при любом рынке, равное разности между Ask и Bid, выраженное в поинтах) на реале InterBankFX может изменять своё значение на 1 поинт. Причём это происходит чрезвычайно часто. Заметил это просто случайно по тому как отложники у меня начали каждые несколько минут модифицироваться на 1 поинт туд-сюда и это-то ночью, чего на Альпари ни разу не наблюдал!!!
Поэтому вместо того, чтобы спорить с брокером или разработчиками МТ4 я просто заменил эту функцию своей благодаря чему решил проблему "малой кровью":

int _MarketInfo(string symb_for_work)
{
if(symb_for_work=="USDCHFm") return(4);
if(symb_for_work=="CHFJPYm") return(5);
if(symb_for_work=="GBPUSDm") return(3);
if(symb_for_work=="USDCADm") return(5);
if(symb_for_work=="USDJPYm") return(3);
if(symb_for_work=="EURGBPm") return(4);
if(symb_for_work=="AUDUSDm") return(4);
if(symb_for_work=="EURCHFm") return(4);
if(symb_for_work=="EURJPYm") return(5);
if(symb_for_work=="EURUSDm") return(2);
if(symb_for_work=="NZDUSDm") return(6);
if(symb_for_work=="AUDJPYm") return(6);

return(0);
}

Надеюсь Вы намёк поняли? ;o)))
Могли бы Вы соорудить в эксперте что-то похожее? Тем более что с Digits всё гораздо проще! Для еновых курсов оно равно 2, а для всех остальных 4.

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