Найти - Пользователи
Полная версия: Нужно написать простого бота для btc-e
Начало » Флейм » Нужно написать простого бота для btc-e
1
bestsponsor
Привет!
Нужен простой бот на питоне, можно без ГУЯ.
За деньги, предлагайте варианты в личку. Тестовый аккаунт предоставлю.
Бот для BTC-E (+ Cryptsy если возможно)
Описание API BTC-E API
Бот работает на 1 паре.
Бот должен выставить ордера с ценами из текстового файла.
Бот должен следить за ордерами и выставить вместо отработавшего (купил - продал) такой-же ордер, .т.е. на бирже всегда должны быть ордера из файла, каждый в единственном экземпляре в любой момент времени.

Формат текстового файла простой, каждый ордер с новой строки :
sell 0.0022
sell 0.0035
sell 0.0055
bay 0.0020
bay 0.0030
bay 0.0050

как-то так

валютная пара, размер лота задается в коде.
Бот должен при первом пуске выставить все ордера, далее через интервал времени сравнивать активные ордера с списком в файле, если какого-то нет (отработал) - перевыставить его.

Контролировать баланс и прочее не нужно - это буду руками делать.
Неплохо еще лог файл писать.

За основу можно например такой код взять:
import sys
import httplib
import urllib
import json
import hashlib
import hmac
import time
 
# Replace these with your own API key data
BTC_api_key = "MQZFZ**********"
BTC_api_secret = "17d90ed0************"
 
with open('nonce.txt') as f:
    n = int(f.read()) + 1
f.close()
with open('nonce.txt', 'w') as f:
    f.write(str(n))
f.close()
nonce = n
# method name and nonce go into the POST parameters
params = {"method":"ActiveOrders",
          "nonce": nonce}
params = urllib.urlencode(params)
 
# Hash the params string to produce the Sign header value
H = hmac.new(BTC_api_secret, digestmod=hashlib.sha512)
H.update(params)
sign = H.hexdigest()
 
headers = {"Content-type": "application/x-www-form-urlencoded",
		   "Key":BTC_api_key,
		   "Sign":sign}
conn = httplib.HTTPSConnection("btc-e.com")
conn.request("POST", "/tapi", params, headers)
response = conn.getresponse()
 
print response.status, response.reason
print json.load(response)
 
conn.close()

Этот код запрашивает список активных ордеров на btc-e.
Ответ получаю такой:
200 OK
{u'return': {u'198489039': {u'timestamp_created': 1396981711, u'status': 0, u'ra
te': 1.30016, u'amount': 0.1, u'pair': u'eur_usd', u'type': u'buy'}, u'198489480
': {u'timestamp_created': 1396981775, u'status': 0, u'rate': 1.40351, u'amount':
0.1, u'pair': u'eur_usd', u'type': u'sell'}, u'198489409': {u'timestamp_created
': 1396981763, u'status': 0, u'rate': 1.38351, u'amount': 0.1, u'pair': u'eur_us
d', u'type': u'sell'}, u'198488933': {u'timestamp_created': 1396981695, u'status
': 0, u'rate': 1.25016, u'amount': 0.1, u'pair': u'eur_usd', u'type': u'buy'}, u
'198489167': {u'timestamp_created': 1396981727, u'status': 0, u'rate': 1.28016,
u'amount': 0.1, u'pair': u'eur_usd', u'type': u'buy'}, u'198489603': {u'timestam
p_created': 1396981792, u'status': 0, u'rate': 1.37351, u'amount': 0.1, u'pair':
u'eur_usd', u'type': u'sell'}}, u'success': 1}
Для продолжения нажмите любую клавишу . . .
bestsponsor
Вопрос решен, тема закрыта.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB