Girar en el Ninja

Foro genérico sobre programas relacionados con el trading: gráficos, ejecución de órdenes, automatización, etc.
Avatar de Usuario
Jose
Mensajes: 805
Registrado: 22 Mar 2006 14:01

Girar en el Ninja

Mensaje por Jose »

Hay una cosa que me viene mal a la hora de programar sistemas en el Ninja: para girar pone dos órdenes, una para cerrar la posición antigua y otra para abrir la nueva.

A mí me vendría mejor que pusiera una sola orden de dos contratos ¿se puede hacer?
Avatar de Usuario
DarkTemplar
Mensajes: 877
Registrado: 13 Feb 2006 10:41

Mensaje por DarkTemplar »

.
Última edición por DarkTemplar el 20 Mar 2012 19:15, editado 1 vez en total.
Avatar de Usuario
Optiondreamer
Mensajes: 342
Registrado: 28 Mar 2006 08:07
Ubicación: 40.705571, -74.013432

Mensaje por Optiondreamer »

Hola,
No uso el Nija, y como no se C# no te puedo escribir el código exacto, pero puedes hacer un procedimiento que detecte la posición que tienes abierta y ejecute una compra/venta de la cantidad de contratos abiertos x 2.

Te pongo un pseudo churrocodigo con la idea:

Variable que recoge la posicion abierta:
OI= CONTRATOS ABIERTOS * 2
Procedimiento
SUB GIRAR
If posicion=Largo then
Command("PLACE", "", "MSFT", "SELL", OI, "MARKET", 0, 0, "", "", "", "", "")
elseif posicion=Corto then
Command("PLACE", "", "MSFT", "BUY", OI, "MARKET", 0, 0, "", "", "", "", "")
END SUB
Saludos.
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Girar en el Ninja

Mensaje por cls »

Jose escribió:Hay una cosa que me viene mal a la hora de programar sistemas en el Ninja: para girar pone dos órdenes, una para cerrar la posición antigua y otra para abrir la nueva.
No necesariamente.
Si entraste corto con un EnterShort. Al poner un EnterLong te cerrará todos los contratos que tengas cortos, y te abrirá los que le pongas en el EnterLong.
Jose escribió:A mí me vendría mejor que pusiera una sola orden de dos contratos ¿se puede hacer?
Según el ejemplo que he puesto, sí.

S2
Avatar de Usuario
Jose
Mensajes: 805
Registrado: 22 Mar 2006 14:01

Re: Girar en el Ninja

Mensaje por Jose »

Gracias Optiondreamer. Yo de programar ni idea, empezaré a mirarlo a ver si puedo hacer algo parecido.

cls escribió:Si entraste corto con un EnterShort. Al poner un EnterLong te cerrará todos los contratos que tengas cortos, y te abrirá los que le pongas en el EnterLong.
sí, el sistema lo tengo con EnterLong y EnterShort (EnterLong cuando la cotización esté por encima de una media, y EnterShort cuando esté por debajo).

Lo que hace el ninja es poner una orden para cerrar cortos de X contratos, y otra orden para abrir largos de Y contratos, cuando a mí lo que me interesaría es que pusiera una sola orden de compra de X+Y contratos.

¿Tú has conseguido que te ponga una sola orden?

Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Girar en el Ninja

Mensaje por cls »

Jose escribió:Gracias Optiondreamer. Yo de programar ni idea, empezaré a mirarlo a ver si puedo hacer algo parecido.

cls escribió:Si entraste corto con un EnterShort. Al poner un EnterLong te cerrará todos los contratos que tengas cortos, y te abrirá los que le pongas en el EnterLong.
sí, el sistema lo tengo con EnterLong y EnterShort (EnterLong cuando la cotización esté por encima de una media, y EnterShort cuando esté por debajo).

Lo que hace el ninja es poner una orden para cerrar cortos de X contratos, y otra orden para abrir largos de Y contratos, cuando a mí lo que me interesaría es que pusiera una sola orden de compra de X+Y contratos.

¿Tú has conseguido que te ponga una sola orden?
Jose, creo que no te he entendido. Si estás corto y quieres ponerte largo, tendrás que cerrar los cortos (una orden) y abrir los largos (otra orden). Y el broker te cobrará la gestión de estas dos operaciones. Esto no es posible cambiarlo. El broker tiene que recibir una orden para cerrar y otra para abrir. Igual que harías en operativa discrecional. Y el Ninja tiene que enviar esas dos órdenes.

