Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Автоматичесий импорт в амиброкер из текстового файла Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
fedic



Зарегистрирован: 26.05.2008
Сообщения: 17

СообщениеДобавлено: Сб Авг 29, 2009 7:14 pm Ответить с цитатой Вернуться к началу

Имеется пополняемый текстовый файл котировок (..\myQuots.txt), имеется файл формата(MyFormat.format), импорт осуществляется в ручную через меню File | Import ASCII.
Подскажите пожалуйста а как автоматизировать данный процесс - сделать атоматический Import ASCII (автоматическую подкачку) ну скажем через определенный промежуток времени, например через минуту.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Авг 29, 2009 10:10 pm Ответить с цитатой Вернуться к началу

Можно написать скрипт (например на JS) который будет это делать. За основу можно взять скрипт импорта котировок с финама. Периодиески запускать этот скрипт можно любым планировщиком.
Вроде можно написать и на AFL используя ту же COM технологию и запускать его в AA, но тогда АА будет занят

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fedic



Зарегистрирован: 26.05.2008
Сообщения: 17

СообщениеДобавлено: Вс Авг 30, 2009 6:48 am Ответить с цитатой Вернуться к началу

Да, все уже сделано, а утилитку сваял для выдергивания данных с финама.
Посмотреть профиль Отправить личное сообщение
fedic



Зарегистрирован: 26.05.2008
Сообщения: 17

СообщениеДобавлено: Пн Авг 31, 2009 6:20 am Ответить с цитатой Вернуться к началу

