- Регистрация
- 15.12.2013
- Сообщения
- 637
- Благодарностей
- 263
- Баллы
- 63
Добрый день, дорогие друзья. Это мое первое участие в подобных конкурсах, надеюсь что не последнее. Итак, поехали...
Вот уже скоро год как я окунулся в тему майнинга и в конце концов назрел вопрос "а как же следить за балансом десятков своих криптовалютных кошельков", естественно речь идет о пересчете к доллару/биткоину. Так как в той крипте, которую намайнил по сути цифра баланса статична, пока не начнешь ее снова майнить/продавать. Есть куча различных готовых приложений, в т.ч. под мобильные устройства, что с одной стороны удобно, но с другой, все они заточены как правило под 1 платформу, и чаще всего это coinmarketcap.com. Что для меня лично абсолютно не приемлемо ввиду того что многих монет там просто напросто нету. Среди моих разработок имелся уже готовый шаблон, собирающий курсы с почти 3 десятков открытых источников (биржи, платформы и прочее) в базу данных, то вполне логичным было решение на основании этой БД и рассчитывать доходность по монетам. Так как многие из монет есть на биржах, но их нету на том же coinmarketcap.
В рамках конкурса проект был переписан под СУБД Access, потому что изначально все под MySQL, который нужно устанавливать отдельно, просто передать файл БД с шаблоном и все запустить нельзя. В многопотоке с 3 десятков источников парсится информация о курсах всех монет порядка 20 секунд, здесь же, ввиду того что Access не является многопоточной СУБД, пришлось переписать все на однопоточную работу, и время парсинга 2 источников составляет порядка 5 минут при добавлении всех монет (при пустой базе) и около 3 минут при обновлении информации о курсах монет. Но есть и хорошая новость, многопоток в одном из действий я все же оставил, и если кто-то решит на основании этого проекта что-то реализовывать свое, сможет без проблем вернуть везде многопоток, только предварительно придется еще переписать все запросы под многопоточную СУБД, а так же подключить эту БД к проекту.
На вход мы подаем данные с названием монеты, ее балансом в виде количества монет, а так же опционально: ожидаемый курс в usd и ожидаемый курс в btc. Как только реальный курс превысит ожидаемый, не важно, к usd или к btc, такая монета будет перемещена вверх списка и выделена зеленым цветом. Задумано это для облегчения слежения за курсами имеющихся монет и уведомлениях о пампах конкретных монет.
Входной список выглядит следующим образом:
т.е. все поля разделены ";".
На выходе имеем файл balance.html в папке с проектом со следующим содержимым:
В главной таблице отображается актуальная информация по каждой из монет. По каждой монете, при нажатии на ее название, отображается подробная информация со статистическими данными по ней, например litecoin:
Здесь мы видим все биржи с данной монетой, ежедневные и еженедельные статистические данные.
Шаблон в рамках конкурса обучен на получение информации из 2 источников: https://coinmarketcap.com с помощью API, с дальнейшим получением дополнительной информации о каждой из монет с помощью get-запросов, а так же с биржи https://www.coinexchange.io соль которой в том что в API при получении курсов монет нету ни названий самих монет ни даже сокращенных кодов (symbol), а только id монеты на самой бирже, значение которого необходимо получить по другому запросу API с дальнейшим объединением нужных данных в 1 результат json. А так же с биржи https://www.coinexchange.io реализовано получение статусов кошельков для того чтобы при необходимости что-то завести на биржу для продажи, не нужно было искать на бирже текущий статус кошелька (при закрытии на обслуживание и отправке туда средств, платеж попросту не дойдет, либо вообще, либо до окончания обслуживания, которое может продлиться и несколько месяцев).
Ну а как из текстового файла с минимальными входными данными получить такой структурированный отчет в виде html страницы, которую можно автоматически заливать на Ваш хостинг и просматривать с любого устройства в любой точке мира где есть интернет - смотрите в шаблоне, там Вас ожидают подробные комментарии к каждому действию.
Данный шаблон может быть полезен не только майнерам, на основании его можно делать отчеты практически о любых действиях Ваших шаблонов, будь то количество успешных и неуспешных выполнений Вашего шаблона с подробным логом возникших ошибок, либо структурированный отчет о ходе парсинга информации с каких-либо источников и т.д.
В шаблоне Вы найдете реализацию работы следующих операций: работа с api, парсинг нужных даных с json, black list и white list, именованные группы регулярных выражений и работа с ними, работа с БД MS Access, многопоточная загрузка информации get-запросами с помощью метода Parallel For, добавление информации из одного json в другой для упрощения работы с полученными данными, готовые JET SQL запросы (Access) для множества различных ситуаций, будь то простая выборка данных или структуризация данных за период, обработка данных в c# коде и многое другое. Ну и главное - формирование структурированной html страницы на основании полученной информации из БД.
Для соединения с БД необходимо наличие OLEDB провайдера, если у Вас уже установлен пакет MS Office либо Access, то все должно работать и так, если не работает - установите провайдер, например отсюда: https://www.microsoft.com/en-us/download/details.aspx?id=54920. Устанавливать рекомендую х86 версию, независимо от разрядности Вашей операционной системы, иначе придется в строке подключения менять провайдер.
Для наглядности работы и лучшего понимания всего процесса, рекомендую использовать пустую БД (db_empty), в которой только таблицы и структура. В таком случае полное выполнение шаблона от запуска до генерации html страницы составит от 5 до 10 минут в зависимости от мощности Вашего ПК. Для простого ознакомления с кодом и получения сразу наглядной статистики по монетам - рекомендую использовать файл БД с данными (db_data). Оба файла баз данных, как и шаблон с примером входных данных смотрите в прикрепленных файлах. Нужный файл базы данных необходимо выбрать во входных настройках перед первым запуском проекта.
P.S.: не забудьте предварительно распаковать zip-архив с нужной базой данных
Вот уже скоро год как я окунулся в тему майнинга и в конце концов назрел вопрос "а как же следить за балансом десятков своих криптовалютных кошельков", естественно речь идет о пересчете к доллару/биткоину. Так как в той крипте, которую намайнил по сути цифра баланса статична, пока не начнешь ее снова майнить/продавать. Есть куча различных готовых приложений, в т.ч. под мобильные устройства, что с одной стороны удобно, но с другой, все они заточены как правило под 1 платформу, и чаще всего это coinmarketcap.com. Что для меня лично абсолютно не приемлемо ввиду того что многих монет там просто напросто нету. Среди моих разработок имелся уже готовый шаблон, собирающий курсы с почти 3 десятков открытых источников (биржи, платформы и прочее) в базу данных, то вполне логичным было решение на основании этой БД и рассчитывать доходность по монетам. Так как многие из монет есть на биржах, но их нету на том же coinmarketcap.
В рамках конкурса проект был переписан под СУБД Access, потому что изначально все под MySQL, который нужно устанавливать отдельно, просто передать файл БД с шаблоном и все запустить нельзя. В многопотоке с 3 десятков источников парсится информация о курсах всех монет порядка 20 секунд, здесь же, ввиду того что Access не является многопоточной СУБД, пришлось переписать все на однопоточную работу, и время парсинга 2 источников составляет порядка 5 минут при добавлении всех монет (при пустой базе) и около 3 минут при обновлении информации о курсах монет. Но есть и хорошая новость, многопоток в одном из действий я все же оставил, и если кто-то решит на основании этого проекта что-то реализовывать свое, сможет без проблем вернуть везде многопоток, только предварительно придется еще переписать все запросы под многопоточную СУБД, а так же подключить эту БД к проекту.
На вход мы подаем данные с названием монеты, ее балансом в виде количества монет, а так же опционально: ожидаемый курс в usd и ожидаемый курс в btc. Как только реальный курс превысит ожидаемый, не важно, к usd или к btc, такая монета будет перемещена вверх списка и выделена зеленым цветом. Задумано это для облегчения слежения за курсами имеющихся монет и уведомлениях о пампах конкретных монет.
Входной список выглядит следующим образом:
т.е. все поля разделены ";".
На выходе имеем файл balance.html в папке с проектом со следующим содержимым:
В главной таблице отображается актуальная информация по каждой из монет. По каждой монете, при нажатии на ее название, отображается подробная информация со статистическими данными по ней, например litecoin:
Здесь мы видим все биржи с данной монетой, ежедневные и еженедельные статистические данные.
Шаблон в рамках конкурса обучен на получение информации из 2 источников: https://coinmarketcap.com с помощью API, с дальнейшим получением дополнительной информации о каждой из монет с помощью get-запросов, а так же с биржи https://www.coinexchange.io соль которой в том что в API при получении курсов монет нету ни названий самих монет ни даже сокращенных кодов (symbol), а только id монеты на самой бирже, значение которого необходимо получить по другому запросу API с дальнейшим объединением нужных данных в 1 результат json. А так же с биржи https://www.coinexchange.io реализовано получение статусов кошельков для того чтобы при необходимости что-то завести на биржу для продажи, не нужно было искать на бирже текущий статус кошелька (при закрытии на обслуживание и отправке туда средств, платеж попросту не дойдет, либо вообще, либо до окончания обслуживания, которое может продлиться и несколько месяцев).
Ну а как из текстового файла с минимальными входными данными получить такой структурированный отчет в виде html страницы, которую можно автоматически заливать на Ваш хостинг и просматривать с любого устройства в любой точке мира где есть интернет - смотрите в шаблоне, там Вас ожидают подробные комментарии к каждому действию.
Данный шаблон может быть полезен не только майнерам, на основании его можно делать отчеты практически о любых действиях Ваших шаблонов, будь то количество успешных и неуспешных выполнений Вашего шаблона с подробным логом возникших ошибок, либо структурированный отчет о ходе парсинга информации с каких-либо источников и т.д.
В шаблоне Вы найдете реализацию работы следующих операций: работа с api, парсинг нужных даных с json, black list и white list, именованные группы регулярных выражений и работа с ними, работа с БД MS Access, многопоточная загрузка информации get-запросами с помощью метода Parallel For, добавление информации из одного json в другой для упрощения работы с полученными данными, готовые JET SQL запросы (Access) для множества различных ситуаций, будь то простая выборка данных или структуризация данных за период, обработка данных в c# коде и многое другое. Ну и главное - формирование структурированной html страницы на основании полученной информации из БД.
Для соединения с БД необходимо наличие OLEDB провайдера, если у Вас уже установлен пакет MS Office либо Access, то все должно работать и так, если не работает - установите провайдер, например отсюда: https://www.microsoft.com/en-us/download/details.aspx?id=54920. Устанавливать рекомендую х86 версию, независимо от разрядности Вашей операционной системы, иначе придется в строке подключения менять провайдер.
Для наглядности работы и лучшего понимания всего процесса, рекомендую использовать пустую БД (db_empty), в которой только таблицы и структура. В таком случае полное выполнение шаблона от запуска до генерации html страницы составит от 5 до 10 минут в зависимости от мощности Вашего ПК. Для простого ознакомления с кодом и получения сразу наглядной статистики по монетам - рекомендую использовать файл БД с данными (db_data). Оба файла баз данных, как и шаблон с примером входных данных смотрите в прикрепленных файлах. Нужный файл базы данных необходимо выбрать во входных настройках перед первым запуском проекта.
P.S.: не забудьте предварительно распаковать zip-архив с нужной базой данных
- Тема статьи
- Другое
Вложения
-
134,4 КБ Просмотры: 594
-
22,4 КБ Просмотры: 536
-
1,6 МБ Просмотры: 647
-
167 байт Просмотры: 606
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.