API Streamster

El contenido siguiente describe cómo utilizar la API de Streamster para crear aplicaciones que funcionen con la plataforma de operatoria Streamster. Las aplicaciones usando la API de Streamster pueden retirar recolectar datos de la plataforma, ejecutar y modificar órdenes y posiciones y efectuar una variedad de acciones relacionadas.

Para abrir y leer una sección en particular, por favor haga clic sobre su título.

1. Introducción a la API de Streamster™

La API de Streamster expone su funcionalidad vía el protocolo estándar de la industria SOAP. SOAP es ampliamente compatible en prácticamente todas las plataformas de programación, incluyendo PHP, Visual Basic, C#, C++, Java y muchos otros lenguajes y plataformas.

Para utilizar la API de Streamster, una aplicación se conecta al servicio SOAP el cual esta integrado en Streamster. Para habilitar la API de Streamster y el servicio SOAP, conéctese a su cuenta y haga clic sobre el botón Settings. En “Advanced”, marque la casilla “Enable web service API” y haga clic en OK. El Firewall de Windows le pedirá permiso para que Streamster acepte conexiones en el puerto 8018 – haga clic en el botón “Keep Blocking”, lo cual prevendrá que otras computadoras en internet o en su red puedan acceder a la API de Streamster.

Una vez habilitada, La API de Streamster estará lista para atender los pedidos que vienen de su computadora. Es muy importante notar que los pedidos que vienen de cualquier computadora que no sea la suya serán siempre rechazados, por más que usted permite al Firewall de Windows acceder al puerto 8018 de internet o cualquier otra computadora o red. Esto es para prevenir que otros en internet puedan acceder a la API de Streamster en su computadora y a su cuenta. No hay opciones en Streamster que permitan evitar esta protección.

Con la API de Streamster habilitada, podrá usar lenguajes como PHP y Visual Basic para correr los ejemplos mostrados en el resto de este documento, o sus propias aplicaciones. Por cada función de la API de Streamster usted vera ejemplos en PHP y Visual Basic. Si pretende utilizar otro lenguaje o plataforma, la conversión de los ejemplos de código es habitualmente muy sencilla.

1.1. Utilizando la API desde PHP

PHP es compatible con SOAP y la API de Streamster. Instalar PHP en su computadora es muy fácil – descargue e instale los Windows binaries del sitio PHP.net la version de PHP 5 o posterior es requerida. Algunas versiones de PHP en Windows no tienen SOAP habilitado por defecto – puede habilitar la extensión SOAP editando el archivo PHP.INI y sacando el comentario de la línea extension=php_soap.dll

Para ejecutar un simple test de PHP, cree un archivo PHP llamado “test.php” y edítelo en el Notepad de Windows. Pegue el siguiente código en el:

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$quote = $api -> GetQuote("EUR/USD");
echo $quote -> Last;

?>

Pruebe el script PHP de arriba ejecutando “php test.php” y debería simplemente mostrar el último precio de EUR/USD.

Para probar por errores críticos (por ejemplo, cuando Streamster no se inicie, cuando los métodos parámetros son inválidos, etc), puede utilizar el manejo estándar de excepciones PHP.

1.2. Utilizando API desde Visual Basic

Utilizar la API de Streamster desde Visual Basic es fácil porque es compatible con SOAP nativamente. Hay numerosas formas de consumir un web service desde Visual Basic, pero la más simple es agregar una “Web Service Reference” a su proyecto Visual Basic. La dirección del Web service de la API de Streamster es http://127.0.0.1:8018/service.wsdl y esta es la que necesita ser especificada cuando se agrega la referencia del web service a su proyecto de Visual Basic.

Una vez que la referencia es agregada a su proyecto, utilizar la API de Streamster API es tan simple como usar cualquier otro objeto de Visual Basic. Por ejemplo, pruebe el código siguiente:

Dim api As StreamsterApi = New StreamsterApi
Dim q As Quote = api.GetQuote("EUR/USD")

