From 3a23e60e2c840a12e93d714366f404eaa61818de Mon Sep 17 00:00:00 2001
From: Emilien212 <51836065+Emilien212@users.noreply.github.com>
Date: Wed, 10 Jun 2020 03:18:13 +0200
Subject: [PATCH] Update 10/06/2020
Add .config file and installer, modify principal script and excel configuration
---
CryptExcel.config | 4 ++
CryptExcel.py | 171 +++++++++++++++++++++++++++++++---------------
Installer.bat | 19 ++++++
trading.xlsx | Bin 641301 -> 140365 bytes
4 files changed, 140 insertions(+), 54 deletions(-)
create mode 100644 CryptExcel.config
create mode 100644 Installer.bat
diff --git a/CryptExcel.config b/CryptExcel.config
new file mode 100644
index 0000000..7276a92
--- /dev/null
+++ b/CryptExcel.config
@@ -0,0 +1,4 @@
+api_key = xxxxx
+secret_key = xxxxx
+pairs = ETHUSDT, ETHEUR
+refresh = 10
\ No newline at end of file
diff --git a/CryptExcel.py b/CryptExcel.py
index d20c551..af185f1 100644
--- a/CryptExcel.py
+++ b/CryptExcel.py
@@ -1,58 +1,121 @@
from binance.client import Client
from datetime import datetime
+from time import sleep
import openpyxl
-#Binance API
-api_key = "Your api key"
-secret_key = "Your secret key"
-client = Client(api_key, secret_key)
-balances = client.get_account().get('balances')
-prices = client.get_all_tickers()
-pairs = ["ETHUSDT", "ETHEUR"] #Add in the array the other pairs for which you want to recover the trade
-trades = []
-for pair in pairs:
- trade = (client.get_all_orders(symbol=pair, limit=1000))
- for order in trade:
- trades.append(order)
-
-
-#Excel Values
-workbook = openpyxl.load_workbook('trading.xlsx')
-DetailledHome = workbook.get_sheet_by_name('DetailledHome')
-Wallet = workbook.get_sheet_by_name('Wallet')
-values = workbook.get_sheet_by_name('Values')
-alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
-
-
-
-#Fill Wallet sheet
-y=2
-for balance in balances:
- x=0
- for i in balance:
- Wallet[alphabet[x]+str(y)] = balance.get(i)
- x += 1
- y += 1
-
-
-#Fill DetailledHome
-y=2
-for order in trades:
- x=0
- for i in order:
- if i == "time" or i == "updateTime":
- timestamp = int(str(order.get(i))[:-3])
- time = datetime.fromtimestamp(timestamp)
- DetailledHome[alphabet[x]+str(y)] = str(time)
- x+=1
- DetailledHome[alphabet[x]+str(y)] = order.get(i)
- x+=1
- y+=1
-
-#Fill Values
-for i in range(len(prices)):
- values[f'A{i+2}'] = prices[i].get('symbol')
- values[f'B{i+2}'] = prices[i].get('price')
-
-#Save Excel
-workbook.save('trading.xlsx')
+#Read CryptExcel.config
+f = open("CryptExcel.config", "r")
+content = f.read().split("\n")
+api_key = content[0].replace("api_key", "").replace("=", "").strip()
+secret_key = content[1].replace("secret_key", "").replace("=", "").strip()
+pairs = content[2].replace("pairs", "").replace("=", "").replace(" ", "").strip().split(",")
+refresh = int(content[3].replace("refresh", "").replace("=", "").strip())
+
+def modify():
+ #Binance API
+ client = Client(api_key, secret_key)
+ balances = client.get_account().get('balances')
+ prices = client.get_all_tickers()
+ trades = []
+ for pair in pairs:
+ trade = (client.get_all_orders(symbol=pair, limit=1000))
+ for order in trade:
+ trades.append(order)
+
+ #Excel Values
+ workbook = openpyxl.load_workbook('trading.xlsx')
+ Home = workbook.get_sheet_by_name('Home')
+ DetailledHome = workbook.get_sheet_by_name('DetailledHome')
+ Wallet = workbook.get_sheet_by_name('Wallet')
+ values = workbook.get_sheet_by_name('Values')
+
+ #Fill Wallet sheet
+ for i in range(len(balances)):
+ Wallet[f'A{i+2}'] = balances[i].get('asset')
+ Wallet[f'B{i+2}'] = balances[i].get('free')
+ Wallet[f'C{i+2}'] = balances[i].get('locked')
+ Wallet['E1'] = "Last update at " + str(datetime.now().strftime("%H:%M:%S %d/%m/%Y"))
+
+
+ #Fill DetailledHome sheet
+ trade_id = []
+ for i in range(2, 10000):
+ val = DetailledHome[f'B{i}'].value
+ if val != None:
+ trade_id.append(val)
+
+ for order in trades:
+ if trade_id.count(order.get('orderId')) == 0:
+ DetailledHome[f'A{len(trade_id)+2}'] = order.get('symbol')
+ DetailledHome[f'B{len(trade_id)+2}'] = order.get('orderId')
+ DetailledHome[f'C{len(trade_id)+2}'] = order.get('orderListId')
+ DetailledHome[f'D{len(trade_id)+2}'] = order.get('clientOrderId')
+ DetailledHome[f'E{len(trade_id)+2}'] = order.get('price')
+ DetailledHome[f'F{len(trade_id)+2}'] = order.get('origQty')
+ DetailledHome[f'G{len(trade_id)+2}'] = order.get('executedQty')
+ DetailledHome[f'H{len(trade_id)+2}'] = order.get('cummulativeQuoteQty')
+ DetailledHome[f'I{len(trade_id)+2}'] = order.get('status')
+ DetailledHome[f'J{len(trade_id)+2}'] = order.get('timeInForce')
+ DetailledHome[f'K{len(trade_id)+2}'] = order.get('type')
+ DetailledHome[f'L{len(trade_id)+2}'] = order.get('side')
+ DetailledHome[f'M{len(trade_id)+2}'] = order.get('stopPrice')
+ DetailledHome[f'N{len(trade_id)+2}'] = order.get('icebergQty')
+ DetailledHome[f'O{len(trade_id)+2}'] = datetime.fromtimestamp(int(str(order.get('time'))[:-3]))
+ DetailledHome[f'P{len(trade_id)+2}'] = order.get('time')
+ DetailledHome[f'Q{len(trade_id)+2}'] = datetime.fromtimestamp(int(str(order.get('updateTime'))[:-3]))
+ DetailledHome[f'R{len(trade_id)+2}'] = order.get('updateTime')
+ DetailledHome[f'S{len(trade_id)+2}'] = order.get('isWorking')
+ DetailledHome[f'T{len(trade_id)+2}'] = order.get('origQuoteOrderQty')
+ trade_id.append(order.get('orderId'))
+ else:
+ index = trade_id.index(order.get('orderId'))
+ DetailledHome[f'A{index+2}'] = order.get('symbol')
+ DetailledHome[f'B{index+2}'] = order.get('orderId')
+ DetailledHome[f'C{index+2}'] = order.get('orderListId')
+ DetailledHome[f'D{index+2}'] = order.get('clientOrderId')
+ DetailledHome[f'E{index+2}'] = order.get('price')
+ DetailledHome[f'F{index+2}'] = order.get('origQty')
+ DetailledHome[f'G{index+2}'] = order.get('executedQty')
+ DetailledHome[f'H{index+2}'] = order.get('cummulativeQuoteQty')
+ DetailledHome[f'I{index+2}'] = order.get('status')
+ DetailledHome[f'J{index+2}'] = order.get('timeInForce')
+ DetailledHome[f'K{index+2}'] = order.get('type')
+ DetailledHome[f'L{index+2}'] = order.get('side')
+ DetailledHome[f'M{index+2}'] = order.get('stopPrice')
+ DetailledHome[f'N{index+2}'] = order.get('icebergQty')
+ DetailledHome[f'O{index+2}'] = datetime.fromtimestamp(int(str(order.get('time'))[:-3]))
+ DetailledHome[f'P{index+2}'] = order.get('time')
+ DetailledHome[f'Q{index+2}'] = datetime.fromtimestamp(int(str(order.get('updateTime'))[:-3]))
+ DetailledHome[f'R{index+2}'] = order.get('updateTime')
+ DetailledHome[f'S{index+2}'] = order.get('isWorking')
+ DetailledHome[f'T{index+2}'] = order.get('origQuoteOrderQty')
+ DetailledHome['V1'] = "Last update at " + str(datetime.now().strftime("%H:%M:%S %d-%m-%Y"))
+
+ #Feel Home sheet
+ for i in range(len(trade_id)):
+ Home[f'A{i+2}'] = f'=DetailledHome!O{i+2}'
+ Home[f'B{i+2}'] = f'=DetailledHome!A{i+2}'
+ Home[f'C{i+2}'] = f'=DetailledHome!L{i+2}'
+ Home[f'D{i+2}'] = round(float(DetailledHome[f'F{i+2}'].value)*float(DetailledHome[f'E{i+2}'].value), 4)
+ Home[f'E{i+2}'] = f'=DetailledHome!F{i+2}'
+ Home[f'G{i+2}'] = f'=DetailledHome!E{i+2}'
+ Home[f'H{i+2}'] = f'=DetailledHome!I{i+2}'
+ Home['K1'] = '=DetailledHome!V1'
+
+ #Fill Values sheet
+ for i in range(len(prices)):
+ values[f'A{i+2}'] = prices[i].get('symbol')
+ values[f'B{i+2}'] = prices[i].get('price')
+ values['D1'] = "Last update at " + str(datetime.now().strftime("%H:%M:%S %d-%m-%Y"))
+
+ #Save Excel
+ try:
+ workbook.save('trading.xlsx')
+ print('Saved !')
+ except:
+ print('Not saved because file is open...')
+ pass
+
+while True:
+ modify()
+ sleep(refresh)
\ No newline at end of file
diff --git a/Installer.bat b/Installer.bat
new file mode 100644
index 0000000..b73a142
--- /dev/null
+++ b/Installer.bat
@@ -0,0 +1,19 @@
+@echo off
+if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)
+cd %TEMP%
+python --version | find "Python 3" >nul 2>nul
+if %errorlevel% == 1 (
+ echo Python 3 isn't install, proceed to install it
+ curl https://www.python.org/ftp/python/3.8.3/python-3.8.3.exe -O python.exe
+ python-3.8.3.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0
+ del /f python-3.8.3.exe
+) else (
+ echo Python 3 is already installed
+)
+echo Installing libraries
+pip install Twisted
+pip install python-binance
+pip install openpyxl
+pip install datetime
+pause
+
diff --git a/trading.xlsx b/trading.xlsx
index 28554bec163b61d45a3cc61edf31df1547ec48fe..513c7261992136f850f4c72d323973770eed491c 100644
GIT binary patch
literal 140365
zcmeFZc|6tW|2N*gr#|h=l%_p}7A4d%?V>UzWXlwih_XhO_NGNrA(c!Ek}ZTR(K4lo
zQ
@}iW
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 RB
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