Доброго времени суток. Это первый пост из серии. В итоге планируется серия постов посвященная написанию собственного торгового бота для биржи 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 Поздравляю! Вы получили личную награду!
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
t3ran13, ianboil, dimarss, vik, shuler, vadbars, retoldname, oksana0407, vika-teplo, vladsm, vealis, bounty-compaing
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@mazzy Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Приветствую Вас и желаю успехов на платформе Голос!
В этой статье вы сможете найти ответы на большинство вопросов, возникающих у новичков. Также большую подборку ссылок на полезные материалы вы можете найти по этой ссылке
Оперативно получить помощь, вы можете присоединившись к нашему сообществу в Телеграм
Буду признателен, если расскажете, откуда Вы узнали о платформе Голос (ответьте цифрой):
Чтобы быстрей освоится, присоединяйтесь к конкурсу для новичков, который идёт прямо сейчас!