test1 / pages /20_Crypto.py
dvaz's picture
Upload 20_Crypto.py
c387830
import requests
import streamlit as st
import yfinance as yf
import pandas_ta as ta
from tradingview_ta import *
st.set_page_config('Crypto',":moneybag:","wide",menu_items={'About': "This is an *extremely* cool app!"})
menu=['Chart','RSI Indicator','Pivot points','Trading-view']
ch=st.sidebar.selectbox('Menu',menu)
if ch== 'Chart':
with st.container():
list_asset = ['BTC-USD', 'ETH-USD', 'DOGE-USD']
ms = st.multiselect('choose asset', list_asset)
dates1 = st.date_input('from')
dates2 = st.date_input('to')
st.write('---')
if len(ms) > 0:
with st.container():
df = yf.download(ms, dates1, dates2)
st.write(df)
df2 = yf.download(ms, dates1, dates2)['Close']
st.line_chart(df2)
if ch== 'RSI Indicator':
with st.container():
list_asset = ['BTC-USD', 'ETH-USD', 'DOGE-USD']
ms = st.selectbox('choose asset', list_asset)
dates1 = st.date_input('from')
dates2 = st.date_input('to')
st.write('---')
lis=[]
if len(ms) > 0:
with st.container():
df = yf.download(ms, dates1, dates2)
x=ta.rsi(df['Close'],lenght=14)
try:
st.write(x)
for i,j in x.items():
lis.append(j)
st.write(f'RSI(14): {lis[-1]}')
except:
st.warning('Minimum interval should be 14 days.')
if ch== 'Pivot points':
with st.container():
list_asset = ['BTC-USD', 'ETH-USD', 'DOGE-USD']
ms = st.selectbox('choose asset', list_asset)
dates1 = st.date_input('from')
dates2 = st.date_input('to')
st.write('---')
hlis=[]
llis=[]
clis=[]
if len(ms) > 0:
with st.container():
df = yf.download(ms, dates1, dates2)
for i,j in df['Close'].items():
clis.append(j)
close=clis[-1]
for ii,jj in df['High'].items():
hlis.append(jj)
high=hlis[-1]
for iii,jjj in df['Low'].items():
llis.append(jjj)
low=llis[-1]
PP = (high + low + close) / 3
R1 = 2 * PP - low
S1 = 2 * PP - high
st.write(f'S1:{S1}----R1:{R1}')
R2 = PP + (high - low)
S2 = PP - (high - low)
st.write(f'S2:{S2}----R2:{R2}')
R3 = PP + 2 * (high - low)
S3 = PP - 2 * (high - low)
st.write(f'S3:{S3}----R3:{R3}')
R4 = PP + 3 * (high - low)
S4 = PP - 3 * (high - low)
st.write(f'S4:{S4}----R4:{R4}')
list_pair= ["BTCUSDT" ,"ETHUSDT","BNBUSDT","ADAUSDT","DOGEUSDT","SHIBAUSDT","MATICUSDT","ALGOUSDT","CHZUSDT"]
list_interval = ["Monthly","Weekly","Daily","4h","2h","1h","30m","15m","5m","1m"]
dict = {
"1m":Interval.INTERVAL_1_MINUTE,
"5m":Interval.INTERVAL_5_MINUTES ,
"15m":Interval.INTERVAL_15_MINUTES,
"30m":Interval.INTERVAL_30_MINUTES,
"1h":Interval.INTERVAL_1_HOUR,
"2h":Interval.INTERVAL_2_HOURS,
"4h":Interval.INTERVAL_4_HOURS,
"Daily":Interval.INTERVAL_1_DAY,
"Weekly":Interval.INTERVAL_1_WEEK,
"Monthly":Interval.INTERVAL_1_MONTH,
}
list_exchange = ["BINANCE" ,"COINEX","UNISWAP","GATEIO","HUOBI","GATEIO","KUCOIN","FTX","COINBASE","OKX"]
screener="CRYPTO"
if ch== 'Trading-view':
with st.container():
pair = st.selectbox('Choose pair',list_pair)
exchange = st.selectbox('Choose exchange', list_exchange)
interval2 = st.selectbox('Choose interval', list_interval)
interval2=(dict[interval2])
handler = TA_Handler(
symbol=pair,
screener=screener,
exchange=exchange,
interval=interval2
)
with st.container():
try:
rec = handler.get_analysis().summary["RECOMMENDATION"]
st.warning("RECOMMENDATION: "+ rec)
ind = handler.get_analysis().indicators
for k,v in ind.items():
st.write(f'{k} ----- {v}')
#handler.get_analysis().
except:
st.error('Exchange or pair not found.')