Console.WriteLine ("Last = " & q.Last)

Si su proyecto de Visual Basic es una aplicación de Windows Forms, puede cambiar la última linea a Label1.Text = q.Last o similar.

Dependiendo de su versión de Visual Basic, necesitara asegurarse de agregar una “Web Service Reference”, no una “Service Reference”. Si agrega una “Service Reference”, el nombre de la clase API de Streamster sera “StreamsterApiClientInterface” en vez de solo  “StreamsterApi” por lo que los ejemplos mostrados en este documento tendrán que ser corregidos acordemente.

Luego de que la referencia de web service de la API de Streamster es agregada en su proyecto de Visual Basic, también necesitara agregar la referencia del web service de la API de Streamster a la lista de “Imported Namespaces” en su proyecto de Visual Basic. Esto es necesario para no tener que prefijar cada tipo de la API de Streamster API con un nombre de referencia para el web service, lo cual puede ser tedioso.

Para ver como agregar una referencia web service reference a la lista de “Imported Namespaces” en su proyecto, por favor consulte el sistema de ayuda de Visual Basic.

2. Métodos de Recuperación Streamster™ API

Cuando el objeto SOAP es creado, La API de Streamster API expone un número de métodos que usted puede invocar para comunicarse con Streamster desde su script o aplicación. La siguiente sección explora los métodos disponibles de recuperación y las estructuras relacionadas.

2.1. GetQuote

El método GetQuote devuelve una estructura “Quote” para un nombre de instrumento dado. La estructura Quote contiene campos equivalentes a columnas en la ventana de Cotizaciones de Streamster. GetQuote devuelve únicamente los campos disponibles en Streamster – Si desea recuperar campos no mostrados actualmente en Streamster, necesita agregarlos haciendo clic en el botón Columns.

Ejemplo – PHP: El siguiente ejemplo obtiene la cotización de EUR/USD, muestra el campo “Last” y luego lista todos los campos disponibles.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$quote = $api -> GetQuote("EUR/USD");

echo $quote -> Last . "n";

foreach($quote as $field => $value) {
    echo $field . " = " . $value . "n";
}

?>

Ejemplo – Visual Basic: El siguiente ejemplo obtiene la cotización de EUR/USD, muestra el campo “Last” y luego muestra todos los demás campos.

Dim api As StreamsterApi = New StreamsterApi

Dim q As Quote
q = api.GetQuote("EUR/USD")

Console.WriteLine("Last: " & q.Last)
Console.WriteLine("Bid: " & q.Bid)
Console.WriteLine("Offer: " & q.Offer)
Console.WriteLine("Change: " & q.Change)
Console.WriteLine("High: " & q.High)
Console.WriteLine("Low: " & q.Low)
Console.WriteLine("Open: " & q.Open)
Console.WriteLine("Close: " & q.Close)
Console.WriteLine("Time: " & q.Time)
Console.WriteLine("Currency: " & q.Currency)
Console.WriteLine("Yield: " & q.Yield)
Console.WriteLine("Ask: " & q.Ask)
2.2. GetOrders

El método GetOrders devuelve un conjunto de estructuras “Order”. Este conjunto corresponde directamente a la ventana Orders en Streamster. Cada estructura Order es devuelta en un conjunto que contiene una orden con sus campos asociados como se muestra en Streamster. GetOrders devuelve un conjunto de estructuras Order el cual contiene únicamente los campos disponibles en Streamster – si desea obtener algún campo no mostrado en la ventana Orders de Streamster, tendrá que agregarlos haciendo clic en el botón Columns.

Ejemplo – PHP: El siguiente ejemplo obtiene todas las órdenes y las lista.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetOrders();
if(property_exists($r, "Order")) {
    foreach($r -> Order as $n => $OrderInfo) {
        echo "tOrder " . $n . "n";
        foreach($OrderInfo as $field => $value) {
            echo "ttField: " . $field . " = " . $value . "n";
        }
    }
}