Otra cosa distinta es cómo codificar esto dentro del ninja y cuántas instrucciones de código necesitas. Como comenté en el ejemplo con una es suficiente. (Aunque internamente esta única instrucción suponga varias órdenes).

Si lo que quieres es hacer hedge. Es decir, seguir con los cortos abiertos y abrir largos para cubrir esos cortos y además sumarte al movimiento, Eso no se puede (bueno sí se puede pero no es tan fácil).
El ninja no permite en la misma cuenta estar largo y corto a la vez. Así que tendrías que trabajar con dos cuentas. Una para largos y otra para cortos. Y llevar la gestión dentro del código. Una estrategia para largos en la cuenta de largos, y otra para cortos en la cuenta de cortos.

S2
Avatar de Usuario
DarkTemplar
Mensajes: 877
Registrado: 13 Feb 2006 10:41

Mensaje por DarkTemplar »

.
Última edición por DarkTemplar el 19 Mar 2012 18:05, editado 1 vez en total.
Avatar de Usuario
Jose
Mensajes: 805
Registrado: 22 Mar 2006 14:01

Mensaje por Jose »

Suarinver ¿tú sabes programar con el Ninja? ¿Has probado si funciona la idea de Optiondreamer?
Avatar de Usuario
DarkTemplar
Mensajes: 877
Registrado: 13 Feb 2006 10:41

Mensaje por DarkTemplar »

.
Última edición por DarkTemplar el 19 Mar 2012 18:05, editado 1 vez en total.
Avatar de Usuario
Jose
Mensajes: 805
Registrado: 22 Mar 2006 14:01

Mensaje por Jose »

jeje, vale, pues un día que esté nublado lo intentas y me dices algo :wink:

Yo cuando pueda desempolvaré mi inglés para comentarlo en el foro del ninja.

Creía que era más fácil esto, se ve que lo de migrar del Visual al Ninja me va a llevar más tiempo del que pensaba :?
Avatar de Usuario
DarkTemplar
Mensajes: 877
Registrado: 13 Feb 2006 10:41

Mensaje por DarkTemplar »

.
Última edición por DarkTemplar el 20 Mar 2012 19:34, editado 1 vez en total.
Avatar de Usuario
bolsa1
Mensajes: 1347
Registrado: 13 May 2008 09:53
Ubicación: Gallaecia

Mensaje por bolsa1 »

Jose escribió:Creía que era más fácil esto, se ve que lo de migrar del Visual al Ninja me va a llevar más tiempo del que pensaba :?
No será más tiempo del que tiramos con el Visual... :?

Ánimo y saludos! :-D
"Mercaderes e industriales no deben ser admitidos a la ciudadanía; porque su género de vida es abyecto y contrario a la virtud."

Aristóteles.
Avatar de Usuario
Jose
Mensajes: 805
Registrado: 22 Mar 2006 14:01

Mensaje por Jose »

cierto bolsa1, habrá que seguir intentándolo.

Suarinver escribió:Jose... que vivo en Tenerifelicidad .... :-D :-D :-D ¿Nublado? :-D :-D
vaya, qué casualidad... pues ayer vimos algunas nubecillas por Santa Cruz :P
Avatar de Usuario
Optiondreamer
Mensajes: 342
Registrado: 28 Mar 2006 08:07
Ubicación: 40.705571, -74.013432

Mensaje por Optiondreamer »

Me acabo de bajar el Ninja y no se si esto rulará, por si acaso, lo pruebas con el simulador, aparte de añadirlo en la estrategia que sea.

Saludos.

Código: Seleccionar todo

protected override void OnBarUpdate()
        {
            // Condition set 1 
            if (Position.MarketPosition == MarketPosition.Long)
            {
                EnterShort((int) (Position.MarketPosition)*2, "");
            }

            // Condition set 2
            if (Position.MarketPosition == MarketPosition.Short)
            {
                EnterLong((int) (Position.MarketPosition)*2, "");
            }
        }
Avatar de Usuario
Jose
Mensajes: 805
Registrado: 22 Mar 2006 14:01

Mensaje por Jose »

Vasha, lo he preguntado en el foro del Ninja y me dicen que no se puede.

Suarinver ¿llegaste a intentar programarlo? Que digan que no se puede no significa que sea imposible...
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Software”