Уведомления

Группа в Telegram: @pythonsu

#1 Май 25, 2017 12:54:30

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Параметр nonce

как прописать параметр nonce, что бы верно отправлялись запросы в этом примере для бота на Python3: https://github.com/acidvegas/btc-e by

Отредактировано Venus (Май 25, 2017 12:55:00)

Офлайн

#2 Май 26, 2017 11:32:41

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2580
Репутация: +  58  -
Профиль   Отправить e-mail  

Параметр nonce

Вопрос не понят.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Май 26, 2017 21:14:22

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Параметр nonce

ZerG
Вопрос не понят.
есть параметр nonce у биржи, в том примере я таки не понял как его прописать что бы nonce отправлялся правильно! как его прописывать в скрипте?

Офлайн

#4 Июнь 13, 2017 09:05:47

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Параметр nonce

ZerG
Вопрос не понят.
Данный API предоставляет возможность торговать на бирже и получать информацию об аккаунте.
Для использования данного API необходимо создать API-ключ.
API-ключ можно создать в профиле, раздел API-ключи. После создания API-ключа вам выдается ключ и секрет.
Обратите внимание на то, что получить секрет ключа можно только в первый час после создания ключа.
Данные API-ключа используются для аутентификации.
Все запросы к TradeAPI идут по следующему URL: https://btc-e.com/tapi
Имя метода отправляется посредством POST-параметра method.
Все параметры методов отправляется через POST-параметры.
Все ответы от сервера приходят в формате JSON.
Для каждого запроса необходима аутентификация. Как произвести аутентификацию можно прочитать в соответствующем разделе данной документации.
Аутентификация происходит посредством отправки следующих HTTP-заголовков:
Key — API-ключ. Пример API-ключа: 46G9R9D6-WJ77XOIP-XH9HH5VQ-A3XN3YOZ-8T1R8I8T
API-ключ создается в профиле, раздел API-ключи.
Sign — Подпись. POST-параметры (?nonce=1&param0=val0), подписанные секретным ключом с помощью HMAC-SHA512
Так же для успешной аутентификации необходимо посылать POST-параметр nonce с инкрементым каждый запрос числовым значением.

import http.client
import urllib.request
import urllib.parse
import json
import hashlib
import hmac
import time

api_key = ‘'
api_secret = ’'

def trade(bORs,xrate,hm):
nonce=int(round(time.time()-1371212178.84)*10)
parms={“method”:“Trade”,
“pair”:“usd_rur”,
“type”:bORs,
“rate”:xrate,
“amount”:hm,
“nonce”:nonce}
parms=urllib.urlencode(parms)
hashed=hmac.new(api_secret,digestmod=hashlib.sha512)
hashed.update(parms)
signature=hashed.hexdigest()

headers={“Content-type”:“application/x-www-form-urlencoded”,
“Key”:api_key,
“Sign”:signature}

conn=httplib.HTTPSConnection(“btc-e.nz”)
conn.request(“POST”,“/tapi”,parms,headers)

response=conn.getresponse()
print(response.status,response.reason)

resp=json.load(response)
print resp

orderID=resp
print(orderID)

rur=resp
print(rur)
trade ('buy',30,1)

nonce=int(round(time.time()-1371212178.84)*10)- вот это непонятно что за цифры и откуда берутся

Офлайн

#5 Июнь 13, 2017 09:17:25

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Параметр nonce

дык там же написано все. nonce=int(round(time.time()-1371212178.84)*10)

 import time
print (time.time())
nonce=int(round(time.time()-1371212178.84)*10)
print(nonce)
>>> 
1497334634.143
1261224550



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июнь 13, 2017 09:19:36)

Офлайн

#6 Июнь 13, 2017 09:33:28

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Параметр nonce

PEHDOM
дык там же написано все. nonce=int(round(time.time()-1371212178.84)*10)
)))
дык не совпадает
1497334634.143 если запрос
1261224550 эт ответ и наоборот
то не получится приконектится так как запрос ответ отличается, должно быть запрос пример число “123” то ответ “124” будет, как то так, вот как его прописывать правильно.

