Visualizzazione post con etichetta algoritmo. Mostra tutti i post
Visualizzazione post con etichetta algoritmo. Mostra tutti i post

mercoledì 26 agosto 2020

PYTHON - MA and BOOKORDER SCALPING


Scalping signal indicator written in python. It is based on Binance data.
The simpleBinanceFut.py module can be downloaded from GitHub.
https://github.com/DanielePorcari/simpleBinanceFutures

import simpleBinanceFut as sBF

def MA(dati,periodo):
    ris=0
    i=len(dati)-1
    for c in range(periodo):
        if i>=periodo:
            prezzo=(float(dati[i][4]))
            ris=ris+prezzo
            i-=1
    ris=ris/periodo
    return ris

def bookBot(up):
    volMax=0
    priceMax=0
    if up:
        for i in range(len(book['bids'])):
            price=float(book['bids'][i][0])
            vol=float(book['bids'][i][1])
            if float(vol)>float(volMax):
                volMax=vol
                priceMax=price
        print("Buy: ",priceMax)
        volMax=0
        priceMax=0
        for i in range(len(book['asks'])):
            price=book['asks'][i][0]
            vol=book['asks'][i][1]
            if float(vol)>float(volMax):
                volMax=vol
                priceMax=price
        print("TP: ",priceMax)
    else:
        for i in range(len(book['asks'])):
            price=float(book['asks'][i][0])
            vol=float(book['asks'][i][1])
            if float(vol)>float(volMax):
                volMax=vol
                priceMax=price
        print("Sell: ",priceMax)
        volMax=0
        priceMax=0
        for i in range(len(book['bids'])):
            price=book['bids'][i][0]
            vol=book['bids'][i][1]
            if float(vol)>float(volMax):
                volMax=vol
                priceMax=price
        print("TP: ",priceMax)

coppia=input("Insert asset: ")
print("Last price: ",sBF.fbin_ultimo_prezzo(coppia))
tf=input("Insert tf:")
book=sBF.fbin_book(coppia)
prezzi=sBF.fbin_candlestick(coppia,tf,"99")
ma9=MA(prezzi,50)
ma25=MA(prezzi,25)
if ma9>ma25:
    up=True
else:
    up=False
bookBot(up)

lunedì 6 aprile 2020

PYTHON - PROCEDURA RICORSIVA CON ESEMPIO DELLA POTENZA MATEMATICA

La ricorsione è una procedura che chiama se stessa. Molte formule matematiche utilizzano la ricorsività e anche alcuni algoritmi, tra i quali cito il famoso Quick Sort.

import sys

def potenza(b,e):
    if e==0:
        return 1
    else:
        return b * potenza(b, e-1)

print(potenza(int(sys.argv[1]),int(sys.argv[2])))

Sette righe e la potenza è calcolata. Ciao

domenica 29 marzo 2020

PYHTON - ALGORITMO RICERCA PATTERN DI PREZZO

Elaborare algoritmi che valutano numeri è semplice.
Valutazione sui prezzi, sui tempi ciclici.
Valutare la formazione di figure quali tazze, testa e spalle e triangoli è un po' più complesso.
Un abbozzo di una prima soluzione:

'''ricerca del pattern tazza
programmazione per trading
soluzione algoritmica
di Porcari Daniele '''

vettorePrezziMedi=[45,42,41,24,22,25,18,15,21,22,38,44]
 
#divido il vettore in due con //
primaP=len(vettorePrezziMedi)//2
secP=len(vettorePrezziMedi)-primaP
#la prima parte deve essere discendente
#la seconda parte ascendente
max=vettorePrezziMedi[0]
discesa=False
print(max)
i=1
print(vettorePrezziMedi[i])
while i < primaP:
    if vettorePrezziMedi[i]<max:
        print(vettorePrezziMedi[i])
        discesa=True
    else:
        discesa=False
        break
    i+=1
if discesa:
    print("Discesa")
max=vettorePrezziMedi[len(vettorePrezziMedi)-1]
print(max)
salita=False
i=primaP
print(i)
print(vettorePrezziMedi[i])
while i < secP+primaP-1:
    if vettorePrezziMedi[i]<max:
        print(vettorePrezziMedi[i])
        salita=True
    else:
        salita=False
        break
    i+=1
if salita:
    print("salita")
if discesa==True and salita==True:
    print("Possibile tazza")
else:
    print("Tazza non trovata")

import matplotlib.pyplot as plt
x=[]
for i in range(len(vettorePrezziMedi)):
    x.append(i)
plt.plot(x, vettorePrezziMedi, marker = "o", color = 'red')
plt.show()