---
name: tick_to_ohlcv
kind: function
lang: go
domain: finance
version: "1.0.0"
purity: pure
signature: "func TickToOHLCV(prices, volumes []float64, timestamps []int64, intervalSecs int64) (open, high, low, close, vol []float64)"
description: "Agrega datos de ticks en velas OHLCV segun un intervalo de tiempo en segundos."
tags: [finance, ohlcv, aggregate, tick, pendiente-usar]
uses_functions: []
uses_types: [tick_go_finance, ohlcv_go_finance]
returns: [ohlcv_go_finance]
returns_optional: false
error_type: ""
imports: []
params:
  - name: prices
    desc: "slice de precios de ticks en orden cronológico"
  - name: volumes
    desc: "slice de volúmenes de ticks (mismo tamaño que prices)"
  - name: timestamps
    desc: "slice de timestamps en unix seconds (mismo tamaño que prices, debe estar ordenado)"
  - name: intervalSecs
    desc: "intervalo de agregación en segundos (ej: 60 para 1 minuto, 3600 para 1 hora)"
output: "tupla (open, high, low, close, volume) - cinco slices de datos OHLCV agregados por intervalo"
tested: false
tests: []
test_file_path: ""
file_path: "functions/finance/tick_to_ohlcv.go"
---

# tick_to_ohlcv

Agrega ticks (precio, volumen, timestamp) en velas OHLCV. Los ticks se agrupan en buckets de `intervalSecs` segundos. Los timestamps deben estar en unix seconds y ordenados cronologicamente.

## Ejemplo

```go
o, h, l, c, v := finance.TickToOHLCV(
    []float64{100, 101, 99, 102},
    []float64{10, 20, 15, 25},
    []int64{1000, 1005, 1055, 1060},
    60,
)
// Genera 2 velas: [1000-1059] y [1060-1119]
```
