powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Соединение с биржей криптовалют EXMO, POLONIEX с помощью API
6 сообщений из 6, страница 1 из 1
Соединение с биржей криптовалют EXMO, POLONIEX с помощью API
    #39427514
Scorp1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, пишу простенького робота для торговли на выше указанных биржах, но так как из языков знаю только Foxpro то и выбирать не приходится.
Что уже получилось: по PUBLIC API скачивать котировки объемы распарсивать и т.д. и т.п., но вот выставлять ордера, закрывать и т.д. не получается, необходимо подписывать данные секретным ключом как это сделать в фоксе ума не приложу, 3-х дневные поиски по инету результата не дали. Может кто сталкивался с такой проблемой прошу отозваться.
...
Рейтинг: 0 / 0
Соединение с биржей криптовалют EXMO, POLONIEX с помощью API
    #39427603
Scorp1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кое что нарыл, но как то все страшно и не понятно

http://www.sql.ru/forum/1235801/chto-ne-tak-v-cifrovoy-podpisi-ispolzuushhey-bcryptsignhash-iz-bcrypt-dll-cng?hl=sha256
...
Рейтинг: 0 / 0
Соединение с биржей криптовалют EXMO, POLONIEX с помощью API
    #39427616
Scorp1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bcrypt.dll вот эта библиотека нам поможет ...
...
Рейтинг: 0 / 0
Соединение с биржей криптовалют EXMO, POLONIEX с помощью API
    #39427670
Scorp1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
 import httplib 
 import urllib 
 import json 
 import hashlib 
 import hmac 
 import time 
   
 api_key = "your_key" 
 api_secret = "your_secret" 
 

 nonce = int(round(time.time()*1000)) 
   
 params = {"nonce": nonce} 
 params = urllib.urlencode(params) 
   
 H = hmac.new(api_secret, digestmod=hashlib.sha512) 
 H.update(params) 
 sign = H.hexdigest() 
   
 headers = {"Content-type": "application/x-www-form-urlencoded", 
            "Key":api_key, 
            "Sign":sign} 
 conn = httplib.HTTPSConnection("api.exmo.com") 
 conn.request("POST", "/v1/user_info", params, headers) 
 response = conn.getresponse() 
   
 print response.status, response.reason 
 print json.load(response) 
   
 conn.close() 



вот пример на фотоне
...
Рейтинг: 0 / 0
Соединение с биржей криптовалют EXMO, POLONIEX с помощью API
    #39427684
Scorp1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем начну потихоньку может кто подскажет

вот код где подключаем библиотеку
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
* API declarations for the CNG API 

* This BCryptSignHash had been added by me. Is it right?
DECLARE BCryptSignHash IN BCrypt.DLL ;
Long hKey, String pPaddingInfo, String pbInput, ;
Long cbInput, String @pbOutput, Long cbOutput, ;
Long @pcbResult, Long dwFlags

*******************************************************************
DECLARE Long BCryptOpenAlgorithmProvider IN BCrypt.DLL ;
Long @phAlgorithm, String pszAlgId, ;
String pszImplementation, Long dwFlags

DECLARE Long BCryptGetProperty IN BCrypt.DLL ;
Long hObject, String pszProperty, Long @pbOutput, ;
Long cbOutput, Long @pcbResult, Long dwFlags

DECLARE Long BCryptCreateHash IN BCrypt.dll ;
Long hAlgorithm, Long @phHash, String @pbHashObject, ;
Long cbHashObject, String pbSecret, Long cbSecret, ;
Long dwFlags

DECLARE Long BCryptHashData IN BCrypt.dll ;
Long hHash, String pbInput, Long cbInput, Long dwFlags

DECLARE Long BCryptFinishHash IN BCrypt.DLL ;
Long hHash, String @pbOutput, Long cbOutput, Long ;
dwFlags

DECLARE Long BCryptDestroyHash IN BCrypt.DLL ;
Long hHash

DECLARE Long BCryptCloseAlgorithmProvider IN BCrypt.DLL;
Long hAlgorithm, Long dwFlags

DECLARE Long BCryptDestroyKey IN BCrypt.DLL ;
Long hKey

DECLARE Long BCryptFinalizeKeyPair IN BCrypt.DLL ;
Long hKey, Long dwFlags

DECLARE Long BCryptGenerateKeyPair IN BCrypt.DLL ;
Long hAlgorithm, Long @phKey, Long dwLength, ;
Long dwFlags

* New picture
DECLARE Long BCryptExportKey IN BCrypt.DLL ;
Long kKey, Long hExportKey, String pszBlobType, ;
String @pbOutput, Long cbOutput, Long @pcbResult, ;
Long dwFlags

