Обновление golos-witness-tools: поддержка bitshares
В связи с делистингом с bittrex несколько переписал скрипт прайсфида, добавив в него поддержку bitshares в качестве источника цен GOLOS. Изменения по конфигу вкратце:
Выбирается источник цены, старый алгоритм остался под именем "cmc", новый - "bitshares"
# specify price source here
# supported sources are: cmc, bitshares
source: bitshares
Тут всё просто, список нод битшар куда коннектиться
# bitshares nodes to use
node_bts:
- wss://eu.nodes.bitshares.ws
- wss://bitshares.openledger.info/ws
- wss://citadel.li/node
- wss://api-ru.bts.blckchnd.com
- wss://api.bts.blckchnd.com
Рынки, которые следует использовать для вычисления цены
# what markets should be used for price measurements
markets:
- RUDEX.GOLOS/BTS
- RUDEX.GOLOS/RUDEX.BTC
- RUDEX.GOLOS/RUBLE
- RUDEX.GOLOS/USD
- RUDEX.GOLOS/CNY
Алгоритм расчёта цены, когда у нас несколько рынков. Цена на рынках как правило немного отличается, и объём торгов может тоже существенно варьироваться. Допустимые варианты это простое среднеарифметическое, медиана среди всех рынков, и средневзвешенное значение. Именно оно является наиболее адекватным, так как в этом случае учитывается объём рынка. Рынки с наибольшей ликвидностью в стаканах влияют на цену больше.
# When several markets used, how to calculate resulting price
# Supported metrics are:
# - median: use median price across markets
# - mean: use simple averaged price
# - weighted_average: markets with more volume has higher influence
metric: weighted_average
Настройка относится к алгоритму рассчёта цены в рынке. Глубина рынка промеряется от ближайшего к центру ордера на указанный процент. Т.е. смысл в том, чтобы измерить какая в рынке ликвидность на дистанции например 15% от ближайшего к центру ордера. Это не позволяет манипулировать итоговой ценой, когда используется weighted_average режим, выставляя гиганткие ордера по очень низким или очень высоким ценам.
# Volume is measured looking into orderbook liquidity. This setting determine how deeply orderbooks should be measured
depth_pct: 20
Переименовался параметр threshold
-> threshold_pct
, раньше это было абсолютное значение, теперь относительное (0-100)
# update price only if difference between old and current price more than threshold, percentage
threshold_pct: 10
docker
docker-кухня так же обновлена, если вы используете docker-compose, обновите конфиги, пример в docker-compose.yml.example
P.S.
Приходите к нам в троллбокс: https://t.me/upit_trollbox
Мои opensource-проекты на Голосе
- golos-python - python-библиотека для Голоса.
- golos-witness-tools - набор скриптов для делегатов.
- golos-scripts - разные полезные скрипты для Голоса на python