PYTHON BASE - API BINANCE PYTHON BOT - API TELEGRAM PYTHON BOT - PYTHON E LA RETE - Contenuti funzionanti e scaricabili
domenica 25 febbraio 2024
Python Thread e animazione barretta di caricamento
domenica 6 agosto 2023
Grafico MACD e prezzo
domenica 30 luglio 2023
Calcolo pivot point in automatico
Questa funzione Python trova la candela
importante nel dataframe DF e ne
calcola il Pivot Point e le due
resistenze e due supporti.
def pivot_point(df): pp=0 r1=0 r2=0 s1=0 s2=0 ppa=[] r1a=[] r2a=[] s1a=[] s2a=[] dd=30 c=0 important_cand=0 for i in range(len(df)): comp_cand=abs(df['open'][i]-df['close'][i]) if comp_cand>important_cand: important_cand=comp_cand nci=i pp=(df['high'][nci]+df['low'][nci]+df['close'][nci])/3 ppa.append(pp) r1=(pp*2)-df['low'][nci] r1a.append(r1) r2=pp+(df['high'][nci]-df['low'][nci]) r2a.append(r2) s1=(pp*2)-df['high'][nci] s1a.append(s1) s2=pp-(df['high'][nci]-df['low'][nci]) s2a.append(s2) c+=1 if (df['close'][i]>r2) | (df['close'][i]<s2) | (df['open'][i]>r2) | (df['open'][i]<s2): #il prezzo è fuori dai dati pp azzera la candela importante important_cand=0 df['pp']=ppa df['r1']=r1a df['r2']=r2a df['s1']=s1a df['s2']=s2a return df
DF deve contenere i campi open, close,
high, low
sabato 29 luglio 2023
GPL3 e altre licenze
Ecco un elenco di alcuni pacchetti Python con licenze diverse da GPL:
1. Requests: Licenza Apache 2.0
2. NumPy: Licenza BSD
3. Pandas: Licenza BSD
4. Matplotlib: Licenza BSD
5. Django: Licenza BSD
6. Flask: Licenza BSD
7. TensorFlow: Licenza Apache 2.0
8. Keras: Licenza MIT
9. Scikit-learn: Licenza BSD
10. SQLAlchemy: Licenza MIT
11. BeautifulSoup: Licenza MIT
12. Pygame: Licenza LGPL
13. PyTorch: Licenza BSD
14. OpenCV: Licenza BSD
15. PyQT: Licenza GPL con un'opzione commerciale
Ci sono diverse licenze compatibili con la GPL3, che permettono di distribuire il software sotto termini diversi ma ancora compatibili con la GPL3. Alcune di queste licenze includono:
- Licenza MIT: è una licenza permissiva che permette la distribuzione e la modifica del software, ma richiede solo l'inclusione del copyright e della licenza originale. È compatibile con la GPL3.
- Licenza Apache 2.0: è una licenza permissiva che permette la distribuzione, la modifica e la sublicenza del software, ma richiede l'inclusione del copyright, della licenza originale e dei riconoscimenti dei contributi. È compatibile con la GPL3.
- Licenza BSD: ci sono diverse varianti della licenza BSD, ma la maggior parte di esse sono compatibili con la GPL3. Queste licenze sono permissive e permettono la distribuzione, la modifica e la sublicenza del software, ma richiedono solo l'inclusione del copyright e della licenza originale.
- Licenza Creative Commons Attribution-ShareAlike (CC BY-SA): è una licenza che permette la distribuzione e la modifica del software, ma richiede l'attribuzione dell'autore originale e la condivisione delle opere derivate con la stessa licenza. È compatibile con la GPL3.
Queste sono solo alcune delle licenze compatibili con la GPL3. È importante leggere attentamente i termini di ogni licenza per assicurarsi che siano compatibili con i propri scopi e con la GPL3.
Si prega di notare anche che le licenze possono variare nel tempo, quindi è sempre consigliabile verificare la licenza ufficiale di ogni pacchetto prima di utilizzarlo.
giovedì 8 aprile 2021
PYTHON - Light database from json file
A very light textual database, very simple and basic.
Download the two files maker.py and lightdb.py in the same directory. Run lightdb.py to build the database on a json file. Then there is the possibility to add data directly from lightdb or you can build a .py file that will serve to manage the database. There is also the possibility to transform the json file into an excel file.
You can download the file from repo on github: lightdb
sabato 3 aprile 2021
PYTHON - Make and read JSON file with JSON library
import json
import sys
#Write and read json file with json library and dict
def makeJSON(jsFile):
dict={}
while True:
chiave=input("Chiave> ")
if chiave=='#e':
break
valori=input("Valori> ")
lista=valori.split(' ')
dict[chiave]=lista
with open(jsFile,"w") as json_file:
json.dump(dict, json_file)
def readJSON(jsFile):
dict={}
with open(jsFile,"r") as json_file:
dict=json.load(json_file)
return dict
def understandvalues(dict):
n=0
f=0.0
l=[]
d={}
klist=list(dict.keys())
for i in range(len(klist)):
val=dict[klist[i]]
if type(val)==type(l):
print("Lista")
elif type(val)==type(n) or type(val)==type(f):
print("numero")
elif type(val)==type(d):
print("dizionario")
if __name__ == "__main__":
comandi="Ho to use: ej3.py (r or w) (file name) \nr read json file\nw write json file"
try:
if sys.argv[1]=='r':
d=readJSON(sys.argv[2])
understandvalues(d)
print(d)
elif sys.argv[1]=='w':
makeJSON(sys.argv[2])
else:
print(comandi)
except:
print(comandi)
PYTHON - Building a memory based on external stimuli
import json
#Da stimoli esterni il software allarga le proprie conoscenze
def caricaCoscienza(nomeCoscienza):
with open(nomeCoscienza,"r") as json_file:
dictFromJSon=json.load(json_file)
return dictFromJSon
def memorizza(valori,dict,nomeCoscienza):
chiave=valori[0]
lista=[]
for i in range(len(valori)):
if i>0:
lista.append(valori[i])
dict[chiave]=lista
with open(nomeCoscienza,"w") as json_file:
json.dump(dict, json_file)
with open(nomeCoscienza,"r") as json_file:
dictFromJSon=json.load(json_file)
return dictFromJSon
def elabora(valori,ch,keys,dict):
chiave=keys[ch]
risposta=dict[chiave]
return risposta
def ricerca(ingresso,dict,nomeCoscienza):
keys=list(dict.keys())
valori=ingresso.split(' ')
trovato=False
r=''
for i in range(len(keys)):
for c in range(len(valori)):
if keys[i]==valori[c]:
trovato=True
ch=i
if not(trovato):
dict=memorizza(valori,dict,nomeCoscienza)
else:
r=elabora(valori,ch,keys,dict)
return r
if __name__ == "__main__":
dict=caricaCoscienza("result.json")
dato=input(">")
print(ricerca(dato,dict,"result.json"))
PYTHON - FROM DICTIONARIES to JSON
import json
#HOW TO MANAGE DICTIONARY
#+-+-+-+-+-+-+-+-+-+-+-+#
d = {
"Chiave": "Codice",
"Costo": 1.23,
"Ricarico": 30,
"Listino": 3.00
}
c = d.items()
print(c)
lista=list(c)
for i in range(len(lista)):
print(lista[i])
c = d.keys()
print(c)
lista=list(c)
for i in range(len(lista)):
print(lista[i])
c=d.values()
print(c)
lista=list(c)
for i in range(len(lista)):
print(lista[i])
nd = {
"dizionario":{"subDict":["ch1","ch2","ch3"],
"other":"otherSub"
},
"numero":2,
"codice":"codice"
}
c=nd.items()
print(c)
lista=list(c)
for i in range(len(lista)):
print(lista[i])
c = nd.keys()
print(c)
lista=list(c)
for i in range(len(lista)):
print(lista[i])
c=nd.values()
print(c)
lista=list(c)
for i in range(len(lista)):
print(lista[i])
newD=lista[0]
c=newD.values()
print(c)
lista=list(c)
for i in range(len(lista)):
print(lista[i])
nuovaLista=lista[0]
for i in range(len(nuovaLista)):
print(nuovaLista[i])
print("Costruzione JSON")
with open("result.json", "w") as json_file:
json.dump(nd, json_file)
json_string = json.dumps(nd)
print(json_string)
with open("result.json","r") as json_file:
dictFromJSon=json.load(json_file)
print(dictFromJSon)
giovedì 1 aprile 2021
PYTHON - JSON MAKER
Writing a json file can be boring, with this very simple script it's boring all the same, but at least in the end everything is correct.
########################################
# json files editor to use as database #
########################################
import sys,os
import curses
import json
def interpreta(o,file,next,cont):
if next=='#k' and cont==0:
file=file+'\"'+o+'\":'
next=''
cont+=1
elif next=='#k' and cont>0:
file=file+',\"'+o+'\":'
next=''
elif next=='#v':
file=file+'\"'+o+'\"'
next=''
elif next=='#vl':
c=o.split(',')
file=file+'['
for i in range(len(c)):
file=file+'\"'+c[i]+'\"'
if i!=len(c)-1:
file=file+','
file=file+']'
next=''
if o=='#k' and cont==0:
file='{'
next='#k'
if o=='#k' and cont>0:
next='#k'
if o=='#v':
next='#v'
elif o=='#vl':
next='#vl'
elif o=='#vd':
next='#vd'
return file,next,cont
def main():
print("JSON maker")
print("commands: #k new key - #v new value - #vl new list value - #e save and exit")
file=''
cont=0
next=''
nomeFile=''
while True:
o=input(">")
if o=='#e':
file=file+"}"
nomeFile=input("Nome del file >")
f=open(nomeFile,"w")
f.write(file)
f.close()
sys.exit()
file,next,cont=interpreta(o,file,next,cont)
if __name__ == "__main__":
main()
domenica 28 marzo 2021
PYTHON - MAKE A JSON FILE FROM DICT
The filename is updated using a variable contained in "count.py". Each file is added to the "listalogiche.dat" file.
From here we start for artificial intelligence.
import json
import conteggio
import sys
lista2={}
while True:
v1=input('Parola ')
if v1=='fine':
break
elif v1=='annulla':
sys.exit()
else:
v2=input('comando ')
lista2[v1]=v2
nomefile="comandi"+str(conteggio.conta)+".json"
#save lista2 as .json file
with open(nomefile, "w") as json_file:
json.dump(lista2, json_file)
#aggiornamento dei file di configurazione
f=open("conteggio.py","w")
n=conteggio.conta
n+=1
f.write('conta='+str(n))
f.close()
f=open("listalogiche.dat","a")
f.write(nomefile)
f.close()
martedì 12 maggio 2020
PYTHON - AI SEE THE GRAPHIC PATTERNS
#Riconoscimento pattern grafici tramite AI
#Porcari Daniele's code
from PIL import Image, ImageFilter
import imagehash
import matplotlib.pyplot as plt
import requests
import json
def binanceList(coppia,intervallo,limite):
coppia=coppia.upper()
indirizzo='https://fapi.binance.com/fapi/v1/klines?symbol='+coppia+'&interval='+intervallo+'&limit='+limite
r=requests.get(indirizzo)
file=r.text
lista=json.loads(file)
x=[]
y=[]
for i in range(len(lista)):
x.append(lista[i][0])
y.append(float(lista[i][4]))
return x,y
def disegnaGrafico(x,y,asset):
ok=False
fig=plt.figure(figsize=(14,14))
plt.plot(x,y,color='black')
nome=asset+".png"
plt.savefig(nome)
return nome
def togliCornice(immagine,asset):
ok=False
img=Image.open(immagine)
w,h=img.size
l=180
t=172
r=w-159
b=h-163
nome=asset+"pronta.png"
img.crop((l, t, r, b)).save(nome)
img.close()
return nome
def confronto(attuale,base,base2):
tazza=True
img = Image.open(base)
image_one_hash = imagehash.whash(img)
img2 = Image.open(attuale)
image_two_hash = imagehash.whash(img2)
similarity = image_one_hash - image_two_hash
img.close()
if similarity>20:
img=Image.open(base2)
image_one_hash = imagehash.whash(img)
similarity2 = image_one_hash - image_two_hash
if similarity>similarity2:
similarity=similarity2
tazza=False
img.close()
img2.close()
return similarity,tazza
def confrontoTestaSpalle():
ok=False
return ok
linea=['BTCUSDT',
'LINKUSDT',
'BATUSDT',
'VETUSDT',
'TRXUSDT',
'ETHUSDT',
'BCHUSDT',
'LTCUSDT',
'XRPUSDT',
'EOSUSDT',
'ETCUSDT',
'XTZUSDT',
'BNBUSDT',
'ADAUSDT',
'NEOUSDT',
'XLMUSDT',
'DASHUSDT',
'ZECUSDT',
'XMRUSDT',
'ATOMUSDT',
'ONTUSDT',
'IOTAUSDT',
'QTUMUSDT',
'IOSTUSDT']
for i in range(len(linea)):
print(linea[i])
x,y=binanceList(linea[i],'4h','50')
nomeGraf=disegnaGrafico(x,y,linea[i])
grafOk=togliCornice(nomeGraf,linea[i])
similarity,cup=confronto(grafOk,'tazza.png','tazza2.png')
if cup==True:
print("Possibile tazza ",similarity," - ",linea[i])
else:
print(similarity," - ",linea[i])
If you like the blog remember that you can support my work by donating cryptocurrencies to the addresses at the top right or at this link go fund me.
domenica 3 maggio 2020
PYTHON - SIMPLE BINANCE FUTURES API
#Porcari Daniele https://danieleporcaripython.blogspot.com
#Simple Binance Futures API for Python
import requests
import json
def fbin_ultimo_prezzo(coppia):
coppia=coppia.upper()
indirizzo='https://fapi.binance.com/fapi/v1/ticker/price?symbol='+coppia
r=requests.get(indirizzo)
file=r.text
prezzo=json.loads(file)
return prezzo['price']
def fbin_book(coppia):
coppia=coppia.upper()
indirizzo='https://fapi.binance.com/fapi/v1/depth?symbol='+coppia
r=requests.get(indirizzo)
file=r.text
return json.loads(file)
def fbin_scambi24H(coppia,limite):
coppia=coppia.upper()
indirizzo='https://fapi.binance.com/fapi/v1/depth?symbol='+coppia+'&limit='+limite
r=requests.get(indirizzo)
file=r.text
return json.loads(file)
def fbin_candlestick(coppia,intervallo,limite):
coppia=coppia.upper()
indirizzo='https://fapi.binance.com/fapi/v1/depth?symbol='+coppia+'&interval='+intervallo+'&limit='+limite
r=requests.get(indirizzo)
file=r.text
return json.loads(file)
def fbin_prezzomercato(coppia):
coppia=coppia.upper()
indirizzo='https://fapi.binance.com//fapi/v1/premiumIndex?symbol='+coppia
r=requests.get(indirizzo)
file=r.text
return json.loads(file)
def fbin_24h_statisticheprezzo(coppia):
coppia=coppia.upper()
if coppia=='NONE':
indirizzo='https://fapi.binance.com/fapi/v1/ticker/24hr'
else:
indirizzo='https://fapi.binance.com/fapi/v1/ticker/24hr?symbol='+coppia
r=requests.get(indirizzo)
file=r.text
return json.loads(file)
def fbin_book_migliorprezzo(coppia):
coppia=coppia.upper()
indirizzo='https://fapi.binance.com//fapi/v1/ticker/bookTicker?symbol='+coppia
r=requests.get(indirizzo)
file=r.text
return json.loads(file)
sabato 2 maggio 2020
PYTHON - AI TESTING BOT TRADING SIGNALS
BATUSDT Binance
03/05/2020 06:47:01 BATUSDT DAY 10 1 23-Apr-20 Op: Buy Prezzo: 0.1914 TP1: 0.20450 TP2: 0.19795 TP3: 0.19577 Il prezzo è tra 0.19610 e 0.18680
03/05/2020 06:47:01 LINKUSDT DAY 10 1 23-Apr-20 Op: Buy Prezzo: 3.824 TP1: 3.99728 TP2: 3.91064 TP3: 3.88176 Il prezzo è tra 3.83657 e 3.68133 vicino al livello massimo
03/05/2020 06:47:01 TRXUSDT DAY 10 1 23-Apr-20 Op: Buy Prezzo: 0.01642 TP1: 0.01762 TP2: 0.01702 TP3: 0.01682 Il prezzo è tra 0.01740 e 0.01630
03/05/2020 06:47:01 VETUSDT DAY 10 1 23-Apr-20 Op: Buy Prezzo: 0.004557 TP1: 0.00484 TP2: 0.00470 TP3: 0.00465 Il prezzo è tra 0.00464 e 0.00439
03/05/2020 07:16:54 BTCUSDT DAY 10 1 23-Apr-20 Op: Buy Prezzo: 9101.81 TP1: 9489.80920 TP2: 9295.80960 TP3: 9231.14307 Il prezzo è tra 9250.95667 e 8480.50333
venerdì 1 maggio 2020
PYTHON - INTERROGATE THE WEB WITH APIs
This very simple script allows you to search for articles related to the keywords you enter, using the GNEWS.IO API
import requests
import json
#http://gnews.io
api_token=''#here your gnews api
keywords=input('Parole chiave:')
indirizzo='https://gnews.io/api/v3/search?q='+keywords+'&token='+api_token
print(indirizzo)
r=requests.get(indirizzo)
file=r.text
output=json.loads(file)
for i in range(len(output['articles'])):
print('Articoli: '+output['articles'][i]['title'])
print('Descrizione: '+output['articles'][i]['description'])
print('URL: '+output['articles'][i]['url'])
print('Pubblicato il: '+output['articles'][i]['publishedAt'])
The web is full of APIs that can be used to collect any type of data.If you like the blog remember to support my work through gofundme or by sending cryptocurrencies. Thanks
lunedì 20 aprile 2020
PYTHON - LE BASI DELLA PROGRAMMAZIONE
Qualcuno potrebbe obiettare che a livello commerciale non conviene "perdere tempo" ad ottimizzare i programmi, e potrei anche dargli ragione, ma credo che per quello che si chiama "amor proprio" ottimizzare ogni programma è una grande soddisfazione.
domenica 19 aprile 2020
PYTHON - MACD ALGORITHM
def vettoreMA(dati,periodo):
itad=[]
vMediaINV=[]
mediaFinale=[]
i=len(dati)
c=0
prov=0
conta=0
while i >0 :
itad.append(dati[c])
c+=1
i-=1
long1=len(itad)//int(periodo)
for i in range(len(itad)-int(periodo)):
for c in range(periodo):
prov=float(itad[i+c][4])+prov
vMediaINV.append(prov/periodo)
prov=0
i=len(vMediaINV)
c=0
while i >0:
mediaFinale.append(vMediaINV[c])
c+=1
i-=1
return mediaFinale
def vettoreMACD(mediasmall,mediabig):
macd=[]
for i in range(len(mediabig)):
macd.append(mediabig[i]-mediasmall[i])
return macd
PYTHON IA BINANCE API PIVOT CALCULATOR V.2
venerdì 17 aprile 2020
PYTHON BINANCE API TRADING IA - EXAMPLE
from binance.client import Client
from binance.enums import *
import string
import time
import dateparser
import sys
def accesso():
f=open('chiavi.dat','r') #text file : pubblicAPIkey-privateAPIkey
rawkeys=f.read()
f.close()
k=rawkeys.split('-')
cl=Client(api_key=k[0], api_secret=k[1])
return cl
def ultimoPrezzo(cl,coppia):
lP=0.0
while True:
try:
vPrz=cl.get_all_tickers()
break
except:
print("Ticker connection - error")
for i in range(len(vPrz)):
if vPrz[i]['symbol']==coppia.upper():
lP=vPrz[i]['price']
return lP
def verificaTF(cl,tf):
ok=False
while True:
try:
t = cl.get_server_time()
break
except:
print("Server Time Error")
ms=str(t['serverTime'])
data=dateparser.parse(ms)
data=str(data)
oD=data.split(" ")
orario=oD[1].split(":")
if tf=='4H':
i=0
d=4
elif tf=='30M':
i=1
d=30
elif tf=='15M':
i=1
d=15
elif tf=='5M':
i=1
d=5
resto=float(orario[i])%d
if resto==0 and (int(orario[2])==0):
ok=True
time.sleep(10)
return ok,oD[1]
def book(cl,cp):
bidsPrice=[]
asksPrice=[]
while True:
try:
libro = cl.get_order_book(symbol=cp.upper())
break
except:
print("book connection - error")
for i in range(len(libro)):
sumBidsVol=float(libro['bids'][i][1])
sumAsksVol=float(libro['asks'][i][1])
for i in range(30):
bidsPrice.append(float(libro['bids'][i][0]))
asksPrice.append(float(libro['asks'][i][0]))
return bidsPrice, asksPrice,sumBidsVol,sumAsksVol
def MA(dati,periodo):
prezzi=[]
for i in range(len(dati)):
prezzi.append(float(dati[i]))
ris=0
for i in range(periodo):
ris=ris+prezzi[i]
ris=ris/periodo
return ris
def recuperoPrezzi(cl,coppia):
vPrezzi=[]
while True:
try:
vTot=cl.get_klines(symbol=coppia.upper(), interval=Client.KLINE_INTERVAL_5MINUTE)
break
except:
print("kLines errore")
for i in range(len(vTot)):
vPrezzi.append(vTot[i][4])
return vPrezzi
def main(coppia,diff):
cl=accesso()
vP=recuperoPrezzi(cl,coppia)
buy=False
sell=False
inOp=False
while True:
stampa,ora=verificaTF(cl,'5M')#5M 15M 30M 4H
prezzo = ultimoPrezzo(cl,coppia)
if stampa:
print("Prezzo ",prezzo," - ",ora)
ma3=MA(vP,3)
ma14=MA(vP,14)
print("MA3 ",ma3,"\nMA14 ",ma14)
vP.append(prezzo)
bidsP,asksP,sumBV,sumAV=book(cl,coppia)#asset name
f=open("dati.dat","a")
stringa=str(prezzo)+","+str(ma3)+","+str(ma14)+","+str(ora)+"\n"
f.write(stringa)
f.close()
if ((float(sumBV)-float(sumAV)) > 0) and (ma3>ma14) and not(inOp):
print("BUY ",prezzo," ",ora)
prezzoB=prezzo
buy=True
inOp=True
sell=False
elif ((float(sumBV)-float(sumAV)) < 0) and (ma3<ma14) and not(inOp):
prezzoS=prezzo
print("SELL ",prezzo," ",ora)
buy=False
inOp=True
sell=True
if buy:
prezzo=ultimoPrezzo(cl,coppia)
if float(prezzo)>(float(prezzoB)+float(diff)) :
print("Preso Buy ",prezzoB," ",prezzo," ",ora)
f=open("operazioni.dat","a")
stringa="Prezzo Buy "+str(prezzoB)+" uscita: "+str(float(prezzoB)+float(diff))+"\n"
f.write(stringa)
f.close()
buy=False
inOp=False
if sell:
prezzo=ultimoPrezzo(cl,coppia)
if float(prezzo)<(float(prezzoS)-float(diff)):
print("Preso sell ",prezzoS," ",prezzo," ",ora)
f=open("operazioni.dat","a")
stringa="Prezzo Sell "+str(prezzoS)+" uscita: "+str(float(prezzoS)-float(diff))+"\n"
f.write(stringa)
f.close()
sell=False
inOp=False
#name asset takeprofit
main(sys.argv[1],sys.argv[2])
Sorry, alittle mistake in def MA: replace this with the one in the main listing.
def MA(dati,periodo):
ris=0
i=len(dati)-1
for c in range(periodo):
prezzo=(float(dati[i]))
ris=ris+prezzo
i-=1
ris=ris/periodo
return ris
PYTHON - BINANCE API - PRINT THE LATEST PRICE AT EACH TIME FRAME
This Python script print the last price for each time frame.
TIME FRAME: 4H 30M 15M 5M
COUPLE: all those on spot Binance
from binance.client import Client
from twisted.internet import reactor
from binance.enums import *
import string
import time
import dateparser
import sys
def accesso():
f=open('chiavi.dat','r') #text file : pubblicAPIkey-privateAPIkey
rawkeys=f.read()
f.close()
k=rawkeys.split('-')
cl=Client(api_key=k[0], api_secret=k[1])
return cl
def ultimoPrezzo(cl,coppia):
lP=0.0
vPrz=cl.get_all_tickers()
for i in range(len(vPrz)):
if vPrz[i]['symbol']==coppia.upper():
lP=vPrz[i]['price']
return lP
def verificaTF(cl,tf):
ok=False
t = cl.get_server_time()
ms=str(t['serverTime'])
data=dateparser.parse(ms)
data=str(data)
oD=data.split(" ")
orario=oD[1].split(":")
if tf=='4H':
i=0
d=4
elif tf=='30M':
i=1
d=30
elif tf=='15M':
i=1
d=15
elif tf=='5M':
i=1
d=5
resto=float(orario[i])%d
if resto==0 and (int(orario[2])==0):
ok=True
time.sleep(10)
return ok,oD[1]
client=accesso()
while True:
stampa,ora=verificaTF(client,sys.argv[2])#5M 15M 30M 4H
if stampa:
prezzo = ultimoPrezzo(client,sys.argv[1])#asset name
print(prezzo," ",ora)
This program is part of the next AI Signal Bot that I am programming.
martedì 14 aprile 2020
PYTHON - TELEGRAM IA TRADING SIGNAL INDICATOR CRYPTOCOINS -
import time
import telepot
from pprint import pprint
import trFunz
import utils
import os
import sys
import keys
def handle(msg):
content_type, chat_type, chat_id = telepot.glance(msg)
if content_type == 'text':
txt=msg['text']
if txt.startswith('/help'):
bot.sendMessage(chat_id,'Bot analizzatore di trading su crypto valute presenti sull\'exchange Binance')
help=utils.archivioR("txt/help.bot")
bot.sendMessage(chat_id,help)
if txt.startswith('/email'):
params=txt.split()
if len(params) == 1:
bot.sendMessage(chat_id,'Ti saranno inviate email con segnali di trading sulla coppia voluta\n/email ')
else:
try:
dati=params[1]+","+params[2]+"\n"
utils.archivio('txt/email.bot','a',dati)
bot.sendMessage(chat_id,'Eseguito')
except:
bot.sendMessage(chat_id,'Errore nel passaggio dei parametri')
if txt.startswith('/pivot'):
params = txt.split()
if len(params) == 1:
bot.sendMessage(chat_id, 'Uso: /pivot Calcola il Pivot Point in automatico DAY/4H')
else:
try:
client=utils.accesso()
print (params[1])
print (params[2])
coppia=params[1].upper()
periodo=int(params[2])
tf=params[3].upper()
print(tf)
bot.sendMessage(chat_id,(trFunz.calcPP(client,coppia,periodo,tf)))
bot.sendPhoto(chat_id, photo=open('img/pp.png', 'rb'))
except:
bot.sendMessage(chat_id, 'Errore nei parametri')
if txt.startswith('/trend'):
params = txt.split()
if len(params) == 1:
bot.sendMessage(chat_id,'Uso: /trend rileva il trend con le medie mobili')
else:
try:
client=utils.accesso()
coppia=params[1].upper()
term=params[2].upper()
trend=trFunz.scopriTrend(client,coppia,term,200)
trend=coppia+" "+trend
bot.sendMessage(chat_id,trend)
except:
bot.sendMessage(chat_id,'Errore nei parametri')
if txt.startswith('/ph'):
bot.sendPhoto(chat_id, photo=open('img/test.png', 'rb'))
if txt.startswith('/mm'):
params = txt.split()
if len(params) == 1:
bot.sendMessage(chat_id,'Uso: /mm Trova i massimi ed i minimi nel periodo n.giorni indicato. MAXVAL: il valore di soglia sotto il quale si vogliono trovare i minimi oppure per scelta automatica digitare \'a\'. N.DEC numero di decimali desiderati dopo la virgola.\nACorHL: 0 per lavorare su prezzi apertura/chiusura, 1 per lavorare su prezzi high/low')
else:
try:
client=utils.accesso()
giorni=int(params[1])
print(giorni)
coppia=params[2].upper()
print(coppia)
maxval=params[3]
print(maxval)
ndec=params[4]
print(ndec)
ACHL=int(params[5])
vMax,vmin=trFunz.minemax(client,giorni,coppia,maxval,ndec,ACHL)
bot.sendMessage(chat_id,'Massimi:'+str(vMax))
bot.sendMessage(chat_id,'Minimi:'+str(vmin))
except:
bot.sendMessage(chat_id,'Errore nei parametri')
TOKEN = keys.Token
bot = telepot.Bot(TOKEN)
response = bot.getUpdates()
pprint(response)
bot.message_loop(handle)
print ('Listening ...')
while 1:
time.sleep(20)