?>

Ejemplo – Visual Basic: El siguiente ejemplo obtiene todas las órdenes y las lista.

Dim api As StreamsterApi = New StreamsterApi

Dim ao As Order()
Dim o As Order

ao = api.GetOrders()

For Each o In ao
    Console.WriteLine("")
    Console.WriteLine("Order:")

    Console.WriteLine("OrderID: " & o.OrderID)
    Console.WriteLine("Desk: " & o.Desk)
    Console.WriteLine("Instrument: " & o.Instrument)
    Console.WriteLine("Side: " & o.Side)
    Console.WriteLine("Phase: " & o.Phase)
    Console.WriteLine("PriceType: " & o.PriceType)
    Console.WriteLine("Price: " & o.Price)
    Console.WriteLine("ActiveQuantity: " & o.ActiveQuantity)
    Console.WriteLine("TradedQuantity: " & o.TradedQuantity)
    Console.WriteLine("ExitStopLoss: " & o.ExitStopLoss)
    Console.WriteLine("ExitTarget: " & o.ExitTarget)
    Console.WriteLine("Status: " & o.Status)
    Console.WriteLine("PositionID: " & o.PositionID)
    Console.WriteLine("Currency: " & o.Currency)
    Console.WriteLine("Duration: " & o.Duration)
    Console.WriteLine("DurationType: " & o.DurationType)
    Console.WriteLine("Quantity: " & o.Quantity)
    Console.WriteLine("QuantityType: " & o.QuantityType)
    Console.WriteLine("Text: " & o.Text)
    Console.WriteLine("Entered: " & o.Entered)
Next
2.3. GetTrades

El método GetTrades devuelve un conjunto de estructuras “Trade”. Este conjunto corresponde directamente a la ventana Trades en Streamster. Cada estructura Trade en el conjunto devuelto contiene una operación con sus campos asociados tal como es mostrado en Streamster. GetTrades devuelve un conjunto de estructuras Trade el cual contiene únicamente los campos disponibles en Streamster – si desea obtener campos no mostrados en la ventana Trades de Streamster, tendrá que agregarlos haciendo clic en el botón Columns.

Ejemplo – PHP: El siguiente ejemplo obtiene todas las operaciones y las lista.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetTrades();
if(property_exists($r, "Trade")) {
    foreach($r -> Trade as $n => $TradeInfo) {
        echo "tTrade " . $n . "n";
        foreach($TradeInfo as $field => $value) {
            echo "ttField: " . $field . " = " . $value . "n";
        }
    }
}

?>

Ejemplo – Visual Basic: El siguiente ejemplo obtiene todas las operaciones y las lista.

Dim api As StreamsterApi = New StreamsterApi

Dim at As Trade()
Dim t As Trade

at = api.GetTrades()

For Each t In at
    Console.WriteLine("")
    Console.WriteLine("Trade:")

    Console.WriteLine("TradeID: " & t.TradeID)
    Console.WriteLine("Desk: " & t.Desk)
    Console.WriteLine("Instrument: " & t.Instrument)
    Console.WriteLine("Side: " & t.Side)
    Console.WriteLine("Phase: " & t.Phase)
    Console.WriteLine("Price: " & t.Price)
    Console.WriteLine("Quantity: " & t.Quantity)
    Console.WriteLine("Executed: " & t.Executed)
    Console.WriteLine("Status: " & t.Status)
    Console.WriteLine("Currency: " & t.Currency)
    Console.WriteLine("Text: " & t.Text)
    Console.WriteLine("OrderID: " & t.OrderID)
Next

 

2.4. GetPositions

El método GetPositions devuelve un conjunto de estructuras “Position”. Este conjunto corresponde directamente a la ventana Positions en Streamster. Cada estructura Position en el conjunto devuelto contiene una posición con sus campos asociados tal como es mostrado en Streamster. GetPositions devuelve un conjunto de estructuras Position el cual contiene únicamente los campos disponibles en Streamster – Si desea obtener campos no mostrados en la ventana Positions de Streamster, tendrá que agregarlos haciendo clic en el botón Columns.

