First commit

This commit is contained in:
2026-03-27 12:40:49 -04:00
commit adf3e592eb
7 changed files with 939 additions and 0 deletions

61
ws_rtds.py Normal file
View File

@@ -0,0 +1,61 @@
import asyncio
import json
import math
import pandas as pd
import os
from datetime import datetime, timezone
import websockets
import numpy as np
import talib
import requests
WSS_URL = "wss://ws-live-data.polymarket.com"
HIST_TRADES = np.empty((0, 2))
async def rtds_stream():
global HIST_TRADES
async with websockets.connect(WSS_URL) as websocket:
print(f"Connected to {WSS_URL}")
subscribe_msg = {
"action": "subscribe",
"subscriptions": [
{
"topic": "crypto_prices_chainlink",
"type": "*",
"filters": "{\"symbol\":\"btc/usd\"}"
}
]
}
await websocket.send(json.dumps(subscribe_msg))
try:
async for message in websocket:
if isinstance(message, str):
try:
data = json.loads(message)
if data['payload'].get('value', None) is not None:
print(f'🤑 BTC Chainlink Last Px: {data['payload']['value']:_.4f}; TS: {pd.to_datetime(data['timestamp'], unit='ms')}')
else:
print(f'Initial or unexpected data struct, skipping: {data}')
continue
except (json.JSONDecodeError, ValueError):
print(f'Message not in JSON format, skipping: {message}')
continue
else:
raise ValueError(f'Type: {type(data)} not expected: {message}')
except websockets.ConnectionClosed:
print("Connection closed by server.")
if __name__ == '__main__':
try:
asyncio.run(rtds_stream())
except KeyboardInterrupt:
print("Stream stopped.")