forked from nelso0/barbotine-arbitrage-bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
exchange_config.py
99 lines (88 loc) · 3.07 KB
/
exchange_config.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import ccxt as ccxt
import requests
import time
import pytz
import datetime
telegram_sending = False
ctrl_c_handling = True
how_do_you_usually_launch_python = 'python3' # the command you put in the terminal/cmd to launch python. Usually: python, python3, py...
fees = {
'binance': {'base': 0, 'quote' : 0.001},
'okx': {'base': 0, 'quote' : 0.0008},
'kucoin': {'base': 0, 'quote' : 0.001},
'bybit':{'base':0.001,'quote':0.001},
}
ex = {
'kucoin':ccxt.kucoin(),
'binance':ccxt.binance(),
'okx':ccxt.okx(),
'bybit':ccxt.bybit(),
# uncomment and fill kucoin futures api for delta-neutral mode.
#'kucoinfutures':ccxt.kucoinfutures({
#'apiKey':'here',
#'secret':'here',
#'password':'here'
# }),
# 'another_exchange_here':ccxt.other_exchange({
# 'apiKey':'here',
# 'secret':'here',
# }),
}
apiToken = 'here' # telegram API to send everything to you, don't fill if you don't want telegram
chatID = 'here'
first_orders_fill_timeout = 0 # put a value for the timeout in minutes. 0 means desactivated (default)
criteria_pct = 0 # minimum of price difference in % to take the opportunity
criteria_usd = 0
def moy(list):
moy=0
for n in list:
moy+=n
return moy/len(list)
def send_to_telegram(message):
message = message.replace("[2m","")
message = message.replace("[0m","")
message = message.replace("[2m","")
apiURL = f'https://api.telegram.org/bot{apiToken}/sendMessage'
try:
if telegram_sending:
response = requests.post(apiURL, json={'chat_id': chatID, 'text': message}) # put this if you want to send telegram messages.
else:
pass
except Exception as e:
print(e)
def append_new_line(file_name, text_to_append):
with open(file_name, 'a+') as file_object:
file_object.seek(0)
data = file_object.read(100)
if len(data) > 0:
file_object.turtle.write('\n')
file_object.turtle.write(text_to_append)
def printandtelegram(message):
print(message)
send_to_telegram(message)
def get_balance(exchange,symbol):
if symbol[-5:] == '/USDT':
symbol = symbol[:-5]
balance=ex[exchange].fetch_balance()
if symbol in balance['total'] != 0:
return balance['total'][symbol]
else: return 0
def get_precision_min(symbol,exchange_str):
symbol_info = ex[exchange_str].load_markets(symbol)
graal = symbol_info[symbol]['limits']['price']['min']
return graal
def get_time():
# Définir la timezone française
tz_france = pytz.timezone('Europe/Paris')
# Obtenir la date et l'heure actuelles dans la timezone française
now = datetime.datetime.now(tz_france)
# Formater la date et l'heure dans le format souhaité
date_heure_format = now.strftime("[%d/%m/%Y %H:%M:%S]")
# Retourner la date et l'heure formatées
return date_heure_format
def get_balance_usdt(ex_list_str:list):
usdt_balance = 0
for excha in ex_list_str:
balances = ex[excha].fetchBalance()
usdt_balance+=balances['USDT']['total']
return float(usdt_balance)