View Sidebar
Яндекс.Метрика
 
Автоматическая загрузка отчетов брокера АЛОР на smart-lab.ru. Часть 4. Скрипт готов

Автоматическая загрузка отчетов брокера АЛОР на smart-lab.ru. Часть 4. Скрипт готов

10.04.2016 15:360 comments

Ну вот, всё почти готово! Осталось только собрать части в единое целое и скрипт можно грузить на хостинг.

Алор публикует отчет за день на следующий день. При этом отчеты младше двух дней, носят предварительный характер, т.е. информация в них может быть изменена.

smart-lab-forts

Я сделал так. Создал задачу Corn на хостинге, которая вызывает мой скрипт один раз в сутки.
Скрипт скачивает отчеты брокера не только «за вчера», а за предыдущие 5 дней и загружает их в смарт-лаб. Так, если брокер обновит отчет, то и информация из обновленного отчета попадет в смарт-лаб.

Осталась одна процедура

Вот процедура scan_reports, она берет все сохраненные отчеты и отправляет их в смарт-лаб.


//Процедура сканирует все Сохраненные ранее отчеты за определенную дату и отправляет их в смарт лаб
function scan_reports( $tracker_id, $start_date, $ending_date ) {
global $dir;

$start_date = mktime (0, 0, 0, date( "m", $start_date ), date( "d", $start_date ), date( "Y", $start_date ) );
$ending_date = mktime (0, 0, 0, date( "m", $ending_date ), date( "d", $ending_date ), date( "Y", $ending_date ) );

if ($start_date <= $ending_date){

do {
$filename = date( "Ymd", $start_date );

$xml = @file_get_contents ("${dir}reports/$filename.xml");

$data_forts = data_forts($xml);

SmartLab_edit_track( $tracker_id,  $start_date, $data_forts['account'], $data_forts['movement'], $data_forts['comment'] );

$start_date = $start_date + 86400;
}

while ($start_date <= $ending_date);

}

}

Scan_reports – единственная новая процедура на сегодня. Scan_reports – очень похожа на процедуру Alor_reports_range из Части 1.

Вот и весь алгоритм

Ну и привожу последовательность вызова уже написанных нами процедур:

Alor_login($login_alor, $pass_alor); //Логинемся
Alor_reports_range( $start_date, $ending_date ); //Скачиваем отчеты брокера за указанный период
Alor_exit(); //Выходим

SmartLab_login($login_smart_lab, $pass_smart_lab); //Логинемся
scan_reports( $tracker_id_smart_lab, $start_date, $ending_date ); //Процедура сканирует все Сохраненные ранее отчеты за определенную дату и отправляет их в смарт лаб
SmartLab_exit(); //Выходим

Рабочий архив с полностью рабочим скриптом скачивайте тут.

smart-lab-portfel
Вот ссылка на мой стейтмен http://smart-lab.ru/profile/kobkv Информация от брокера Алор загружается автоматически именно этим скриптом (с некоторыми доработками).

Примечание (от 17.06.2016) Перешел с брокера Алор на Финам, данные теперь вбиваю вручную. В связи с переездом  с 7 по 19 мая статистика не велась. С 25 апреля по 5 мая торгов не вел.

Еще раз про безопасность

Можно не хранить пароли в скрипте, а сделать по-другому, но и скрипт придется запускать вручную.

Можно сделать страничку скрипта с полями запроса логинов и паролей от личных кабинетов, но сами пароли не сохранять. Раз в сутки (или раз в неделю) заходим на страничку, вводим логины / пароли и запускаем скрипт.

Еще папку, в которую сохраняться отчеты XML, следует сделать недоступной для чтения или закрыть паролем.

Другие идеи

Можно данные для смартлаб брать не из отчетов брокера, а из TSLab. Надо будет скрипт для TSLab написать.

Не забудьте оставить свой личный комментарий ниже...

Добавить комментарий


css.php