Олег, а можно средствами автоматизации Амиброкера выполнять периодический подхват уже обновленных файлов, т.е как-то автоматизировать выполнение ( File | Import ASCII ), правда подхват из разных папок, т.к. утилита подкачки рассовывает их по разным папкам( так задумано). Чтобы в графиках сами подрисовывались недостающие данные. А то каждый раз бегать по меню и папакам уже надоело( надо фьюч на SP - ( File | Import ASCII ) лезешь в папку SP, надо пару EUR\USD опять тоже самое делаешь, только из другой папки
Попробовал URLGet, вывел кнопку FINAM в toolbars, подкачивается вроде, но чтобы дальше обновляться надо опять жать кнопку FINAM- а вот если бы автоматом через определенное время по таймеру. Например для часовиков через час (начиная с нового часа), для 30( через каждые 30 минут). Задача такая встала не из-за лени кнопки тыкать Smile , просто полученные обновленные данные необходимы для дальнейшего использования.
Интересно, а где можно посмотреть описание структуры баз амиброкера механизм их пополнения
Спасибо.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Авг 31, 2009 9:50 am Ответить с цитатой Вернуться к началу

fedic писал(а):
Олег, а можно средствами автоматизации Амиброкера выполнять периодический подхват уже обновленных файлов

Средствами Ами только написав AFL скрипт и запустив его в АА. К сожалению тогда АА будет занят этим скриптом.
Цитата:

Попробовал URLGet, вывел кнопку FINAM в toolbars, подкачивается вроде, но чтобы дальше обновляться надо опять жать кнопку FINAM- а вот если бы автоматом через определенное время по таймеру. Например для часовиков через час (начиная с нового часа), для 30( через каждые 30 минут). Задача такая встала не из-за лени кнопки тыкать , просто полученные обновленные данные необходимы для дальнейшего использования.

Можнго любым планировщиком запускать QuickGetFinam.js с заданной переодичностью.
Цитата:

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

Фигня в том, что ами типа кеширует базы и просто изменив (дописав) файлы базы данных не удается заставить ами эти данные прочитать. Типа надо переоткрывать БД чтобы Ами увидел новые данные.
Поэтому реально только импорт в ручную или с помощью COM. Описание в хелпере тема AmiBroker's OLE Automation Object Model

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fedic



Зарегистрирован: 26.05.2008
Сообщения: 17

СообщениеДобавлено: Пн Авг 31, 2009 7:13 pm Ответить с цитатой Вернуться к началу

Спасибо Олег, пойду мучить com
Посмотреть профиль Отправить личное сообщение
tlt-vlad



Зарегистрирован: 19.01.2008
Сообщения: 162
Откуда: ... теперь Москва

СообщениеДобавлено: Сб Сен 05, 2009 11:13 pm Ответить с цитатой Вернуться к началу

re:OOO "...Можнго любым планировщиком запускать QuickGetFinam.js с заданной переодичностью. ..."
Олег, поробывал это сделать планировщиком nnCron , прописал путь ( как того требует инструкция к тулзе ) C:\Program Files\AmiBroker\URLGet\QuickGetFinam.js ; скрипт запускается с заданной периодичностью , только вот получаю странное сообщение при запуске " Не найден или повреждён файл export.js . Требуется обновление списка символов " . Очень странно в папке URLGet есть этот файл . Попробывал его обновил - результат нулевой .
Такая же вещь происходила , когда я пытался запустить этот скрипт своей рукописной тулзой . Почему скрипт его не видит при запуске из внешней программы ??? хотя штатно ( запущенный из Ами ) работает на 5+.
???
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вс Сен 06, 2009 12:38 pm Ответить с цитатой Вернуться к началу

Это потому, что не указана Initial directory. Т.е. скрипт ищет exort.js не в папке скрипта, а в другом месте (не знаю точно где). Ща пытаюсь разобраться как указать Initial directory

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
tlt-vlad



Зарегистрирован: 19.01.2008
Сообщения: 162
Откуда: ... теперь Москва

СообщениеДобавлено: Вс Сен 06, 2009 10:26 pm Ответить с цитатой Вернуться к началу

Олег, я извиняюсь что побеспокоил.
Сегодня поподробнее покапался в мануале к планировщику - прописал в задании нужную директорию , дабы скрипт не терял файл export.js и всё ОК !!!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вс Сен 06, 2009 10:46 pm Ответить с цитатой Вернуться к началу

Уф...
Строка в файле cron.tab для задания рабочей директории должна выглядеть примерно так
Код:
* * * * *  !S" C:\Program Files\AmiBroker\URLGet" DROP APP-Dir ! S" C:\Program Files\AmiBroker\URLGet\QuickGetFinam.js" START-APP

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
tlt-vlad



Зарегистрирован: 19.01.2008
Сообщения: 162
Откуда: ... теперь Москва

СообщениеДобавлено: Вс Сен 06, 2009 11:22 pm Ответить с цитатой Вернуться к началу

Именно так и прописал .
С уважением и признанием за помощь , Владимир.
Посмотреть профиль Отправить личное сообщение
fedic



Зарегистрирован: 26.05.2008
Сообщения: 17

СообщениеДобавлено: Сб Сен 12, 2009 7:31 pm Ответить с цитатой Вернуться к началу

Олег, для начала попробовал скрипт написать, взял из скрипта код импорта, попробовал :

AmiBroker = new ActiveXObject( "Broker.Application" );
fso = new ActiveXObject( "Scripting.FileSystemObject" );

-----------------------
function Import( filen )
{
try
{
// Импорт из файла " filen"
w = AmiBroker.Import( 0, filen, "Finam_1H.format" );
}
catch( e )
{
return false;
}

// обновляем список тикеров и открытые окна
k = AmiBroker.RefreshAll();
return true;
}

------------------------------------
Параметры (полное имя текстового файла с путями)передаются в функцию нормально, но почему-то не добавляет новые данные( или все-таки не подхватываются или не отрисовываются). AmiBroker.Import возвращает значение - 4(Long), ошибка не генерируется. Отладку производил с помощью PrimalScript. Где копать?
Вообще, а по подробнее где-то можно найти описание Automation АМИ ? По тому что написано в AmiBroker's OLE Automation Object Model, понять значение параметров свойств и методов сложновато
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Сен 12, 2009 10:45 pm Ответить с цитатой Вернуться к началу

1. Путь к файлу с данными указан правильно (в пути следует использовать двойной обратный слеш \\ ) ?
2. Пробовал из этого файла импортировать данные при помощи этого фильтра Finam_1H.format в ручную ?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fedic



Зарегистрирован: 26.05.2008
Сообщения: 17

СообщениеДобавлено: Вс Сен 13, 2009 7:44 am Ответить с цитатой Вернуться к началу

Да вот в путях и в формате то все нормально. Вот какую штуку я обнаружил: удалил символ(инструмент), закрыл ами запустил крипт, открыл ами и о чудо Rolling Eyes , появился импортируемый инструмент. Глюк какой-то. Да и вот что еще, после закрытия АМИ залез в диспетчер задач, а там болтался broker.exe, снес его. Может здесь тут еще какая то проблема?
Создаем обьект:
AmiBroker = new ActiveXObject( "Broker.Application" );
логично было бы после окончания работы скрипта удалить созданный экземпляр(AmiBroker.Free)?
И еще один вопросик, а можно при вызове импорта использовать в имени файла wildcard символы, например так Import("C:\\SPFUT_*_1*.txt");
Во, сейчас вообще стал писать "Невозможно создание объекта сервером программирования объекта"
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вс Сен 13, 2009 5:31 pm Ответить с цитатой Вернуться к началу

Цитата:
И еще один вопросик, а можно при вызове импорта использовать в имени файла wildcard символы, например так Import("C:\\SPFUT_*_1*.txt");

Чесно говоря я не знаю. Проще всего попробовать и узнать можно или нет.
Цитата:
Да вот в путях и в формате то все нормально. Вот какую штуку я обнаружил: удалил символ(инструмент), закрыл ами запустил крипт, открыл ами и о чудо , появился импортируемый инструмент. Глюк какой-то. Да и вот что еще, после закрытия АМИ залез в диспетчер задач, а там болтался broker.exe, снес его. Может здесь тут еще какая то проблема?
Создаем обьект:
AmiBroker = new ActiveXObject( "Broker.Application" );
логично было бы после окончания работы скрипта удалить созданный экземпляр(AmiBroker.Free)?

Странно все это.
Может в винде какие косяки?
Мой скрипт закачки с финама в основных моментах скопирован с примеров которые выкладывал Томаш. Там все работает. Я в JS не спец совсем, но когда просматривал доки нигде не встречал упоминания о том, что надо удалять COM объект. Да и Томаш не удалял в своих скриптах.
Иногда, очень редко была такая ситуация когда COM сервер создавал процесс Ами не смотря на уже запущеный. В таком случае действительно импорт не получается. Скорее всего копать надо именно в этом направлении...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen