Skip to content

Commit

Permalink
bugfixing
Browse files Browse the repository at this point in the history
  • Loading branch information
MuslemRahimi committed Jul 23, 2024
1 parent 8b8f8dd commit b790903
Showing 1 changed file with 73 additions and 58 deletions.
131 changes: 73 additions & 58 deletions app/cron_dark_pool_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ def save_json(data):

identifier = 'GME'
source = 'cta_a_delayed'
#start_date, end_date = GetStartEndDate().run()
start_date = '2024-07-22' #start_date.strftime("%Y-%m-%d")
end_date = '2024-07-22' #end_date.strftime("%Y-%m-%d")
start_date, end_date = GetStartEndDate().run()
start_date = start_date.strftime("%Y-%m-%d")
end_date = end_date.strftime("%Y-%m-%d")
start_time = ''
end_time = ''
timezone = 'UTC'
Expand All @@ -34,64 +34,79 @@ def save_json(data):
min_size = 100
count = 0


def get_data():
data = []
count = 0
while True:
if count == 0:
next_page = ''
try:
response = intrinio.SecurityApi().get_security_trades_by_symbol(identifier, source, start_date=start_date, start_time=start_time, end_date=end_date, end_time=end_time, timezone=timezone, page_size=page_size, darkpool_only=darkpool_only, min_size=min_size, next_page=next_page)

filtered_entries = [
entry.__dict__ for entry in response.trades
#if int(entry._price * entry._total_volume) >= 2E9
]

data.extend(filtered_entries)
next_page = response.next_page

if not next_page:
break
count +=1
print(f'Current length {len(data)}')

except Exception as e:
print(e)
break

return data
data = []
count = 0

while True:
if count == 0:
next_page = ''
try:
response = intrinio.SecurityApi().get_security_trades_by_symbol(
identifier, source, start_date=start_date, start_time=start_time,
end_date=end_date, end_time=end_time, timezone=timezone,
page_size=page_size, darkpool_only=darkpool_only, min_size=min_size,
next_page=next_page
)

filtered_entries = [entry.__dict__ for entry in response.trades]

data.extend(filtered_entries)
next_page = response.next_page

if not next_page:
break
count += 1
print(f'Current length {len(data)}')

except Exception as e:
print(e)
break

return data


def run():
con = sqlite3.connect('stocks.db')
cursor = con.cursor()
cursor.execute("SELECT DISTINCT symbol, name FROM stocks")
stocks = cursor.fetchall()
con.close()

symbol_name_map = {row[0]: row[1] for row in stocks}
stock_symbols = list(symbol_name_map.keys())
data = get_data()
print(data)

# Filter the data
filtered_data = [entry for entry in data if entry['_symbol'] in stock_symbols]
res = [
{
'symbol': entry['_symbol'],
'name': symbol_name_map[entry['_symbol']],
'date': (entry['_timestamp']-timedelta(hours=4)).isoformat(),
'price': entry['_price'],
'volume': entry['_total_volume'],
'size': entry['_size']
}
for entry in filtered_data
]


if len(res) > 0:
save_json(res)
con = sqlite3.connect('stocks.db')
cursor = con.cursor()
cursor.execute("SELECT DISTINCT symbol, name FROM stocks")
stocks = cursor.fetchall()
con.close()
symbol_name_map = {row[0]: row[1] for row in stocks}
stock_symbols = list(symbol_name_map.keys())

data = get_data()
filtered_data = [entry for entry in data if entry['_symbol'] in stock_symbols]


filtered_data = [
{
'symbol': entry['_symbol'],
'name': symbol_name_map[entry['_symbol']],
'date': (entry['_timestamp']-timedelta(hours=4)).isoformat(),
'price': entry['_price'],
'total_volume': entry['_total_volume'],
'size': entry['_size']
}
for entry in filtered_data
]

sorted_data = sorted(filtered_data, key=lambda x: x['date'])

previous_total_volume = None

for entry in sorted_data:
if previous_total_volume is not None:
entry["volume"] = int(entry["total_volume"]) - previous_total_volume
else:
entry["volume"] = int(entry["total_volume"]) #if you prefer to keep the first volume as is
previous_total_volume = int(entry["total_volume"])

sorted_data = sorted(sorted_data, key=lambda x: x['date'], reverse=True)


if len(sorted_data) > 0:
save_json(sorted_data)


if __name__ == "__main__":
Expand Down

0 comments on commit b790903

Please sign in to comment.