Ejemplo – PHP: El siguiente ejemplo obtiene todas las posiciones y las lista.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetPositions();
if(property_exists($r, "Position")) {
    foreach($r -> Position as $n => $PositionInfo) {
        echo "tPosition " . $n . "n";
        foreach($PositionInfo as $field => $value) {
            echo "ttField: " . $field . " = " . $value . "n";
        }
    }
}

?>

Ejemplo – Visual Basic: El siguiente ejemplo obtiene todas las posiciones y las lista.

Dim api As StreamsterApi = New StreamsterApi

Dim ap As Position()
Dim p As Position

ap = api.GetPositions()

For Each p In ap
    Console.WriteLine("")
    Console.WriteLine("Position:")

    Console.WriteLine("PositionID: " & p.PositionID)
    Console.WriteLine("Desk: " & p.Desk)
    Console.WriteLine("Instrument: " & p.Instrument)
    Console.WriteLine("Side: " & p.Side)
    Console.WriteLine("OpenPrice: " & p.OpenPrice)
    Console.WriteLine("Currency: " & p.Currency)
    Console.WriteLine("Quantity: " & p.Quantity)
    Console.WriteLine("Points: " & p.Points)
    Console.WriteLine("Profit: " & p.Profit)
    Console.WriteLine("ExitStopLoss: " & p.ExitStopLoss)
    Console.WriteLine("ExitTarget: " & p.ExitTarget)
    Console.WriteLine("Entered: " & p.Entered)
    Console.WriteLine("Exited: " & p.Exited)
    Console.WriteLine("Status: " & p.Status)
    Console.WriteLine("Text: " & p.Text)
    Console.WriteLine("ClosePrice: " & p.ClosePrice)
    Console.WriteLine("Interest: " & p.Interest)
Next
2.5. GetDesks

El método GetDesks devuelve un conjunto de estructuras “Desk”. Cada estructura Desk en el conjunto devuelto describe una cartera de su cuenta, incluyendo el nombre de la cartera, el saldo disponible en la cartera, y la moneda en la cual el saldo se encuentra disponible.

Ejemplo – PHP: El siguiente ejemplo obtiene todas las carteras y las lista.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetDesks();
if(property_exists($r, "Desk")) {
    foreach($r -> Desk as $n => $Desk) {
        echo "Name: " . $Desk -> Name;
        echo ", Currency: " . $Desk -> Currency;
        echo ", Amount: " . $Desk -> Amount;
        echo "n";
    }
}

?>

Ejemplo – Visual Basic: El siguiente ejemplo obtiene todas las carteras y las lista.

Dim api As StreamsterApi = New StreamsterApi

Dim ad As Desk()
Dim d As Desk

ad = api.GetDesks()

For Each d In ad
    Console.WriteLine("Name: " & d.Name & ", Currency: " & d.Currency &
        ", Amount: " & d.Amount)
Next
2.6. GetBars

El método GetBars obtiene un conjunto de barras para un instrumento y periodo especificado. Cada barra en el conjunto devuelto contiene un precio en un punto específico de tiempo.

NOTA: únicamente las barras de cualquier ventana abierta de Gráficos en Streamster puede ser obtenida. Si desea obtener barras desde su script para un instrumento y tiempo en específico, tendrá que asegurarse que este instrumento/periodo sea mostrado en una de las ventanas de Gráficos en Streamster.

El método GetBars tiene tres parámetros: instrument, period y flag para opciones.

El primer parámetro del método GetBars es una cadena que especifica el instrumento del que se obtendrán las barras. El segundo parámetro, Period, especifica el periodo requerido como “5 Minutes”, “15 Minutes”, “30 Minutes”, “Hourly”, “4 Hours”, “Daily”, “Weekly”, o “Monthly”. El tercer parámetro es una cadena que determina el orden en el que las barras serán devueltas: una cadena vaciá si las barras van a ser devueltas en orden descendente o una cadena “f” (as in “flip”) para orden ascendente.

