Нужен простой бот на питоне, можно без ГУЯ.
За деньги, предлагайте варианты в личку. Тестовый аккаунт предоставлю.
Бот для 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}
Для продолжения нажмите любую клавишу . . .