Доброго времени суток. Это первый пост из серии. В итоге планируется серия постов посвященная написанию собственного торгового бота для биржи Bitshares. Алгоритм для бота раскрывать пока не планируем, но результаты работы и технический нюансы реализации обязательно. Думаем кому-нибудь будет полезно для реализации собственной идеи. Итак приступим.
Общее
В отличии от многих существующих централизованных систем, где API предоставляет методы для авторизации/регистрации, доступа к данным в Bitshares как P2P сети для доступа к данным цепочки нужна полная нода (full node/witness node). Развернуть ноду можно по доке http://docs.bitshares.org/bitshares/tutorials/full-node-usage.html. Развернуть можно локально для пробы пера. Потом на собственном сервере. API делится на две части: публичная (доступ к историческим данным) и приватная (позволяет дописывать данные в цепочку и смотреть приватные данные). Для доступа к публичной части нужная только развернутая полная нода. Для доступа к приватной части API помимо ноды нужен кошелек (cli_wallet) http://docs.bitshares.org/bitshares/tutorials/cli-wallet-usage.html.
Схема работы API:
Несколько кошельков могут смотреть на одну ноду. С точкой доступа к данным в цепочке мы разобрались, дальше вопросы которые у нас сразу появились.
Авторизация/Регистрация
Через кошелек.
Как получить список assets с сортировкой по объему?
Можно воспользоваться публичной частью API, если она предоставляет методы удовлетворяющие ваши потребности в данных. Если такого метода нет то просто нужно написать свой, т.к. все данные в цепочке хранятся в итоге в виде объектов http://docs.bitshares.org/development/blockchain/objects.html. У каждого объекта есть категория. У каждой категории есть уникальный id, в рамках одной категории всем объектам присвоен уникальный id. Например категория assets имеет id = 1.3.X и в нее входит BTS с id = 1.3.0 и CNY с id = 1.3.113. Запросим через Database API информацию по asset BTS для наглядности. http://docs.bitshares.org/api/database.html
Request:
{"id":1,"method":"call","params":[0,"get_assets",[["1.3.0"]]]}
Response:
{
"id": 1,
"jsonrpc": "2.0",
"result": [
{
"id": "1.3.0",
"symbol": "BTS",
"precision": 5,
"issuer": "1.2.3",
"options": {
"max_supply": "360057050210207",
"market_fee_percent": 0,
"max_market_fee": "1000000000000000",
"issuer_permissions": 0,
"flags": 0,
"core_exchange_rate": {
"base": {
"amount": 1,
"asset_id": "1.3.0"
},
"quote": {
"amount": 1,
"asset_id": "1.3.0"
}
},
"whitelist_authorities": [],
"blacklist_authorities": [],
"whitelist_markets": [],
"blacklist_markets": [],
"description": "",
"extensions": []
},
"dynamic_asset_data_id": "2.3.0"
}
]
}
Теперь объемы:
1.3.0 - BTS
1.3.121 - USD
Request:
{"id":1,"method":"get_24_volume","params":["1.3.0","1.3.121"]}
Response:
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"base": "1.3.0",
"quote": "1.3.121",
"base_volume": "717573.44807000108994544",
"quote_volume": "118442.56580000052053947"
}
}
https://www.reddit.com/r/altcoin/comments/57spwg/on_poloniex_whats_the_difference_between/
Полезные ссылки:
Спасибо, что подняли весьма интересную (думаю не только для меня) тему. Подписался, с удовольствием почитаю продолжение)
P.S. готовые наработки не смотрели?
например
https://github.com/pch957/pybtsbots-2015
https://github.com/vikxx/stakemachine
Если честно не особо смотрим на сторонние решения. Товарищ @cptn-solo смотрел и пытался адаптировать готового бота и рассказывал мне о своих наработках и показалось легче самим написать. Сам тружусь разработчиком. У меня имеется опыт торговли на классических биржах (ММВБ). Сам алгоритм был придуман еще в 2012, но на классике сложно реализуем. Когда по работе столкнулся с Bitshares стало ясно что здесь алгоритм ложится идеально и пазл можно собрать до конца. Решил писать посты по мере продвижения вдохновившись серией постов от @primus.
Вы не пробовали бота на тестовой торговой площадке https://testnet.bitmex.com?
Дима, Толя, собственно, и ссылается на движки ботов - на чем пилятся свои решения.
Это не "сторонние решения" ;)))
Спасибо, будем посмотреть.
@mazzy Поздравляю! Вы получили личную награду!
С Днём Рождения - 2 лет на Голосе
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы получили свою первую выплату
Награда за общую выплату получил
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
t3ran13, ianboil, dimarss, vik, shuler, vadbars, retoldname, oksana0407, vika-teplo, vladsm, vealis, bounty-compaing
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество полученных голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы получили первый ответ
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы написали свой первый комментарий
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество полученных голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы опубликовали свой первый пост
Вы впервые проголосовали
Вы получили первый голос за ваши посты
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Приветствую Вас и желаю успехов на платформе Голос!
В этой статье вы сможете найти ответы на большинство вопросов, возникающих у новичков. Также большую подборку ссылок на полезные материалы вы можете найти по этой ссылке
Оперативно получить помощь, вы можете присоединившись к нашему сообществу в Телеграм
Буду признателен, если расскажете, откуда Вы узнали о платформе Голос (ответьте цифрой):
Чтобы быстрей освоится, присоединяйтесь к конкурсу для новичков, который идёт прямо сейчас!