File size: 3,036 Bytes
a359cc9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1a51130
a359cc9
9703865
d104ba7
5eb07f4
3cba3de
bfaebf4
 
d104ba7
 
 
3cba3de
bfaebf4
 
a359cc9
dd89c2f
9703865
 
c2afca6
 
1a51130
c2afca6
a359cc9
 
39e9bad
 
a359cc9
 
 
 
 
 
 
 
 
c2afca6
482e901
 
c2afca6
a359cc9
096bef9
 
a359cc9
096bef9
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import streamlit as st
import datetime
import time 
st.set_page_config(page_title="Inraday_Screener",page_icon="🌍",layout="wide")

from tradingview_screener import Scanner, Query, Column
# Assuming the crosses_below method is defined in a class
class YourClass:
    def crosses_below(self, column, other):
        return {'left': column.name, 'operation': 'crosses_below', 'right': column._extract_value(other)}
    def crosses_above(self, column, other):
        return {'left': column.name, 'operation': 'crosses_above', 'right': column._extract_value(other)}
# Create an instance of your class
your_instance = YourClass()

con10, con20  = st.columns(2)
st.success('*_Setup_*')
with con10:
    st.write('')
    time1 = st.selectbox('*_Time Frame_*', ('1','5','15','30','60','120','240','D','1W','1M'),key=1)
    if time1 == 'D':
        timevolume = 'volume'
        timeADXnegDI = 'ADX-DI'
        timeADXposDI = 'ADX+DI'
        timeclose = 'close'
    else:
        timeclose = f'close|{time1}'
        timevolume = f'volume|{time}'
        timeADXnegDI = f'ADX-DI|{time}'
        timeADXposDI = f'ADX+DI|{time}'
with con20:
    st.write('')
    price_from = st.number_input('*_Price_From_*', min_value=float(1), max_value=float(10000), value=float(100), step=float(5),key=23)
    price_to = st.number_input('*_Price_To_*', min_value=float(1), max_value=float(10000), value=float(200), step=float(5),key=2)

def create_link(url:str) -> str:
    return f'<a href="https://in.tradingview.com/chart/?symbol={url}">{url}</a>'

if st.button('*_SUBMIT_*'):
    # Create a query with the required columns and conditions
    df_Bulliesh = (Query().select('Exchange','name',timeclose, timevolume, timeADXnegDI, timeADXposDI).where(your_instance.crosses_below(Column(timeADXnegDI), Column(timeADXposDI)),Column(timeclose).between(price_from, price_to)).order_by(timevolume, ascending=False).limit(10))
    df_Beariesh = (Query().select('Exchange','name',timeclose, timevolume, timeADXnegDI, timeADXposDI).where(your_instance.crosses_above(Column(timeADXnegDI), Column(timeADXposDI)),Column(timeclose).between(price_from, price_to)).order_by(timevolume, ascending=False).limit(10))

    # Display the result
    df_Bulliesh = df_Bulliesh.set_markets('india').get_scanner_data()
    df_Bulliesh = df_Bulliesh[1]
    df_Bulliesh = df_Bulliesh[df_Bulliesh['exchange'] == 'NSE']
    #--------------------------------
    df_Beariesh = df_Beariesh.set_markets('india').get_scanner_data()
    df_Beariesh = df_Beariesh[1]
    df_Beariesh = df_Beariesh[df_Beariesh['exchange'] == 'NSE']
    
    df_Beariesh['πŸ”— Link'] = [create_link(url) for url in df_Beariesh["ticker"]]
    df_Bulliesh['πŸ”— Link'] = [create_link(url) for url in df_Bulliesh["ticker"]]
    
    st.success('*_Bulliesh_*')
    #st.table(df_Bulliesh)
    st.write(df_Bulliesh.to_html(escape=False, index=False), unsafe_allow_html=True)
    st.error('*_Beariesh_*')
    #st.table(df_Beariesh)
    st.write(df_Beariesh.to_html(escape=False, index=False), unsafe_allow_html=True)