API

Conozca sobre nuestra API

WebSockets API

Documentación de WebSockets

REST API

Uso General

NOTA: Todas las URLs de la API deben usar el dominio api.kraken.com.

Debe proporcionar una cadena de agente de usuario al crear una cabecera de solicitud o de lo contrario, no podrá conectarse a la API.

Kraken tiene habilitada la 'Revisión de integridad del navegador'.

Puede recibir un error si a sus encabezados de solicitud les falta un agente de usuario o tiene un agente de usuario no estándar.

Si no puede crear ninguna solicitud estándar aceptada por nuestro sistema, envíenos una copia completa de la(s) solicitud(es) que intenta obtener, incluyendo las direcciones de IP completas y todos los encabezados. Esta información nos permitirá investigar más a fondo.

Los métodos públicos pueden utilizar GET o POST.

Los métodos privados deben utilizar POST y ser configurados de la siguiente manera:

Encabezado HTTP:

API-Key = Clave API
API-Sign = Firma del mensaje utilizando HMAC-SHA512 de (dirección URI + SHA256(nonce + POST data)) y la clave API secreta descodificada de la base64

PUBLICAR Datos:

nonce = siempre aumenta el entero de 64 bits sin signo.
otp = contraseña de la verificación en dos pasos (en caso de tener la verificación en dos pasos activado, de lo contrario no es requerido)

Nota: No es posible reiniciar el nonce a un valor menor así que, asegúrese de utilizar un método de generación de nonce que no genere números menores a los nonce previos. Se recomienda un contador persistente o la hora actual con una precisión de centésimas de segundo o mayor. Demasiadas peticiones con nonces inferiores al último nonce válido (EAPI:nonce inválido) pueden resultar en bloqueos temporales.

Nota: Algunas peticiones pueden llegar fuera de orden o el protocolo NTP puede ocasionar que su reloj se retrase, resultando en problemas con el nonce. Si se encuentra con este problema, puede cambiar el nonce window en la página de configuración de la API de su cuenta. La cantidad a configurar dependerá de cómo incremente el nonce. Dependiendo de su conectividad, se recomienda establecer un valor que tolere los problemas de red entre 3-15 segundos.

