Уважаемые разработчики, возможно ли при автоматическом запуске терминала как процесса (CreateProcess) из другого, внешнего процесса в режимах тестера/оптимизатора получить через код возврата процесса терминала такую ситуацию, когда не подгружена нужная история валют, и терминал не смог из-за этого выполнить заданные тест/оптимизацию?
А зачем запускать терминал если нет истории?
я сначала проверяю историю по нужному инструменту и периоду и только в случае её наличия запускаю терминал, правда это я делаю в скрипте поэтому мне доступно время начала и конца исторических данных в hst. Но можно хотя бы проверять наличие файла с необходимой историей.
А зачем запускать терминал если нет истории?
я сначала проверяю историю по нужному инструменту и периоду и только в случае её наличия запускаю терминал, правда это я делаю в скрипте поэтому мне доступно время начала и конца исторических данных в hst. Но можно хотя бы проверять наличие файла с необходимой историей.
Дело в том, что я не запускаю терминалы ручками, это делает автоматизированная система управления терминалами, она их запускает. Опять же, наличие в папке "history\downloads\" подпапок с именами валют (например, "history\downloads\GBPUSD\") и каких-либо файлов в папке с именем валюты не гарантирует наличия всей верной истории по этой валюте. Или не так?
В какой-то момент может оказаться (и оказывается), что определённым терминалам не хватает истории. Мне нужно добавить в систему управления код, могущий выявить данную ситуацию и выдать пользователю об этом сообщение. Я и спрашиваю, можно ли по коду возврата процесса терминала выявить данную ситуацию?
Кстати, полезно бы иметь в параметрах командной строки терминала опцию, позволяющую принудительно закачивать историю той пары, на которой идёт тестирование или оптимизация. DSL трафика не жалко, главное - положительный результат отработки терминала.
Дело в том, что я не запускаю терминалы ручками, это делает автоматизированная система управления терминалами, она их запускает.
и я про автоматиический запуск :-)
Я имел в виду что не нужно запускать терминал для того что бы проверить наличие истории, а проверять наличие, а еще лучше содержимое файла нужной истории самостоятельно (не уверен, но кажется где то проскакивала инфа как проверить содержимое hst файла). Можно сделать иначе - перед запуском оптимизации или теста , запустить терминал с нужным скриптом для проверки истории.
p.s. сам столкнулся с этой проблемой при написании программы управления тестированием.
> Кстати, полезно бы иметь в параметрах командной строки терминала опцию, позволяющую принудительно закачивать историю той пары, на которой >идёт тестирование или оптимизация. DSL трафика не жалко, главное - положительный результат отработки терминала.
Согласен, вообще хотелось бы для работы с историей иметь побольше встроенных инструментов, например поиск и автоматическое "латание" дыр.
и я про автоматиический запуск :-)
Я имел в виду что не нужно запускать терминал для того что бы проверить наличие истории, а проверять наличие, а еще лучше содержимое файла нужной истории самостоятельно (не уверен, но кажется где то проскакивала инфа как проверить содержимое hst файла). Можно сделать иначе - перед запуском оптимизации или теста , запустить терминал с нужным скриптом для проверки истории.
p.s. сам столкнулся с этой проблемой при написании программы управления тестированием.
> Кстати, полезно бы иметь в параметрах командной строки терминала
опцию, позволяющую принудительно закачивать историю той пары,
на которой >идёт тестирование или оптимизация. DSL трафика не
жалко, главное - положительный результат отработки терминала.
Согласен, вообще хотелось бы для работы с историей иметь побольше встроенных инструментов, например поиск и автоматическое "латание" дыр.
Как Вы конкретно определяете наличие нужного .hst файла? В папке
history у меня с десяток подпапок с именами серверов (Alpari-Demo, AlpariUK-Demo,
FGB-Demo и т.д.), на которые хотя бы раз было подключение с данного
терминала. Как определить, в какую из них нужно идти? Это зависит
от коннекта на текущий счёт, его нужно сопоставить с нужной
подпапкой. Далее, как я понимаю, нужно "копать" внутреннюю
структкру .hst файла? Нужно же оценить, попал в него требуемый
диапазон дат или нет. И даже не так, файл-то hst сформируется терминалом
автоматически (с 210-го билда убрали флажок пересчёта, это делается
автоматом), но при условии, что закачана история, наличие требуемых
для этого данных нужно проверять по идее в "history\downloads",
так? Первичен не .hst, а закачанные "сырые" данные.
>Как Вы конкретно определяете наличие нужного .hst файла? В папке
history у меня с десяток подпапок с именами серверов (Alpari-Demo, AlpariUK->Demo,
>FGB-Demo и т.д.), на которые хотя бы раз было подключение с данного
терминала. Как определить, в какую из них нужно идти? Это зависит
от коннекта >на текущий счёт, его нужно сопоставить с нужной
подпапкой.
В моем случае я беру информацию о наименовании нужной папки истории при помощи (если есть соединение) AccountServer() (если соединения нет) то из файла terminal.ini параметр LastScanServer=
> Далее, как я понимаю, нужно "копать" внутреннюю структкру .hst файла? Нужно же оценить, попал в него требуемый диапазон дат или нет.
именно так
> И даже не так, файл-то hst сформируется терминалом автоматически
(с 210-го билда убрали флажок пересчёта, это делается автоматом),
но при >условии, что закачана история, наличие требуемых для
этого данных нужно проверять по идее в "history\downloads", так?
Первичен не .hst, а закачанные >"сырые" данные.
Данные из "history\downloads" терминал увидит только после выполнения операций по закачке и пересчету в "Архиве котировок"
поэтому достаточно проверить соответствующий файл hst
Вы просто проверяете факт наличия hst файла с нужным именем на диске, не вдаваясь в суть этого вопроса с датами, или пробуете читать его до конца с выяснением диапазона дат?
Всё достаточно подробно, спасибо за информацию. Нашёл тему "Заголовок .hst файла". Согласно заголовку hst файла выходит, что заголовок не содержит информации о периоде дат хранимых котировок (StartDate, EndDate). А период тестирования или оптимизации может не входить как подмножество в период хранимых в hst котировок.
Вы просто проверяете факт наличия hst файла с нужным именем на диске, не вдаваясь в суть этого вопроса с датами, или пробуете читать его до конца с выяснением диапазона дат?
я проверяю наличие истории в скрипте этой функцией
int SpeedTstHist(string Symb, int Per,int start, int stop){ //================================ int Bar=iBars(Symb,Per)-1; int TStrt = iTime(Symb,Per,Bar); int TStop = iTime(Symb,Per,0); if(Bar<1){return(0);} //Если нет баров по выбранному символу и периоду if(TStrt>start){return(0);} //Если время начала истории по выбранному символу и периоду больше установленного if(TStop<stop){return(0);} //Если время конца истории по выбранному символу и периоду меньше установленного return(1); }
я проверяю наличие истории в скрипте этой функцией
int SpeedTstHist(string Symb, int Per,int start, int stop){ //================================ int Bar=iBars(Symb,Per)-1; int TStrt = iTime(Symb,Per,Bar); int TStop = iTime(Symb,Per,0); if(Bar<1){return(0);} //Если нет баров по выбранному символу и периоду if(TStrt>start){return(0);} //Если время начала истории по выбранному символу и периоду больше установленного if(TStop<stop){return(0);} //Если время конца истории по выбранному символу и периоду меньше установленного return(1); }
Эта функция проверяет наличие 2-х котировок со смещением Bar и 0, а не наличие истории! :))))))))))))))))
Эта функция проверяет наличие 2-х котировок со смещением Bar и 0, а не наличие истории! :))))))))))))))))
Если вы прочитаете название функции и вдумаетесь то поймете что эта функция предназначена для "быстрой проверки" начального и конечного баров истории. Для более детальной проверки у меня запускается функция int TestHistory(int SetHole, string Symb,int Per) которая проверяет еще и наличие дыр больше установленного уровня. Так что смею вас уверить я себя не обманываю :-) Обманываетесь как раз вы в силу недостаточной информированности и компетентности :-)
Так что насчёт моей недостаточной информированности и компетентности это вы верно подметили, постоянно приходится запускать функцию
hz ChtoZaFigniaTakaya(boolka Takaya, boolka Razetakaya). :)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уважаемые разработчики, возможно ли при автоматическом запуске терминала как процесса (CreateProcess) из другого, внешнего процесса в режимах тестера/оптимизатора получить через код возврата процесса терминала такую ситуацию, когда не подгружена нужная история валют, и терминал не смог из-за этого выполнить заданные тест/оптимизацию?