Cada barra el conjunto de barras devuelto tiene los siguientes campos: BarDateTime, Open, High, Low, Close y Volume.

Ejemplo – PHP: El siguiente código obtiene las barras de 5 minutos para EUR/USD y muestra todas.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetBars("EUR/USD", "5 minutes", "f");

if(property_exists($r, "Bar")) {
    foreach($r -> Bar as $n => $Bar) {
        echo $Bar -> BarDateTime . " " . $Bar -> Open . " " . $Bar -> High .
            " " . $Bar -> Low . " " . $Bar -> Close . "n";
    }
}

?>

Ejemplo – Visual Basic: El siguiente código obtiene las barras de 5 minutos para EUR/USD y muestra todas.

Dim api As StreamsterApi = New StreamsterApi

Dim ab As Bar()
Dim b As Bar

ab = api.GetBars("EUR/USD", "5 minutes", "")

For Each b In ab
    Console.WriteLine(b.BarDateTime & " " & b.Open & " " & b.High &
        " " & b.Low & " " & b.Close)
Next
2.7. GetLastMessage

GetLastMessage obtiene el último mensaje de error o advertencia mostrado en Streamster, si hubo alguno. El método GetLastMessage devuelve una cadena vacía si no hubo mensajes luego de la última llamada de GetLastMessage.

Ejemplo – PHP: El siguiente código muestra el último mensaje de error o advertencia.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetLastMessage();

if($r != "") {
    echo($r);
}

?>

Ejemplo – Visual Basic: El siguiente código muestra el último mensaje de error o advertencia.

Dim api As StreamsterApi = New StreamsterApi

Dim s As String

s = api.GetLastMessage()

If s <> "" Then Console.WriteLine(s)

3. Metodos de Operatoria con la API de Streamster™

Una vez que el objeto SOAP ha sido creado, la API de Streamster expone un número de métodos que usted puede invocar para comunicarse con Streamster desde su script o aplicación. La siguiente sección explora los métodos de operatoria disponibles y sus estructuras relacionadas.

3.1. SendOrder

El método SendOrder envía una nueva orden. Es el equivalente a hace clic en el botón New en la ventana Orders de Streamster y luego llenar el formulario y hace clic en OK. El método SendOrder tiene un parámetro, una estructura de “Order” la cual contiene los detalles de la nueva orden. El significado de los campo en la estructura Order es el mismo del formulario Send Order en Streamster.

Los siguientes campos en la estructura de Order son válidos y usados cuando se llaman por el método SendOrder:

Instrument: Nombre del instrumento (por ejemplo, EUR/USD), es un campo requerido
Side: BUY (Por defecto) o SELL
PriceType: MARKET (Por defecto), LIMIT or STOP
Price: Campo requerido cuando el parámetro PriceType este configurado en LIMIT o STOP
DurationType: GTC (Por defecto), GTD o IOC
Duration: Requerido cuando el parámetro DurationType está configurado en GTD (Valido hasta Fecha)
Quantity: Campo requerido
QuantityType: FULL (Por defecto) o PARTIAL
ExitStopLoss: Opcional
ExitTarget: Opcional
Desk: Nombre de la cartera a usar para la orden, es un campo requerido
Currency: Requerido si hay más de una moneda en la cartera especificada
Text: Opcional

El método SendOrder no devuelve valor – si una orden es exitosa, normalmente aparecerá al poco tiempo en la ventana Orders. Si algún parámetro es invalido, una excepción será elevada (como en todos los demás métodos API de Streamster).

Ejemplo – PHP: El siguiente código envía una orden básica.

 SOAP_SINGLE_ELEMENT_ARRAYS));

$api -> SendOrder(array(
    "Instrument" => "EUR/USD",
    "Desk" => "Virtual Forex",
    "Quantity" => 10
));