Офлайн

#7 Июнь 13, 2017 10:31:55

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Параметр nonce

а-а-а я думал что это у вас пример “ nonce=int(round(time.time()-1371212178.84)*10)” ,
а примеры вы смотрели? например https://github.com/CodeReclaimers/btce-api
или документацию хотябы?
https://btc-e.com/tapi/docs#auth

Так же для успешной аутентификации необходимо посылать POST-параметр nonce с инкрементым каждый запрос числовым значением.
Пример использования значения nonce:
1 запрос: nonce=1
2 запрос: nonce=2
3 запрос: nonce=10
4 запрос: nonce=10 — выдаст ошибку, потому что nonce равен прошлому запросу
5 запрос: nonce=11
6 запрос: nonce=9 — выдаст ошибку, потому что nonce меньше, чем значение nonce на API-ключе
Минимальное значение nonce - 1, максимальное - 4294967294.
Для обнуления значения nonce необходимо создать новый ключ.
nonce простое число (номер запроса) которое увеличиваеться минимум на 1 при каждом запросе. При этом нужно гдето хранить его значение, потому как я понял, биржа хранит у себя счетчик для каждого ключа не обнуляя его никогда. тоесть если сегодня вы сделали 10 запросов то nonce = 10, завтра вы должны посылать nonce = 11. За неделю вы послали 200 запросов, в понедельник первый запрос должен иметь nonce=201(при условии что nonce увеличивался на 1 каждый раз). Ну както так.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июнь 13, 2017 10:37:51)

Офлайн

#8 Июнь 13, 2017 10:43:24

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Параметр nonce

PEHDOM
а-а-а я думал что это у вас пример “ nonce=int(round(time.time()-1371212178.84)*10)” , а примеры вы смотрели? например https://github.com/CodeReclaimers/btce-api\или документацию хотябы?https://btc-e.com/tapi/docs#auth
плииин, человек ))) я и спрашиваю как мне это понять чтоб потом использовать,как именно прописать нонс чтоб не заморачиватся подбором каждый раз при запуске! примеры смотрел и ничего не понял (((.
пример выше что привёл подбирать над при запуске!
а в этом примере вродь работает https://github.com/acidvegas/btc-e но там из двух файлов и обвязка не нравится, а именно представление оно данные как то неудобоваримые представляет,я потом хочу графоболочку сделать,чтоб баланс, пары, открытые закрытые сделки выводил
if info:
funds = info
total = 0.00
print('COIN BALANCE PRICE VALUE')
for coin in funds:
if funds:
balance = ‘{0:.2f}’.format(funds)
price = ‘{0:.2f}’.format(public_api.ticker(coin, ‘usd’))
value = ‘{0:.2f}’.format(float(balance) * float(price))
total += float(value)
print('{0}{1}${2}${3}'.format(coin.ljust(7, ‘ ’), balance.ljust(12, ‘ ’), price.ljust(12, ‘ ’), value))
print('Total: ${0:.2f}'.format(total))

Офлайн

#9 Июнь 13, 2017 10:44:51

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Параметр nonce

PEHDOM
а-а-а я думал что это у вас пример “ nonce=int(round(time.time()-1371212178.84)*10)” , а примеры вы смотрели? например https://github.com/CodeReclaimers/btce-apiили документацию хотябы?https://btc-e.com/tapi/docs#auth
я ток учусь, сожалею за столь нубсколамерские вопросы

Офлайн

#10 Июнь 13, 2017 10:59:02

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Параметр nonce

ну некотороые я смотрю по примерам вообще не заморачиваются

 	...	
self.api_nonce = str(time.time()).split('.')[0]
params['method'] = method
params['nonce']  = str(self.api_nonce)
...
благо запас есть



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июнь 13, 2017 10:59:50)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version