Todo bot precisa de dados antes de decidir qualquer coisa. Na Deriv API com Python, o pedido ticks_history é o coração disso: ele entrega o histórico de preços de um ativo — em formato de ticks ou de candles (OHLC) — e também permite assinar atualizações ao vivo. Este guia é uma referência direta: a sintaxe, os campos que importam e código pronto para puxar histórico e receber ticks em tempo real. Trading de curto prazo é de altíssimo risco — teste tudo em conta demo primeiro.

Quer um bot Deriv pronto, que já coleta dados, calcula indicadores e gerencia risco? Veja a solução em Python e teste em conta demo.

Ver bot Deriv em Python →

Conexão

A Deriv usa WebSocket com mensagens JSON. Para apenas ler dados de mercado você nem precisa de token (mas para operar, sim):

import json, asyncio, websockets APP_ID = “1089” # use seu app_id URL = f”wss://ws.derivws.com/websockets/v3?app_id={APP_ID}” async def send(ws, payload): await ws.send(json.dumps(payload)) return json.loads(await ws.recv())

ticks_history em formato de ticks

Para puxar os últimos N preços (ticks) de um ativo:

req = { “ticks_history”: “R_100”, “end”: “latest”, “count”: 10, “style”: “ticks” } resp = await send(ws, req) hist = resp[“history”] print(“Preços:”, hist[“prices”]) # lista de preços print(“Tempos:”, hist[“times”]) # lista de timestamps (epoch)
Campos-chave: count define quantos pontos voltar; end aceita “latest” ou um timestamp; você também pode usar start para um intervalo. No estilo ticks, a resposta vem em history.prices e history.times (duas listas paralelas).

ticks_history em formato de candles (OHLC)

Para velas (open/high/low/close), use style: "candles" e defina a granularity em segundos (60 = 1 minuto, 300 = 5 min, 3600 = 1h):

req = { “ticks_history”: “R_100”, “end”: “latest”, “count”: 50, “style”: “candles”, “granularity”: 60 # 1 minuto } resp = await send(ws, req) candles = resp[“candles”] ultima = candles[-1] print(“Open :”, ultima[“open”]) print(“High :”, ultima[“high”]) print(“Low :”, ultima[“low”]) print(“Close:”, ultima[“close”]) print(“Epoch:”, ultima[“epoch”])

A resposta vem em candles, uma lista de objetos com open, high, low, close e epoch — pronta para alimentar indicadores (médias, RSI, ATR).

Ticks ao vivo (subscribe)

Para receber cada novo tick em tempo real, adicione subscribe: 1 e fique lendo o socket:

await ws.send(json.dumps({“ticks”: “R_100”, “subscribe”: 1})) while True: msg = json.loads(await ws.recv()) tick = msg.get(“tick”) if tick: print(tick[“epoch”], “->”, tick[“quote”])
Encerrar a assinatura: guarde o subscription.id retornado e envie {"forget": "<id>"} para parar de receber. Para parar tudo de uma vez, use {"forget_all": "ticks"}.

Dica: combinar histórico + ao vivo

O padrão profissional é simples: puxe um bloco de candles para “esquentar” seus indicadores (warm-up), e a partir daí atualize com os ticks ao vivo. Assim seu RSI/ATR já nasce calculado corretamente em vez de precisar esperar dezenas de barras.

FAQ

Preciso de token para ler dados?
Para ticks_history e ticks de mercado geralmente não. Token é necessário para operar (proposal/buy) e para dados de conta.

Quais granularidades existem?
Valores em segundos como 60, 120, 300, 600, 900, 1800, 3600, 7200, 14400, 28800 e 86400 (1 dia), entre outros.

Qual o limite de count?
Há um teto por requisição (na casa dos milhares). Para históricos longos, pagine usando start e end.

Como pego a lista de ativos?
Use o pedido active_symbols para descobrir os símbolos disponíveis na sua conta/região.

Aviso: trading de contratos de curto prazo e opções é de altíssimo risco e a maioria dos traders de varejo perde dinheiro. Este conteúdo é educacional e técnico, não constitui recomendação de investimento, oferta ou aconselhamento financeiro. Resultados passados não garantem resultados futuros. Teste sempre em conta demo antes de arriscar capital real e nunca invista mais do que você pode perder.