?>

El siguiente código crea una orden variable, llena la mayoría de los campos y envía una orden.

 SOAP_SINGLE_ELEMENT_ARRAYS));

$order -> Instrument = "Dow Jones";
$order -> Side = "BUY";
$order -> Price = 8756.24;
$order -> PriceType = "LIMIT";
$order -> ExitTarget = 8770;
$order -> Desk = "Testing";
$order -> Currency = "EUR";
$order -> Quantity = 10;
$order -> DurationType = "GTD";
$order -> Duration = date("c", time() + 3600);
$order -> Text = "test order from my script";

$api -> SendOrder($order);

?>

Ejemplo – Visual Basic: El siguiente código envía una orden básica.

Dim api As StreamsterApi = New StreamsterApi

Dim o As Order = New Order

o.Instrument = "EUR/USD"
o.Desk = "Virtual Forex"
o.Quantity = 10
o.QuantitySpecified = True

api.SendOrder(o)

El siguiente código envía una orden con varios de los parámetros opcionales.

Dim api As StreamsterApi = New StreamsterApi

Dim o As Order = New Order

o.Instrument = "Dow Jones"
o.Side = "BUY"
o.Price = 8756.24
o.PriceSpecified = True
o.PriceType = "LIMIT"
o.ExitTarget = 8770
o.ExitTargetSpecified = True
o.Desk = "Testing"
o.Currency = "EUR"
o.Quantity = 10
o.QuantitySpecified = True
o.DurationType = "GTD"
o.Duration = DateAdd("d", 1, Now())
o.DurationSpecified = True
o.Text = "test order from my script"

api.SendOrder(o)
3.2. ChangeOrder

ChangeOrder cambia ciertos parámetros de una orden pendiente. El método ChangeOrder tiene un parámetro, una estructura “Order”, la cual especifica el ID de la orden a ser modificada y los nuevos parámetros de la orden.

Los siguientes campos en la estructura Order son válidos y utilizados para llamar al método ChangeOrder:

OrderID: Contiene el ID de la orden a ser modificada
PriceType: MARKET (Por defecto), LIMIT o STOP
Price: Campo requerido cuando el parámetro PriceType está configurado en LIMIT o STOP
DurationType: GTC (Por defecto), GTD o IOC
Duration: Requerido cuando el parámetro DurationType está configurado en GTD (Valido hasta Fecha)
Quantity: Campo requerido
QuantityType: FULL (Por defecto) o PARTIAL
ExitStopLoss: Opcional; cuando está vacío, el parámetro Exit Stop Loss será restablecido para la posición
ExitTarget: Opcional; cuando está vacío, el parámetro Exit Target será restablecido para la posición
Text: Configura el parámetro Text de la posición

Todos los demás campos en la estructura Order son ignorados cuando el método ChangeOrder es llamado.

NOTA: Si alguno de los campos mencionados anteriormente es dejado vacío, asumirá un valor por defecto, no será el valor previo asociado con la orden. Por ejemplo, si ChangeOrder es invocado con el campo ExitStopLoss vacío, El valor del Exit Stop Loss sera restablecido – no tendrá el valor que tenía antes de la llamada.

Ejemplo – PHP: El siguiente código modifica una orden.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$order -> OrderID = "CR82JA01D";
$order -> Price = 8756.24;
$order -> PriceType = "LIMIT";
$order -> ExitTarget = 8765;
$order -> Quantity = 10;
$order -> DurationType = "GTD";
$order -> Duration = date("c", time() + 3600);
$order -> Text = "test order from my script";

$api -> ChangeOrder($order);

?>

Ejemplo – Visual Basic: El siguiente código modifica una orden.

Dim api As StreamsterApi = New StreamsterApi

Dim o As Order = New Order

