forked from aspectolog/yobot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fmaxspr.py
77 lines (63 loc) · 2.32 KB
/
fmaxspr.py
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
##########################################################
# Поиск пар с максимальным спредом и приличными объемами.
##########################################################
import requests
import json
from decimal import Decimal
from cfg import *
#############################
VOL = "2000"
FACTOR = "1.8"
#############################
# Получаем цены = list[str, str]
def GetInfo(pair):
otvet = requests.get('https://yobit.net/api/3/depth/' + pair)
data = json.loads(otvet.text)
return data
def GetTicker(pair):
otvet = requests.get('https://yobit.net/api/3/ticker/' + pair)
data = json.loads(otvet.text)
return data
#Получаем i-ую от края цену
def Ask_Price(data, i):
data["asks"] = data.get("asks", ["0", "0"])
return Decimal(data["asks"][i][0]).quantize(Decimal("1.00000000"))
def Bid_Price(data, i):
data["bids"] = data.get("bids", ["0", "0"])
return Decimal(data["bids"][i][0]).quantize(Decimal("1.00000000"))
def Volume(data):
data = data.get("vol")
return Decimal(data).quantize(Decimal("1.00000000"))
###############################################################################################################
res = requests.get('https://yobit.net/api/3/info') # получаем данные info
res_obj = json.loads(res.text) # переводим полученный текст в объект с данными
allpairs = []
cnt = 0
for pair in res_obj['pairs']:
if pair.endswith('_' + CURRENCY):
allpairs.append(pair)
cnt = cnt +1
print(cnt, 'пар')
cnt = 1
c = 0
pairstr = ''
for pair in allpairs:
if cnt == 1:
pairstr = pair
cnt += 1
elif cnt < 10:
pairstr = pairstr + '-' + pair
cnt += 1
else:
PriceData = GetInfo(pairstr)
VolumeData = GetTicker(pairstr)
for this_pair in PriceData:
ap = Ask_Price(PriceData[this_pair], 0)
bp = Bid_Price(PriceData[this_pair], 0)
vl = Volume(VolumeData[this_pair])
print(10*c, '\rProcess: {}'.format(this_pair), end=' ')
if ap / bp > Decimal(FACTOR) and vl > Decimal(VOL):
print(' ')
print(this_pair, '::', ap, ' --- ', bp, ' --- Объем: ', vl)
cnt = 1
c += 1