DECLARE Long BCryptEncrypt IN BCrypt.DLL ;
Long hKey, String pbInput, Long cbInput, ;
String pPaddingInfo, String @pbIV, Long cbIV, ;
String @pbOutput, Long cbOutput, Long @pcbResult, ;
Long dwFlags

DECLARE Long BCryptImportKeyPair IN BCrypt.DLL ;
Long hAlgorithm, Long hImportKey, String pszBlobType, ;
Long @phKey, String pbInput, Long cbInput, ;
Long dwFlags

DECLARE Long BCryptDecrypt IN BCrypt.DLL ;
Long hKey, String pbInput, Long cbInput, ;
String pPaddingInfo, String @pbIV, Long cbIV, ;
String @pbOutput, Long cbOutput, Long @pcbResult, ;
Long dwFlags
...
Рейтинг: 0 / 0
Соединение с биржей криптовалют EXMO, POLONIEX с помощью API
    #39427692
Scorp1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот функция HASH
не отрабатывает последняя строка в функции пишет неверный тип????

m.lcHash15 = STRCONV(m.lcHash,15) && HexBinary ~ 16 format

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
CLEAR 
uz = HASH("MAN", "SHA1") && SHA1, SHA256, MD5, SHA512
&& The result for SHA1 must be: 2FD4E1C67A2D28FCED849EE1BB76E7391B93EB12
&& The result for SHA256 must be: D7A8FBB3 07D78094 69CA9ABC B0082E4F 8D5651E4 6D3CDB76 2D02D0BF 37C9E592
*?[SHA: ] + uz && Converts single-byte characters in cExpression to encoded hexBinary.
*_cliptext = uz
* FOR i = 1 TO 16
* ?STR(i)+[: ]+STRCONV(STRCONV(uz,16), i) && 16 from hexbinary(16) to ANSI and ....
* ENDFOR 

FUNCTION HASH 
* Creates a SHA 256 hash value
LPARAMETERS tcData, tcHashAlg
* Initialize API
LOCAL m.llOK
m.llOK = .T.
DO c:\arb\CNG.prg
* Get a handle to the hashing algorithm provider
LOCAL m.lnAlg
m.lnAlg = 0
IF m.llOK
m.llOK= BCryptOpenAlgorithmProvider( ;
@lnAlg, STRCONV(tcHashAlg,5)+CHR(0), NULL, 0 ) == 0 && @lnAlg, STRCONV("SHA256",5)+CHR(0), NULL, 0 ) == 0
ENDIF 
* Determine how many bytes we need to store hash object
LOCAL m.lnSizeObj, m.lnData
IF m.llOK
	m.lnSizeObj = 0
	m.lnData = 0
	m.llOK = BCryptGetProperty(m.lnAlg, ;
	STRCONV("ObjectLength",5)+CHR(0), @lnSizeObj, ;
	4, @lnData, 0 ) == 0
ENDIF 
* Determine length of the hash value
LOCAL m.lnSizeHash
IF m.llOK
	m.lnSizeHash = 0
	m.llOK = BCryptGetProperty( m.lnAlg, ;
	STRCONV("HashDigestLength",5)+CHR(0), ;
	@lnSizeHash, 4, @lnData, 0 ) == 0
ENDIF 
* Create the hash object (ostagiisii yangii suratta', itia', bitta')
LOCAL m.lnHash, m.lcHashObj
m.lnHash = 0
IF m.llOK
	m.lcHashObj = SPACE(m.lnSizeObj)
	m.llOK = BCryptCreateHash( m.lnAlg, @lnHash, ;
	@lcHashObj, m.lnSizeObj, NULL, 0, 0) == 0
ENDIF 
* To create the hash value we add data to the hash
* object. You can repeat this step as needed
IF m.llOK
m.llOK=BCryptHashData( ;
	m.lnHash, m.tcData, LEN(m.tcData), 0 ) == 0
ENDIF 
* Tell the hash object that we are done. The algorithm
* now calculates the hash value and returns it.
LOCAL m.lcHash
IF m.llOK
m.lcHash = SPACE(m.lnSizeHash)
m.llOK = BCryptFinishHash( ;
	m.lnHash, @lcHash, m.lnSizeHash, 0 ) == 0
ENDIF 
* Cleanup
IF m.lnAlg != 0
BCryptCloseAlgorithmProvider( m.lnAlg, 0 )
ENDIF 
IF m.lnHash != 0
BCryptDestroyHash( m.lnHash )
ENDIF 
IF NOT m.llOK
lcHash = ""
ENDIF 
?m.lcHash
m.lcHash15 = STRCONV(m.lcHash,15) && HexBinary ~ 16 format
RETURN m.lcHash15 && m.lcHash
ENDFUNC 
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Соединение с биржей криптовалют EXMO, POLONIEX с помощью API
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]