BitShares Forum
Other => Graveyard => Русский (Russian) => Topic started by: bitcoinerS on September 16, 2014, 05:10:03 pm
-
https://bitsharestalk.org/index.php?topic=8791.msg113993#msg113993
Торговый робот для бит-активов
Мы подготовили скрипт, который может использоваться теми, кто хочет помочь делать рынок бит-активов ликвидным и ищем разработчиков, чтобы помочь сделать его лучше!
https://github.com/BitShares/bitshares_toolkit/tree/develop/programs/market_maker
Он немного сырой сейчас, но у нас есть планы, чтобы сделать этот скрипт конфигурируемым для тех, кто хочет выполнять эту функцию.
Правила просты:
1) Купить бит-актив дешево (на несколько процентов скидка)
2) Продать бит-актив по средней цене от делегатов (или последней от BTER), той что больше.
3) Отрегулировать заказы в любое время когда они отклоняться с более чем определенным допуском от того какими бы были новые заказы.
Согласно этому плану никаких новых бит-активов не будет создано, пока не достигнута привязка цены И все покупатели бит-активов могут ожидать ликвидности в промежутке всего нескольких процентов. Между тем прибыль может быть получена каждый раз, когда кто-то переходит на другую сторону рынка.
Мы предоставляем скрипт для вас, чтобы вы могли увеличить ликвидность и уменьшить разницу в ценах (так как наши боты будут конкурировать друг с другом;))
Теперь пользователи могут приобрести бит-активы с уверенностью, что они могут продать их, когда им нужно.
Пример использования:
python main.py <пользователь> <пароль> <порт> <использовать активную сеть? (или сеть для испытаний)>
python main.py user pass 8000 true
SPREAD_PERCENT = 0.05 # 5% (разница в ценах)
TOLERANCE = 0.01 #(допуск) должен быть меньше чем SPREAD_PERCENT / 2, чем меньше допуск тем чаще заказы будут обновлены.
MIN_USD_BALANCE = 10 #Оставьте минимальный баланс бит актива для возможности обновить заказы
MIN_BTSX_BALANCE = 100 #Оставьте минимальный баланс BTSX для возможности обновить заказы
MIN_USD_ORDER_SIZE = 2 #Минимальный размер заказа бит-актива (предотвратить мелкие обновления)
MIN_BTSX_ORDER_SIZE = 100 # Минимальный размер заказа BTSX (предотвратить мелкие обновления)
MEDIAN_EDGE_MULTIPLE = 1.001 # насколько ниже средней цены от делегатов вы хотите продавать.
-
стики плиз
-
что за user pass port нужно указывать?
пробовал читать буржуйскую ветку, все равно не понял. нид хелп.
rpc_user и rpc_password, которые у Вам нужно задать в config.json (находится в той же директории, что и wallets)
как посмотреть на каком порту запущен bitsharesX?
-
как посмотреть на каком порту запущен bitsharesX?
Можно в консоле получить network_get_peer_info и посмотреть собственный addrlocal. Но я точно не уверен тот же ли это порт, что нужен для rpc (дисклеймер: сам я робота не запускал). Также, возможно, нужен параметр --server при запуске BitSharesX (если используете консольную версию bitshares_client, то точно нужен).
-
Да, порт для rpc другой. Тоже указывается Вами в config.json :
https://bitsharestalk.org/index.php?topic=8964
как посмотреть на каком порту запущен bitsharesX?
Можно в консоле получить network_get_peer_info и посмотреть собственный addrlocal. Но я точно не уверен тот же ли это порт, что нужен для rpc (дисклеймер: сам я робота не запускал). Также, возможно, нужен параметр --server при запуске BitSharesX (если используете консольную версию bitshares_client, то точно нужен).
-
Возможно, надо вначале открыть в консоле кошелёк:
(wallet closed) >>> wallet_open default
OK
default (locked) >>>
(Если Вы переносили свой кошелёк из wallets/default , замените default на то, куда перенесли)
Если не поможет, вставте print response.json() перед
"/home/gridmit/bitsharesx/programs/market_maker/btsx.py", line 109
и посмотрите, есть ли что-то проясняющее в респонсе.
очень хочу разобраться как сделать бота, но не могу запустить пример.
укажите где я ошибаюсь.
1. собрал кошелек по этой инструкции https://bitsharestalk.org/index.php?topic=6008.msg80548#msg80548 . Собралось без ошибок, все отлично работает.
2. поправил ~/.BitSharesX/config.json
"rpc": {
"enable": true,
"rpc_user": "user",
"rpc_password": "pass",
"rpc_endpoint": "127.0.0.1:0",
"httpd_endpoint": "127.0.0.1:8000",
"htdocs": "./htdocs"
},
3. на всякий случай запускаю так
@ubu:~/bitsharesx/programs/market_maker$ ~/bitsharesx/programs/client/bitshares_client --server --httpport 8000 --rpcuser user --rpcpass pass
вроде запустилось норм. 8000 порт слушается
@ubu:~$ netstat -nat |grep 8000
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
4. запускаю бот, получаю ошибку
@ubu:~/bitsharesx/programs/market_maker$ python main.py config.json
{u'bots': [{u'spread_percent': 0.05, u'min_order_size': 100, u'bot_type': u'market_maker', u'external_price_tolerance': 0.01, u'asset_pair': [u'USD', u'BTSX'], u'account_name': u'dmitry', u'min_balance': 100}], u'client': {u'rpc_password': u'pass', u'rpc_user': u'user', u'rpc_port': u'8000'}, u'feeds': [{u'type': u'usd_per_btsx', u'name': u'bter_usd_btsx_average'}]}
Initializing with URL: http://user:pass@localhost:8000/rpc
usd_per_btsx
0.0343595483474
btc38_usd_per_btsx
0.0342828292699
bter_usd_per_btsx
0.034460099025
Executing bot: dmitry
Traceback (most recent call last):
File "main.py", line 54, in <module>
bot.execute()
File "/home/gridmit/bitsharesx/programs/market_maker/market_maker.py", line 41, in execute
canceled.extend( self.client.cancel_asks_out_of_range(self.name, quote, base, new_usd_per_btsx * (1+spread), tolerance) )
File "/home/gridmit/bitsharesx/programs/market_maker/btsx.py", line 109, in cancel_asks_out_of_range
for pair in response.json()["result"]:
KeyError: 'result'
-
да спасибо, разобрался.
кошелек был заблокирован. сделал wallet_open и wallet_unlock и завелось.
теперь бы понять по какому алгоритму идет торговля.
-
https://bitsharestalk.org/index.php?topic=8791.msg113993#msg113993
Торговый робот для бит-активов
Мы подготовили скрипт, который может использоваться теми, кто хочет помочь делать рынок бит-активов ликвидным и ищем разработчиков, чтобы помочь сделать его лучше!
https://github.com/BitShares/bitshares_toolkit/tree/develop/programs/market_maker
Он немного сырой сейчас, но у нас есть планы, чтобы сделать этот скрипт конфигурируемым для тех, кто хочет выполнять эту функцию.
Правила просты:
1) Купить бит-актив дешево (на несколько процентов скидка)
2) Продать бит-актив по средней цене от делегатов (или последней от BTER), той что больше.
3) Отрегулировать заказы в любое время когда они отклоняться с более чем определенным допуском от того какими бы были новые заказы.
Согласно этому плану никаких новых бит-активов не будет создано, пока не достигнута привязка цены И все покупатели бит-активов могут ожидать ликвидности в промежутке всего нескольких процентов. Между тем прибыль может быть получена каждый раз, когда кто-то переходит на другую сторону рынка.
Мы предоставляем скрипт для вас, чтобы вы могли увеличить ликвидность и уменьшить разницу в ценах (так как наши боты будут конкурировать друг с другом;))
Теперь пользователи могут приобрести бит-активы с уверенностью, что они могут продать их, когда им нужно.
Пример использования:
python main.py <пользователь> <пароль> <порт> <использовать активную сеть? (или сеть для испытаний)>
python main.py user pass 8000 true
SPREAD_PERCENT = 0.05 # 5% (разница в ценах)
TOLERANCE = 0.01 #(допуск) должен быть меньше чем SPREAD_PERCENT / 2, чем меньше допуск тем чаще заказы будут обновлены.
MIN_USD_BALANCE = 10 #Оставьте минимальный баланс бит актива для возможности обновить заказы
MIN_BTSX_BALANCE = 100 #Оставьте минимальный баланс BTSX для возможности обновить заказы
MIN_USD_ORDER_SIZE = 2 #Минимальный размер заказа бит-актива (предотвратить мелкие обновления)
MIN_BTSX_ORDER_SIZE = 100 # Минимальный размер заказа BTSX (предотвратить мелкие обновления)
MEDIAN_EDGE_MULTIPLE = 1.001 # насколько ниже средней цены от делегатов вы хотите продавать.
Я торгую на Форексе некоторое время и вижу что этому проекту может помочь интеграция с Metatrader 4 платформой; там уже написано огромное количество индикаторов и торговых роботов, так что все сведется к предоставлению сервиса BitShares X который выдает дату в том же формате и по такому же принципу как Форекс.
Формат исторической информации прост - Date,Time,Open,High,Low,Close,Volume - в CSV формате.