Please check the following query, which provides real-time OHLC data in streaming APIs.
https://ide.bitquery.io/OHLC-by-intervals
query {
EVM(dataset: realtime) {
DEXTradeByTokens(
orderBy: {ascendingByField: "Block_Time"}
where: {
Trade: {
Side: {
Currency: {
SmartContract: {is: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}
}
}
Currency: {SmartContract: {
is: "0xdac17f958d2ee523a2206206994597c13d831ec7"
}}}
}
) {
Block {
Time(interval: {in: minutes count: 10})
}
volume: sum(of: Trade_Amount)
Trade {
high: Price(maximum: Trade_Price)
low: Price(minimum: Trade_Price)
open: Price(minimum: Block_Number)
close: Price(maximum: Block_Number)
}
count
}
}
}