Las llamadas API que requieren un activo de divisa se pueden referenciar utilizando sus nombres ISO4217-A3 en el caso de los nombres registrados ISO, sus nombres de 3 letras comúnmente utilizados en el caso de nombres no registrados, o de su código X-ISO4217-A3 (vea http://www.ifex-project.org/).

Las respuestas están codificadas en JSON en forma de::

error = vector de mensajes de error con el siguiente formato:
<char-severity code><string-error category>:<string-error type>[:<string-extra info>]
código severo puede ser E en caso de error o W si se trata de una advertencia
result = resultado de la llamada API (puede no existir en caso de haber errores)

Nota: Se debe tener cuidado al tratar cualquier número representado como string, ya que estos pueden desbordar los tipos de datos estándar.

Límite de tarifa de llamada API

También disponemos de medidas de seguridad para proteger contra los abusos o ataques DoS así como la manipulación del libro de órdenes causada por la rápida colocación y cancelación de órdenes.

Cada usuario de nuestra API tiene un "contador de llamadas" que comienza en 0.

Las llamadas del historial del libro mayor/operaciones aumentan el contador en 2.

Las llamadas de Crear/Cancelar órdenes no afectan al contador.

Todas las demás llamadas de la API aumentan el contador en 1.

El contador del usuario se reduce cada dos segundos, y si el contador supera el acceso a la API máximo del usuario, se suspende durante 15 minutos. Los usuarios de nivel Básico tienen un máximo de 15 y su recuento se reduce en 1 cada 3 segundos. Los usuarios de nivel Intermedio y Pro tienen un máximo de 20; la cuenta se reduce en 1 cada 2 segundos para usuarios de nivel Intermedio, y se reduce en 1 cada segundo para usuarios de nivel Pro.

Aunque crear y cancelar órdenes no aumenta el contador, existen límites separados para evitar la manipulación del libro de órdenes. Solo realizando órdenes que tenga la intención de completar y manteniendo la tasa baja a 1 por segundo generalmente es suficiente para no alcanzar este límite.

Datos de mercado públicos

Obtener la hora del servidor

URL: https://api.kraken.com/0/public/Time

Resultado: Hora del servidor

unixtime = marca de tiempo unix
rfc1123 = formato de tiempo RFC 1123

Esto es para ayudar a aproximar el tiempo de desviación entre el servidor y el cliente.

Obtener información del activo

URL: https://api.kraken.com/0/public/Assets

Entrada:

info = información para recuperar (opcional):
info = toda la información (por defecto)
aclass = clase del activo (opcional): 
divisa (por defecto)
asset = lista delimitada por comas de activos para obtener información (opcional.  por defecto = todo para la clase de activo seleccionado)

Resultado: vector de nombres de activos y su información asociada

<asset_name> = nombre del activo
altname = nombre alternativo
aclass = clase del activo
decimals = número de decimales deseado en los registros
display_decimals = número de decimales a mostrar en la salida

Obtener pares de activos negociables

URL: https://api.kraken.com/0/public/AssetPairs

Entrada:

info = información para recuperar (opcional):
info = toda la información (por defecto)
leverage = información del apalancamiento
fees = tabla de tarifas
margin = información del margen
pair = lista delimitada por comas de pares de activos para obtener información (opcional. por defecto = todo)

Resultado: vector de nombres de pares y su información asociada

<pair_name> = nombre del par
altname = nombre del par alternativo
wsname = nombre del par WebSocket (si está disponible)
aclass_base = clase de activo del componente base
base = identificación (id) del activo del componente base
aclass_quote = clase de activo del componente de cotización
quote = identificación (id) del activo del componente de cotización
lot = tamaño del lote (volumen)
pair_decimals = número de decimales para el par
lot_decimals = número de decimales para el volumen
lot_multiplier = cantidad para multiplicar el volumen del lote para obtener el volumen de la moneda   
leverage_buy = vector de las cantidades de apalancamiento disponibles al comprar
leverage_sell = vector de las cantidades de apalancamiento disponibles al vender
fees = vector de tabla de tarifas en tuples [volumen, tarifa porcentual]
fees_maker = vector de tabla de tarifas tipo maker en tuples [volumen, tarifa porcentual] (si se aplica maker/taker)
fee_volume_currency = divisa del descuento por volumen
margin_call = nivel de llamada de margen 
margin_stop = nivel de margen de liquidación/stop-out

Nota: Si un par de activos está en la tabla de tarifas tipo maker/taker, el lado taker se proporcionará en "fees" y el maker en "fees_maker". El resto de pares se proporcionarán en "fees".

Obtener información de Ticker

URL: https://api.kraken.com/0/public/Ticker

Entrada:

pair = lista delimitada por comas de pares de activos para obtener información

Resultado: vector de nombres de pares y la información asociada de su ticker

<pair_name> = nombre del par
a = vector de ofertas(<precio>, <lote completo de volumen>, <lote del volumen>),
b = vector de demandas(<precio>, <lote completo de volumen>, <lote del volumen>),
c = vector de las últimas operaciones (trades) cerradas(<precio>, <lote del volumen>),
v = vector de volumen(<hoy>, <últimas 24 horas>),
p = vector del precio promedio ponderado por volumen(<hoy>, <últimas 24 horas>),
t = vector de número de operaciones(<hoy>, <últimas 24 horas>),
l = vector de mínimos(<hoy>, <últimas 24 horas>),
h = vector de máximos(<hoy>, <últimas 24 horas>),
o = precio de apertura de hoy

Nota: Los precios de hoy comienzan a las 00:00:00 UTC

Obtener datos OHLC (Apertura, Máximo, Mínimo, Cierre)

URL: https://api.kraken.com/0/public/OHLC

Entrada:

pair = par de activos para obtener datos OHLC para el 
intervalo = intervalo de tiempo en minutos (opcional):
1 (por defecto), 5, 15, 30, 60, 240, 1440, 10080, 21600
since = devuelve datos OHLC comprometidos desde la identificación dada (opcional. exclusivo)

Resultado: vector de nombre de par y datos OHLC

<pair_name> = nombre del par
vector de entradas formadas(<hora>, <apertura>, <máximo>, <mínimo>, <cierre>, <vwap>, <volumen>, <count>)
last = identificación (id) para ser utilizado como desde cuando se sondeaban datos OHLC nuevos y comprometidos

Nota: la última entrada en el vector OHLC es para el intervalo actual, aun no comprometido y siempre estará presente, independientemente del valor de "since".

Obtener libro de órdenes

URL: https://api.kraken.com/0/public/Depth

Entrada:

pair = par de activos para obtener profundidad del mercado
count = número máximo de ofertas/demandas (opcional)

Resultado: vector del nombre de par y profundidad del mercado

<pair_name> = nombre del par
asks = vector lateral de ofertas de las entradas formadas(<precio>, <volumen>, <timestamp>)
bids = vector lateral de demandas de las entradas formadas(<precio>, <volumen>, <timestamp>)

Obtener operaciones recientes

URL: https://api.kraken.com/0/public/Trades

Input:

pair = par de activos para obtener datos de operación 
since = devuelve datos de la operación desde la identificación dada (id) (opcional. exclusivo)

Result: vector de nombre de par y datos de operación recientes

<pair_name> = nombre del par
vector de entradas formadas(<precio>, <volumen>, <hora>, <compra/venta>, <mercado/limite>, <varios>)
last = identificación (id) para ser utilizada como desde cuando se sondeaban nuevos datos de difusión

Obtener datos de difusión recientes

URL: https://api.kraken.com/0/public/Spread

Entrada:

pair = par de activos para obtener los datos difundidos
since =  devuelve los datos difundidos desde la identificación dada (opcional. inclusivo)

Resultado: vector de nombre de par y datos de difusión recientes

<pair_name> = nombre del par
vector de entradas formadas(<hora>, <demanda>, <oferta>)
last = identificación (id) para ser utilizada como desde cuando se sondeaban nuevos datos de operaciones

Nota: "since" es inclusivo por lo que, cualquier dato devuelto con el mismo tiempo que el vector anterior, debe sobrescribir todas las entradas del vector anterior en ese momento

Datos privados del usuario

Obtener balance de la cuenta

URL: https://api.kraken.com/0/private/Balance

Resultado: vector de nombres de activos y balance de la cuenta

Obtener el balance para operar

URL: https://api.kraken.com/0/private/TradeBalance

Entrada:

aclass = clase del activo (opcional): 
divisa (por defecto)
asset = activo base utilizado para determinar el balance (predeterminado = ZUSD)

Resultado: vector de la información del balance para operar

eb = balance equivalente (balance combinado de todas las divisas)
tb = balance para operar (saldo combinado de todas las monedas de renta variable)
m = cantidad del margen para las posiciones abiertas
n = ganancia/pérdida neta no realizada de posiciones abiertas
c = coste base de las posiciones abiertas
v = valoración flotante actual de las posiciones abiertas
e = capital = balance de operaciones + ganancia/pérdida neta no realizada
mf = margen libre = capital - margen inicial (margen máximo disponible para abrir nuevas posiciones)
ml = nivel de margen = (capital / margen inicial) * 100

Nota: Las tasas utilizadas para la valoración flotante son la media entre los mejores precios de oferta y demanda

Obtener órdenes abiertas

URL: https://api.kraken.com/0/private/OpenOrders

Entrada:

trades = incluir las operaciones o no en la salida (opcional.  por defecto = falso)
userref = restringir los resultados a la identificación (id) de referencia de usuario dada (opcional)

Resultado: vector de información de la orden en vector abierto con txid como clave

refid = identificación de la transacción de orden de referencia que creó esta orden
userref = identificación (id) de referencia del usuario
status = estado de la orden:
pending = entrada de libro de órdenes pendiente
open = orden abierta
closed = orden cerrada
canceled = orden cancelada
expired = orden caducada
opentm = marca de tiempo Unix de cuando se realizó la orden
starttm = marca de tiempo Unix de la hora de inicio de la orden (o 0 si no está configurada)
expiretm = marca de tiempo Unix de la hora de finalización de la orden (o 0 si no está configurada)
descr = información de descripción de la orden
pair = par de activos
type = tipo de orden (compra/venta)
ordertype = tipo de orden (Ver Añadir orden estándar)
price = precio primario
price2 = precio secundario
leverage = cantidad de apalancamiento
order = descripción de la orden
close = descripción de orden de cierre condicional (si se establece cierre condicional)
ol = volumen de la orden (divisa base a menos que viqc se establezca en oflags)
vol_exec = volumen ejecutado (divisa base a menos que viqc se establezca en oflags)
cost = coste total (divisa de cotización a menos que viqc se establezca en oflags)
fee = tarifa total (divisa de cotización)
price = precio promedio (divisa de cotización a menos que viqc se establezca en oflags)
stopprice = stop precio (divisa de cotización, para stops finales)
limitprice = precio límite activado (divisa de cotización, cuando se activa el tipo de orden basado en el límite)
misc = lista delimitada por comas de información variada
stopped = activado por precio stop
touched = activado por precio de táctil
liquidated = liquidación
partial = llenado parcial
oflags = lista delimitada por comas de indicadores de orden
viqc = volumen en divisa de cotización
fcib = tarifa preferida en la divisa base (por defecto si se vende)
fciq = tarifa preferida en divisa de cotización (por defecto si compra)
nompp = sin protección de precio de mercado
trades = vector de identificaciones (ids) de operaciones relacionadas con la orden (si se solicita información de las operaciones y los datos disponibles)

Nota: A menos que se indique lo contrario, los costos, tarifas, precios y volúmenes están en la escala del par de activos, no en la escala de la divisa. Por ejemplo, si el par de activos usa un tamaño de lote que tiene una escala de 8, el volumen usará una escala de 8, incluso si la divisa que representa solo tiene una escala de 2. De manera similar, si la escala de precios del par de activos es 5, la escala permanecerá como 5, incluso si la divisa subyacente tiene una escala de 8.

Obtener órdenes cerradas

URL: https://api.kraken.com/0/private/ClosedOrders

Entrada:

trades = incluir o no operaciones en la salida (opcional. por defecto = falso)
userref = restringir los resultados a la identificación de referencia de usuario dada (opcional)
start = inicio de marca de tiempo Unix o la orden tx de la identificación de los resultados (opcional. exclusivo)
end = fin de la marca de tiempo Unix  o la orden tx de la identifación de los resultados (opcional. inclusivo)
ofs = resultado offset
closetime = que tiempo usar (opcional)
open (apertura)
close (cierre)
both (ambos - por defecto)

Resultado: vector de información de la orden

closed = vector de información de la orden. Consulte  Obtener órdenes abiertas. Campos Adicionales:
closetm = marca de tiempo unix de cuando la orden fue cerrada
reason = información adicional sobre el estado (si existe)
count = cantidad de información de la orden disponible que coincide con los criterios

Nota: Los tiempos dados por las identificaciones (ids) tx de la orden son más precisos que las marcas de tiempo de Unix. Si se proporciona una identificación de tx de la orden para el tiempo, se utiliza el tiempo de apertura de la orden

Consultar información de las órdenes

URL: https://api.kraken.com/0/private/QueryOrders

Entrada:

trades = si se incluyen o no las operaciones en la salida (opcional. predeterminado = falso)
userref = restringir los resultados a una identificación de referencia de usuario dada (opcional)
txid = lista delimitada por comas con las identificaciones de transacción sobre la que que se desea consultar la información (50 como máximo)

Resultado: vector asociativo de la información de órdenes

<order_txid> = información de la orden. Consulte Obtener órdenes abiertas/Obtener órdenes cerradas

Obtener historial de operaciones

URL: https://api.kraken.com/0/private/TradesHistory

Entrada:

type = tipo de operación (opcional)
all = todos los tipos (por defecto)
any position = cualquier posición (abierta o cerrada)
closed position = posiciones que han sido cerradas
closing position = cualquier operación que cierre total o parcialmente de una posición
no position = operaciones no posicionales
trades = si se incluyen o no operaciones relacionadas con la posición en la salida (opcional. predeterminado = falso)
start = inicio de la marca de tiempo Unix o la identificación de la operación tx de los resultados (opcional. exclusivo)
end = fin de la marca de tiempo Unix o la identificación de la operación tx de los resultados (opcional. inclusivo)
ofs = resultado offset

Resultado: vector de la información de la operación

trades = vector de la información la operación con txid como clave
ordertxid = orden responsable de la ejecución de la operación
pair = par de activos
time = marca de tiempo Unix de la operación
type = tipo de orden (compra/venta)
ordertype = tipo de orden
price = precio promedio sobre el que fue ejecutada la orden (divisa de cotización)
cost = costo total de la orden (divisa de cotización)
fee = tarifa total (divisa de cotización)
vol = volumen (divisa base)
margin = margen inicial (divisa de cotización)
misc = lista delimitada por comas de información variada
closing = la operación cierra todo o parte de una posición
count = cantidad de información de las operaciones disponibles que coinciden con los criterios

Si la operación abrió una posición, los siguientes campos también están presentes en la información de la operación:

posstatus = estado de la posición (abierto/cerrado)
cprice = precio promedio de la parte cerrada de la posición (divisa de cotización)
ccost = costo total de la parte cerrada de la posición (divisa de cotización)
cfee = tarifa total de la parte cerrada de la posición (divisa de cotización)
cvol = tarifa total de la parte cerrada de la posición (divisa de cotización)
cmargin = margen total liberado en la parte cerrada de la posición (divisa de cotización)
net = ganancia/pérdida neta de la parte cerrada de la posición (divisa de cotización, escala de divisa de cotización)
trades = lista de operaciones de cierre para la posición (si está disponible)

Nota:

  • A menos que se indique lo contrario, los costes, tarifas, precios y volúmenes están en la escala del par de activos, no en la escala de la divisa.
  • Los tiempos dados por las identificaciones (ids) de tx de las órdenes son más precisos que las marcas de tiempo de Unix.

Información de consultas de operaciones

URL: https://api.kraken.com/0/private/QueryTrades

Entrada:

txid = lista delimitada por comas de las identificaciones (ids) de la transacción para consultar información sobre (20 como máximo)
trades = si se incluyen o no las operaciones relacionadas con la posición en la salida (opcional. predeterminado = falso)

Resultado: vector asociativo de información de operaciones

<trade_txid> = información de la operación. Consulte Obtener historial de transacciones

Obtener posiciones abiertas

URL: https://api.kraken.com/0/private/OpenPositions

Entrada:

txid = lista delimitada por comas de las identificaciones (ids) de transacción para restringir la salida
docalcs = si se incluyen o no los cálculos de ganancias/pérdidas (opcional. predeterminado = falso)
consolidation = en qué consolidar los datos de las posiciones (opcional).
market = consolidará las posiciones basadas en el par del mercado

Resultado: vector asociativo con información de la posición abierta

Nota:

El uso del campo opcional de consolidación dará como resultado una vista consolidada de los datos que se devuelven.

<position_txid> = información de la posición abierta
ordertxid = orden responsable de la ejecución de la operación
pair = par de activos
time = marca de tiempo unix para la operación
type = tipo de orden utilizada para abrir la posición (compra/venta)
ordertype = tipo de orden usado para abrir la posición
cost = costo de apertura de la posición (divisa de cotización a menos que viqc se establezca en oflags)
fee = tarifa de apertura de la posición (divisa de cotización)
vol = volumen de la posición (divisa base a menos que viqc se establezca en oflags)
vol_closed = volumen de posición cerrado (divisa base a menos que viqc establecido en oflags)
margin = margen inicial (divisa de cotización)
value = valor actual de la posición restante (si se solicita docalcs. divisa de cotización)
net = ganancia/pérdida no realizada de la posición restante (si se solicita docalcs. divisa de cotización, escala de divisa de cotización)
misc = lista delimitada por comas de información variada
oflags = lista delimitada por comas de indicadores de orden
viqc = volumen en divisa cotizada

Nota: a menos que se indique lo contrario, los costos, tarifas, precios y volúmenes se encuentran en la escala del par de activos, no en la escala de la divisa.

Obtener información de los libros mayores

URL: https://api.kraken.com/0/private/Ledgers

Entrada:

aclass = clase de activo (opcional):
divisa (por defecto)
asset = lista delimitada por comas de activos para restringir la salida a (opcional. predeterminado = todo)
type = tipo de libro mayor a obtener (opcional):
all (todo. por defecto)
deposit (depósito)
withdrawal (retiro)
trade (operación)
margin (margen)
start = inicio de marca de tiempo de Unix o libro mayor con la identificación (id) de los resultados (opcional. exclusivo)
end = fin de marca de tiempo de Unix o libro mayor con la identificación (id) de los resultados (opcional. inclusive)
ofs = resultado offset

Resultado: vector asociativo con información de los libros mayores

<ledger_id> = información del libro mayor
refid = identificación (id) de referencia
time = marca de tiempo unix del libro mayor
type = tipo de entrada de libro mayor
aclass = clase de activo
asset = activo
amount = cantidad de la transacción
fee = tarifa de transacción
balance = balance resultante

Nota: los tiempos dados por los identificadores del libro mayor son más precisos que las marcas de tiempo Unix.

Consulta de libros mayores

URL: https://api.kraken.com/0/private/QueryLedgers

Entrada:

id = lista delimitada por comas de la identificación (id) del libro mayor para obtener información (20 como máximo)

Resultado: vector asociativo de información de los libros mayores

<ledger_id> = información del libro mayor. Consulte Obtenga información de los libros mayores

Obtener volumen de operaciones

URL: https://api.kraken.com/0/private/TradeVolume

Entrada:

pair = lista delimitada por comas de pares de activos para obtener información sobre tarifas (opcional)
fee-info = si se incluye o no la información de la tarifa en los resultados (opcional)

Resultado: vector asociativo

currency = divisa de volumen
volume = volumen de descuento actual
fees = vector de pares de activos e información de nivel de tarifa (si se solicita)
fee = tarifa actual en porcentaje
minfee = tarifa mínima por par (si no es tarifa fija)
maxfee = tarifa máxima por par (si no es tarifa fija)
nextfee = tarifa del nivel siguiente del par (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
nextvolume = nivel de volumen del nivel siguiente (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
tiervolume = nivel de volumen del nivel actual (si no es una tarifa fija. nil si está en el nivel de tarifa más bajo)
fees_maker = vector de pares de activos e información del nivel de tarifa maker (si se solicita) para cualquier par en el listado maker/taker
fee = tarifa actual en porcentaje
minfee = tarifa mínima por par (si no es tarifa fija)
maxfee = tarifa máxima por par (si no es tarifa fija)
nextfee = tarifa del siguiente nivel por par (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
nextvolume = nivel de volumen del siguiente nivel (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
tiervolume = nivel de volumen del nivel actual (si no es una tarifa fija. nil si está en el nivel de tarifa más bajo)

Nota: si un par de activos está en una lista de tarifas de maker/taker, el lado del taker se da en "fees" y el lado del maker en "fees_maker". Para pares que no están en maker/taker, sólo se darán en "fees".

Solicitar informe de exportación

URL: https://api.kraken.com/0/private/AddExport

Entrada:

description = información de descripción del reporte
report = tipo de reporte (operaciones/libro mayor)
format = (CSV/TSV) (opcional. por defecto = CSV)
fields = lista delimitada por comas de los campos a incluir en el reporte (opcional.  por defecto = todos)
Nota: las opciones de campo se basan en el tipo de reporte
<operaciones>
ordertxid
time
ordertype
price
cost
fee
vol
margin
misc
ledgers
<libro mayor>
refid
time
type
aclass
asset
amount
fee
balance
asset = lista delimitada por comas de los activos a los cuales se restringe la salida (opcional.  por defecto = todos)
starttm = hora de inicio del reporte (opcional. por defecto = un (1) año antes de hoy):
<n> = marca de tiempo unix para la hora de inicio
endtm = hora final del reporte (opcional.  por defecto = ahora mismo):
<n> = marca de tiempo unix para la hora final

Resultado:

id = identificación (id) del reporte

Errores: Los errores incluyen (pero no están limitados a ):

EGeneral: Argumentos inválidos
EQuery: Par de activos desconocidos

Obtener estados de exportación

URL: https://api.kraken.com/0/private/ExportStatus

Entrada:

report = tipo de reporte (operaciones/libro mayor)

Resultado: vector de reportes y su información asociada

id = identificación de reporte
descr = información de descripción del reporte
format = (CSV/TSV)
report = tipo de reporte (operaciones/libros mayores)
status = estado de la solicitud:
Queued = El reporte se ha puesto en cola para su creación
Processing = el reporte está siendo procesado
Processed = el reporte ha sido procesado
createdtm = fecha de creación del reporte
expiretm = fecha de vencimiento del reporte
starttm = fecha de inicio del reporte
endtm = fecha final del reporte
completedtm = fecha en la que se completó el reporte
aclass = clase de activo
asset = lista delimitada por comas de los activos
fields = lista delimitada por comas de los campos
<Operaciones>
txid
ordertxid
pair
time
type
ordertype
price
cost
fee
vol
margin
misc
ledgers
<Libro mayor>
txid
refid
time
type
aclass
asset
amount
fee
balance

Errores: Los errores incluyen (pero no se limitan a):

EGeneral: Argumentos inválidos

Obtener informe de exportación

URL: https://api.kraken.com/0/private/RetrieveExport

Entrada:

id = identificación de reporte

Resultado: archivo binario comprimido en formato zip que contiene el reporte

Nota: Si el tipo de contenido no es application/json, text, o html, el reporte binario será transmitido de nuevo. Si es uno de esos tipos puede encontrar un error en la respuesta.

Nota: Dependiendo del tipo de reporte y los campos elegidos, el reporte podría tener los siguientes campos. Los campos con un * siempre están presentes.

<operaciones>
*txid
ordertxid
*pair
time
*type
ordertype
price
cost
fee
vol
margin
misc
ledgers
<libro mayor>
*txid
refid
time
type
aclass
asset
amount
fee
balance

Eliminar informe de exportación

URL: https://api.kraken.com/0/private/RemoveExport

Entrada:

type = Tipo de eliminación (cancelar/borrar)
id = identificación del reporte

Resultado: booleano con resultado de llamada

cancel/delete = tipo de eliminación

Nota: El tipo de eliminación sólo puede usarse para un reporte que ya ha sido procesado mientras que cancelar se utiliza para estados en cola y procesando.

Errores: los errores incluyen (pero no se limitan a):

EGeneral:Argumentos inválidos
WExport:Procesado previamente

Nota: En el caso de que ya se haya realizado una operación de cancelación o eliminación en una identificación de un reporte en particular, obtendrá el error WExport: Procesado previamente.




Trading de usuario privado

Añadir una orden estándar

URL: https://api.kraken.com/0/private/AddOrder

Entrada:

pair = par de activos
type = tipo de orden (compra/venta)
ordertype = tipo de orden:  
market
limit (precio = precio límite)
stop-loss (precio  = precio de stop loss)
take-profit (precio = precio de take profit)
stop-loss-profit (precio = precio de stop loss, price2 = precio de take profit)
stop-loss-profit-limit (precio = precio de activación de stop loss, price2 = precio de take profit)
stop-loss-limit (precio = precio de activación de stop loss, price2 = precio límite activado)
take-profit-limit (precio = precio de activación de take profit, price2 = precio límite activado)
trailing-stop (precio = trailing stop offset)
trailing-stop-limit (precio = trailing stop offset, price2 = límite de compensación activado)
stop-loss-and-limit (precio = precio de stop loss, price2 = precio límite)
settle-position
price = precio (opcional. depende del tipo de orden)
price2 = precio secundario (opcional. depende del tipo de orden)
volume = volumen de orden en lotes
leverage = cantidad de apalancamiento deseado (opcional. predeterminado = ninguno)
oflags = lista delimitada por comas de indicadores de orden (opcional):
viqc = volumen en divisa de cotización (no disponible para órdenes apalancadas)
fcib = tarifa preferente en la divisa base
fciq = tarifa preferente en la divisa cotizada
nompp = sin protección de precios de mercado
post = publicar solo la orden (disponible cuando ordertype = limit)
starttm = hora de inicio programada (opcional):
0 = ahora (por defecto)
+ <n> = hora de inicio programada <n> segundos a partir de ahora
<n> = marca de tiempo Unix de hora de inicio
expiretm = hora de expiración (opcional):
0 = sin caducidad (por defecto)
+ <n> = expirar <n> segundos a partir de ahora
<n> = marca de tiempo Unix de hora de expiración
userref = identificación (id) de referencia del usuario. Número firmado de 32 bits. (Opcional)
validate = validar solo las entradas, no enviar la orden (opcional)

orden de cierre opcional para agregar al sistema cuando la orden se completa:
close[ordertype] = tipo de orden
close[price] = precio
close[price2] = precio secundario

Resultado:

descr = información de descripción de la orden
order = descripción de la orden
close = descripción de la orden de cierre condicional (si es un vector de cierre condicional)
txid = vector de identificaciones (ids) de transacción para las órdenes (si la orden se añadió correctamente)

Errores: los errores incluyen (pero no se limitan a):

EGeneral:Argumentos inválidos
EService:No disponible
ETrade:Solicitud inválida
EOrder:No se puede abrir la posición
EOrder:No se puede abrir la posición opuesta
EOrder:Margen de tolerancia excedido
EOrder:Nivel de margen demasiado bajo
EOrder:Margen insuficiente (el exchange no tiene fondos suficientes para permitir operaciones con margen)
EOrder:Fondos insuficientes (fondos de usuario insuficientes)
EOrder:Orden mínima no cumplida (volumen demasiado bajo)
EOrder:Límite de órdenes excedido
EOrder:Límite de posiciones excedido
EOrder:Límite de tasa excedido
EOrder:Límite de órdenes programadas excedidas
EOrder:Posición desconocida

Nota:

  • Consulte Obtenga pares de activos de negociables para obtener especificaciones sobre precios, lotes y apalancamiento de pares de activos.
  • Los precios pueden ir precedidos por +, -, o # para indicar el precio como una cantidad relativa (con la excepción de trailing stops, que son siempre relativas). + agrega la cantidad al precio actual ofrecido. - Resta la cantidad del precio actual ofrecido. # agregará o restará la cantidad al precio actual ofrecido, dependiendo del tipo y el tipo de orden utilizado. Los precios relativos pueden tener el sufijo con un % para indicar la cantidad relativa como un porcentaje del precio ofrecido.
  • Para las órdenes que usan apalancamiento, se puede usar 0 para que el volumen se complete automáticamente hasta el volumen necesario para cerrar su posición.
  • Si recibe el error "EOrder: Se requiere un acuerdo de trading", consulte la página de administración de la clave de la API para obtener más detalles.

Cancelar orden abierta

URL: https://api.kraken.com/0/private/CancelOrder

Entrada:

txid = identificación (id) de transacción

Resultado:

count = número de órdenes canceladas
pending = si está configurado, la(s) orden(es) que tienen cancelación pendiente

Nota: txid puede ser una identificación (id) de referencia de usuario.

Depósitos y retiros de usuarios privados

NOTA:Esta es una API de depósitos y retiros provisional y puede actualizarse en el futuro. Por favor consulte la página principal de API para obtener más información sobre el uso de la API.

Obtener métodos de depósito

URL: https://api.kraken.com/0/private/DepositMethods

Entrada:

aclass = clase de activo (opcional):
divisa (por defecto)
asset = activo siendo depositado

Resultado: vector asociativo de métodos de depósito:

method = nombre del método de depósito
limit = cantidad neta máxima que se puede depositar en este momento, o falso si no hay límite
fee = cantidad de tarifas que se pagarán
address-setup-fee = si el método tiene o no una tarifa de configuración de dirección (opcional)

Obtener direcciones de depósito

URL: https://api.kraken.com/0/private/DepositAddresses

Entrada:

aclass = clave de activo (opcional):
divisa (por defecto)
asset = activo siendo depositado
method = nombre del método de depósito
new = si generar o no una nueva dirección (opcional. por defecto = falso)

Resultado: vector asociativo de direcciones de depósito:

address = dirección de depósito
expiretm = tiempo de expiración en la marca de tiempo de Unix, o 0 si no caduca
new = si se ha utilizado alguna vez o no la dirección

Obtener estado de depósitos recientes

URL: https://api.kraken.com/0/private/DepositStatus

Entrada:

aclass = clave de activo (opcional):
divisa (por defecto)
asset = activo siendo depositado
method = nombre del método de depósito

Resultado: vector de información de estado de depósito formado:

method = nombre del método de depósito utilizado
aclass = clase de activo
asset = código X-ISO4217-A3 del activo
refid =  identificación (id) de referencia
txid = identificación (id) del método de transacción
info = información de transacción del método
amount = cantidad depositada
fee = tarifas pagadas
time = marca de tiempo de unix cuando se realizó la solicitud
status = estado del depósito
status-prop = propiedades de estado adicionales (si están disponibles)
return = una transacción de devolución iniciada por Kraken
onhold = el depósito está en espera pendiente de revisión
Para obtener información sobre el estado, consulte los estados de transacciones financieras de IFEX.

Obtener información de retiros

URL: https://api.kraken.com/0/private/WithdrawInfo

Entrada:

aclass = clave de activo (opcional):
divisa (por defecto)
asset = activo siendo retirado
key = nombre de la clave de retiro, como está configurado en su cuenta
amount = cantidad a retirar

Resultado: vector asociativo de información de retiro:

method = nombre del método de retiro que se usará
limit = cantidad neta máxima que se puede retirar en este momento
fee = cantidad de tarifas que se pagarán

Retirar fondos

URL: https://api.kraken.com/0/private/Withdraw

Entrada:

aclass = clave de activo (opcional):
divisa (por defecto)
asset = activo siendo retirado
key = nombre de la clave de retiro, como está configurado en su cuenta
amount = cantidad a retirar, incluyendo tarifas

Resultado: vector asociativo de transacciones de retiro:

refid = identificación (id) de referencia

Obtener el estado de los retiros recientes

URL: https://api.kraken.com/0/private/WithdrawStatus

Entrada:

aclass = clase de activo (opcional):
divisa (por defecto)
asset = activo siendo retirado
method = nombre del método de retiro (opcional)

Resultado: vector de información del estado de retiro formado:

method = nombre del método de retiro utilizado
aclass = clase de activo
asset = código X-ISO4217-A3 del activo
refid = identificación (id) de referencia
txid = identificación (id) del método de transacción
info = información del método de transacción
amount = cantidad retirada
fee = tarifas pagadas
time = marca de tiempo de Unix cuando se realizó la solicitud
status = estado del retiro
status-prop = propiedades de estado adicionales (si están disponibles)
cancel-pending = cancelación solicitada
canceled = cancelada
cancel-denied = cancelación solicitada pero fue denegada
return = una transacción de devolución iniciada por Kraken; no se puede cancelar
onhold = el retiro está en espera pendiente de revisión
Para obtener información sobre el estado, consulte los estados de transacciones financieras de IFEX.

Solicitar cancelación de retiro

URL: https://api.kraken.com/0/private/WithdrawCancel

Entrada:

aclass = clase de activo (opcional):
divisa (por defecto)
asset = activo siendo retirado
refid = identificación (id) de referencia del retiro 

Resultado: Cierto al tener éxito

Nota: No se puede garantizar la cancelación. Esto pondrá en una solicitud de cancelación. Dependiendo de qué tan avanzado esté el proceso de retiro puede que no sea posible cancelar el retiro.

Transferencia de monedero

URL: https://api.kraken.com/0/private/WalletTransfer

Entrada:

asset = activo siendo retirado
to = a qué monedero se transfieren los fondos
Monedero de Futuros (por defecto)
from = desde qué monedero se transfieren los fondos
Monedero Spot (por defecto)
amount = cantidad a retirar, incluyendo tarifas

Resultado: vector asociativo de transacción de transferencia:

refid = identificación (id) de referencia

Autenticación de WebSockets

El cliente API debe solicitar un "token" de autenticación a través del siguiente punto final de la REST API "GetWebSocketsToken" para conectarse a los puntos finales privados de WebSockets. El token debe ser utilizado dentro de los 15 minutos posteriores a la creación. El token no expira una vez que se mantiene una conexión a un mensaje privado de la API de WebSockets (openOrders o ownTrades).

URL: https://api.kraken.com/0/private/GetWebSocketsToken

El token resultante se debe proporcionar en el campo "token" de cualquier nuevo feed de suscripción privada de WebSocket:

{
"event": "subscribe",
"subscription": {
"name": "ownTrades",
"token": "secretwstoken123"
}
}

Por favor seleccione los permisos de 'Acceso a la API de WebSockets' mientras crea la clave API para generar el token de autenticación.

Clientes API de ejemplo

A continuación se muestran ejemplos de bibliotecas de código de cliente de API que se pueden usar al escribir su propio cliente de API. Tenga en cuenta que ni Payward y ni autores terceros son responsables de las pérdidas debidas a errores o al uso incorrecto de las API. Payward ha realizado una revisión inicial de la seguridad del código de terceros antes de enumerarlos, pero no puede responder por ningún cambio agregado desde entonces. Si tiene alguna duda, por favor contacte con nuestro equipo de soporte.

C

Ver proyecto externo https://github.com/hANSIc99/Kraken_C_API.

C#

Ver la autoría de terceros https://bitbucket.org/arrivets/krakenapi.

C++

Ver la autoría de terceros https://github.com/voidloop/krakenapi.

GO

Ver la autoría de terceros https://github.com/Beldur/kraken-go-api-client.

Node.JS

Ver la autoría de terceros https://github.com/nothingisdead/npm-kraken-api.

PERL

Ver la autoría de terceros http://search.cpan.org/~philippe/Finance-Bank-Kraken-0.1/.

Python 3

Ver la autoría de terceros https://github.com/veox/python3-krakenex.

Python 2

Ver la autoría de terceros https://github.com/veox/python2-krakenex.

Ruby

Ver la autoría de terceros https://github.com/jonatack/kraken_ruby_client.

PHP

El equipo de Kraken ha proporcionado una biblioteca de PHP básica para interactuar con la API REST de Kraken. Los ejemplos de fuentes y uso también están disponibles en el repositorio github kraken-api-client de Payward y tiene licencia MIT.

Libreria

Utilice esta clase de biblioteca para realizar llamadas a la API REST de Kraken con un cliente PHP. Determina automáticamente la ruta URL correcta del método API, genera un nonce para cada solicitud y añade un encabezado firmado utilizando su API secreta y el nonce generado.

<?php
/**
 * Reference implementation for Kraken's REST API.
 *
 * See https://www.kraken.com/help/api for more info.
 *
 *
 * The MIT License (MIT)
 *
 * Copyright (c) 2013 Payward, Inc
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

class KrakenAPIException extends ErrorException {};

class KrakenAPI
{
    protected $key;     // API key
    protected $secret;  // API secret
    protected $url;     // API base URL
    protected $version; // API version
    protected $curl;    // curl handle

    /**
     * Constructor for KrakenAPI
     *
     * @param string $key API key
     * @param string $secret API secret
     * @param string $url base URL for Kraken API
     * @param string $version API version
     * @param bool $sslverify enable/disable SSL peer verification.  disable if using beta.api.kraken.com
     */
    function __construct($key, $secret, $url='https://api.kraken.com', $version='0', $sslverify=true)
    {
        $this->key = $key;
        $this->secret = $secret;
        $this->url = $url;
        $this->version = $version;
        $this->curl = curl_init();

        curl_setopt_array($this->curl, array(
            CURLOPT_SSL_VERIFYPEER => $sslverify,
            CURLOPT_SSL_VERIFYHOST => 2,
            CURLOPT_USERAGENT => 'Kraken PHP API Agent',
            CURLOPT_POST => true,
            CURLOPT_RETURNTRANSFER => true)
        );
    }

    function __destruct()
    {
        curl_close($this->curl);
    }

    /**
     * Query public methods
     *
     * @param string $method method name
     * @param array $request request parameters
     * @return array request result on success
     * @throws KrakenAPIException
     */
    function QueryPublic($method, array $request = array())
    {
        // build the POST data string
        $postdata = http_build_query($request, '', '&');

        // make request
        curl_setopt($this->curl, CURLOPT_URL, $this->url . '/' . $this->version . '/public/' . $method);
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, array());
        $result = curl_exec($this->curl);
        if($result===false)
            throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

        // decode results
        $result = json_decode($result, true);
        if(!is_array($result))
            throw new KrakenAPIException('JSON decode error');

        return $result;
    }

    /**
     * Query private methods
     *
     * @param string $path method path
     * @param array $request request parameters
     * @return array request result on success
     * @throws KrakenAPIException
     */
    function QueryPrivate($method, array $request = array())
    {
        if(!isset($request['nonce'])) {
            // generate a 64 bit nonce using a timestamp at microsecond resolution
            // string functions are used to avoid problems on 32 bit systems
            $nonce = explode(' ', microtime());
            $request['nonce'] = $nonce[1] . str_pad(substr($nonce[0], 2, 6), 6, '0');
        }

        // build the POST data string
        $postdata = http_build_query($request, '', '&');

        // set API key and sign the message
        $path = '/' . $this->version . '/private/' . $method;
        $sign = hash_hmac('sha512', $path . hash('sha256', $request['nonce'] . $postdata, true), base64_decode($this->secret), true);
        $headers = array(
            'API-Key: ' . $this->key,
            'API-Sign: ' . base64_encode($sign)
        );

        // make request
        curl_setopt($this->curl, CURLOPT_URL, $this->url . $path);
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, $headers);
        $result = curl_exec($this->curl);
        if($result===false)
            throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

        // decode results
        $result = json_decode($result, true);
        if(!is_array($result))
            throw new KrakenAPIException('JSON decode error');

        return $result;
    }
}

 
Ejemplo de uso

A continuación se detallan los pasos necesarios para iniciar la clase de biblioteca KrakenAPI, así como una serie de llamadas a métodos de API de ejemplo. Los vectores de resultados formateados se muestran debajo de cada fragmento de llamada a la API correspondiente.

Inicialización

Incluya el archivo de la biblioteca y proporcione su clave API y su secreto al crear instancias de un objeto KrakenAPI.

<?php

require_once 'KrakenAPIClient.php';
$kraken = new KrakenAPI('SU CLAVE API', 'SU SECRETO API');
Llamadas al método

Consulta una lista pública de activos y sus propiedades:

$res = $kraken->QueryPublic('Assets');
print_r($res);

Los activos devueltos están codificados por sus nombres ISO-4217-A3-X, ejemplo de salida:

Vector
(
[error] => Vector
(
)

[result] => Vector
(
[XXBT] => Vector
(
[aclass] => divisa
[altname] => XBT
[decimals] => 10
[display_decimals] => 5
)

[XLTC] => Vector
(
[aclass] => divisa
[altname] => LTC
[decimals] => 10
[display_decimals] => 5
)

[XXRP] => Vector
(
[aclass] => divisa
[altname] => XRP
[decimals] => 8
[display_decimals] => 5
)

[ZEUR] => Vector
(
[aclass] => divisa
[altname] => EUR
[decimals] => 4
[display_decimals] => 2
)
...
)

Consulte la información del ticker público para el par XBT/USD:

$res = $kraken->QueryPublic('Ticker', array('pair' => 'XXBTZUSD'));
print_r($res);

Ejemplo de salida:

Vector
(
[error] => Vector
(
)

[result] => Vector
(
[XXBTZUSD] => Vector
(
[a] => Vector
(
[0] => 106.09583
[1] => 111
)

[b] => Vector
(
[0] => 105.53966
[1] => 4
)

[c] => Vector
(
[0] => 105.98984
[1] => 0.13910102
)

...
)
)

Consultar operaciones recientes públicas para el par XBT/EUR desde 2013-08-07T18:20:42+00:00:

NOTA: el parámetro 'since' está sujeto a cambios en el futuro: su precisión puede modificarse y ya no puede ser representativa de una marca de tiempo. La mejor práctica es basarlo en el valor 'last' devuelto en el conjunto de resultados.

$res = $kraken->QueryPublic('Trades', array('pair' => 'XXBTZEUR', 'since' => '137589964200000000'));
print_r($res);

Ejemplo de salida:

Vector
(
[error] => Vector
( 
)

[result] => Vector
(
[XXBTZEUR] => Vector
(
[0] => Vector
(
[0] => 78.60500
[1] => 2.03990000
[2] => 1375897934.1176
[3] => s
[4] => m
[5] =>
)

[1] => Vector
(
[0] => 79.41809
[1] => 2.02203000
[2] => 1375898123.0771
[3] => b
[4] => m
[5] =>
)

[2] => Vector
(
[0] => 79.86999
[1] => 7.00000000
[2] => 1375898123.2587
[3] => b
[4] => m
[5] =>
)
...
)
[last] => 137589925237491170
)
)

Consultar balances de activos privados:

$res = $kraken->QueryPrivate('Balance');
print_r($res);

Ejemplo de salida:

Vector
(
[error] => Vector
(
)

[result] => Vector
(
[ZUSD] => 3415.8014
[ZEUR] => 155.5649
[XXBT] => 149.9688412800
[XXRP] => 499889.51600000
)

)

Consulta de órdenes privadas abiertas y operaciones relacionadas incluidas:

$res = $kraken->QueryPrivate('OpenOrders', array('trades' => true));
print_r($res);

Ejemplo de salida:

Vector
(
[error] => Vector
(
)

[result] => Vector
(
[open] => Vector
(
[O7ICPO-F4CLJ-MVBLHC] => Vector
(
[refid] =>
[userref] =>
[status] => abrir
[opentm] => 1373750306.9819
[starttm] => 0
[expiretm] => 0
[descr] => Vector
(
[order] => vender 3.00000000 XBTUSD @ límite 500.00000
)

[vol] => 3.00000000
[vol_exec] => 0.00000000
[cost] => 0.00000
[fee] => 0.00000
[price] => 0.00000
[misc] =>
[oflags] =>
)
...
)
)
)

Añadir una orden estándar: vender 1.123 XBT/USD @ límte $120

$res = $kraken->QueryPrivate('AddOrder', array(
'pair' => 'XXBTZUSD',
'type' => 'vender',
'ordertype' => 'límite',
'price' => '120',
'volume' => '1.123'
));
print_r($res);

Ejemplo de salida:

Vector
(
[error] => Vector
(
)

[result] => Vector
(
[descr] => Vector
(
[order] => vender 1.12300000 XBTUSD @ límite 120.00000
)

[txid] => Vector
(
[0] => OAVY7T-MV5VK-KHDF5X
)

)

)

Agregue una orden estándar: compre XBT por un valor de 300€ en el mercado a las 2013-08-12T09:27:22+0000

$res = $kraken->QueryPrivate('AddOrder', array(
'pair' => 'XXBTZEUR',
'type' => 'comprar',
'ordertype' => 'market',
'oflags' => 'viqc',
'volume' => '300',
'starttm' => '1376299642'
));
print_r($res);

Ejemplo de salida:

Vector
(
[error] => Vector
(
)

[result] => Vector
(
[descr] => Vector
(
[order] => comprar 300.00000000 XBTEUR @ market
)

[txid] => Vector
(
[0] => ONQN65-L2GNR-HWJLF5
)

)

)

Agregue una orden estándar: compre 2.12345678 XBTUSD @ límite $101.9901 con un apalancamiento de 2:1, con un seguimiento de stop loss, orden de venta take profit: stop loss en -5%, take profit tras un aumento de precio de $10 (los precios de stop/loss firmados se determinan automáticamente usando la notación #):

$res = $kraken->QueryPrivate('AddOrder', array(
'pair' => 'XXBTZUSD',
'type' => 'comprar',
'ordertype' => 'límite',
'price' => '101.9901',
'volume' => '2.12345678',
'leverage' => '2:1',
'close' => array(
'ordertype' => 'stop-loss-profit',
'price' => '#5%',  // precio stop loss (porcentaje relativo delta)
'price2' => '#10'  // precio take profit (relativo delta)
)
));
print_r($res);

Ejemplo de salida:

Vector
(
[error] => Vector
(
)

[result] => Vector
(
[descr] => Vector
(
[order] => comprar 2.12345678 XBTUSD @ límite 101.99010 con 2:1 de apalancamiento
[close] => cerrar posición @ stop loss -5.0000%, take profit +10.00000
)

[txid] => Vector
(
[0] => OFMYYE-POAPQ-63IMWL
)

)

)