o.OrderID = "K82LVC9DR"
o.Price = 8756.24
o.PriceSpecified = True
o.PriceType = "LIMIT"
o.ExitTarget = 8765
o.ExitTargetSpecified = True
o.Quantity = 10
o.QuantitySpecified = True
o.DurationType = "GTD"
o.Duration = DateAdd("d", 1, Now())
o.DurationSpecified = True
o.Text = "test order from my script"

api.ChangeOrder(o)
3.3. CancelOrder

CancelOrder cancela una orden con un Order ID dado. El método CancelOrder tiene un parámetro, una cadena “OrderID” que especifica la orden a ser cancelada. El método CancelOrder no devuelve ningún valor.

Ejemplo – PHP: El siguiente código cancela una orden.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$api -> CancelOrder("Z4AEVG7Z0");

?>

Ejemplo – Visual Basic: El siguiente código cancela una orden.

Dim api As StreamsterApi = New StreamsterApi

api.CancelOrder("Z4AEVG7Z0")
3.4. ChangePosition

ChangePosition modifica ciertos parámetros de una posición abierta. El método ChangePosition tiene un parámetro, una estructura “Position”, la cual especifica el ID de la posición a ser modificada y los nuevos parámetros para la posición.

Los siguientes campos en la estructura Position son válidos y utilizados al llamar el método de ChangePosition:

PositionID: Contiene el ID de la posición a ser modificada
ExitStopLoss: Configura el parámetro Exit Stop Loss; cuando está vacío, el parámetro Exit Stop Loss será restablecido para la posición
ExitTarget: Configura el parámetro Exit Target; cuando está vacío, el parámetro Exit Target será restablecido para la posición
Text: Configura el parámetro Text de la posición

Todos los demás campos en la estructura Position son ignorados cuando el método ChangePosition es llamado.

NOTA: Si alguno de los campos anteriores es dejado vacío, será asumido un valor por defecto, no será el valor previo asociado con la orden. Por ejemplo, si ChangePosition es invocado con el campo ExitStopLoss vacío, el valor del Exit Stop Loss será restablecido – no tendrá el valor que tenía antes del llamado.

Ejemplo – PHP: El siguiente código modifica una posición.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$position -> PositionID = "B2HN72VL3";
$position -> ExitStopLoss = 3.20;
$position -> ExitTarget = 3.50;
$position -> Text = "hello world";

$api -> ChangePosition($position);

?>

Ejemplo – Visual Basic: El siguiente código modifica una posición.

Dim api As StreamsterApi = New StreamsterApi

Dim p As Position = New Position

p.PositionID = "B2HN72VL3"
p.ExitStopLoss = 3.20
p.ExitStopLossSpecified = True
p.ExitTarget = 3.50
p.ExitTargetSpecified = True
p.Text = "hello world"

api.ChangePosition(p)
3.5. ClosePosition

ClosePosition cierra una posición con el Position ID dado. El método ClosePosition tiene un parámetro, una cadena “PositionID” que especifica la posición a ser cerrada. El método ClosePosition no devuelve ningún valor.

Ejemplo – PHP: El siguiente código cierra una posición.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$api -> ClosePosition("B2HN72VL3");

?>

Ejemplo – Visual Basic: El siguiente código cierra una posición.

Dim api As StreamsterApi = New StreamsterApi

api.ClosePosition("B2HN72VL3")

Envíenos sus comentarios y sugerencias que usted pueda tener acerca de nuestra API de Streamster.

Esperamos recibir sus sugerencias y mejorar el contenido de esta página para ayudarlo a utilizar la API en su máxima expresión.

Únase a la reconocida comunidad de operadores

Solamente toma 30 segundos.

Divulgación de riesgo

La operatoria de instrumentos financieros conlleva riesgos sustanciales, incluidos la posible pérdida completa de su capital más otras perdidas y no es adecuada para todos los miembros del público.

Debe tomar una decisión independiente acerca de si la operatoria es apropiada para usted en luz de su condición financiera, experiencia en inversiones, tolerancia al riesgo y otros factores relevantes.


© 2018 Agea

Pin It on Pinterest