martedì 12 maggio 2020

PYTHON - AI SEE THE GRAPHIC PATTERNS

A prototype script that "sees" the configuration of graphic patterns. For now it only works on the pattern cup.
Download the data from Binance, draw the price line and compare it with the standard cup image.

#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])

Copy and save the following images with the name of: cup.png and cup2.png
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

The Binance Futures API returned data as strings, and it was unmanageable (at least for me) so I wrote this form which returns the responses of the Binance Futures API in lists and dictionaries. 
You can use this module without logging in to Binance. I hope you find it useful.


#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

Some signals from the BOT that I am testing. It is not my responsibility to use these signals; the use of these signs is at your own risk. I remember that trading is a high risk investment and it is possible to lose all the capital invested.
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 
The BOT I am testing has calculated an upward trend and proposes a long operation with three possible targets. It also indicates the price between which resistances and support. 

Same reading of the BOT signals on the next pairs 

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

YOUTUBE ALGORITMI - AI

AI YouTube, dove AI non sta per intelligenza artificiale, ma per l'esclamazione di dolore...
Cosa hanno in comune un giornalista youtuber e il sottoscritto? Nulla, forse la curiosità.
Premetto che non siamo amici, non lo conosco e l'ho incontrato casualmente su Twitter qualche ora fa e qui entra in azione il magico YouTube e il suo algoritmo che è a dir poco pietoso, scadente e orribilmente programmato da handicappati mentali oppure che è, di volta in volta, pilotato dal sentiment della nazione in cui i suoi contenuti sono ospitati.
Ora vi racconto la strana storia di Livio Varriale, questo il suo canale su youtube. 
La storia inizia con l'ultimo video che ha postato in cui parla del Dark Scandals.
Dopo di che è tutto in discesa e perde addirittura l'idoneità agli annunci.
Il suo unico peccato? Aver parlato di OpSec e di argomenti come revenge porn  oppure dark web.
Prima di scrivere mi sono guardato i suoi ultimi video e non c'è nulla che possa giustificare tale azione.
Un mese emmezzo fa circa l'algoritmo di YouTube ha iniziato a chiudere canali che riguardavano le cripto valute, non erano canali di scam, ma tranquillissimi canali di analisi sui mercati crypto, e guarda caso questi canali evidenziavano la differenza tra i mercati crypto e la finanza classica...
Ipotizziamo che il video vero a dar fastidio sia stato quello sull'OpSec, in cui Livio illustra in modo chiaro e semplice la gestione di questa emergenza ... 

Non penso che gli sviluppatori dell'algoritmo di youtube siano tutti dei beoti che cassano i propri introiti... 
Quindi: finanza decentralizzata vs finanza classica in un momento in cui gli istituzionali soffrono e non vogliono perdere introiti youtube colpisce ... una informazione troppo chiara e forse troppo giusta e youtube colpisce ...
Ho detto tutto.




PYTHON - INTERROGATE THE WEB WITH APIs

With python's REQUEST and JSON module it's simple. Below is an example of a query to the GNEWS.IO API
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