Programacion sistema visual

Todo sobre el trading en los mercados financieros: funcionamiento, dudas, noticias, etc.
Avatar de Usuario
chien1
Mensajes: 138
Registrado: 05 Jun 2007 09:47

Programacion sistema visual

Mensaje por chien1 »

Hola a todos llevo tiempo leyendo este foro pero no me había inscrito hasta ahora.
La cosa es que llevo tiempo desarrollando un pequeño sistema o metodo de trabajo y sobre papel funciona bastante bien pero me gustaría programarlo para testearlo en diferentes periodos de tiempo y ver si es consistente.
El problema de todo esto es que jamas he programado y estoy un poco pez. He estado intentando hacerlo con la plataforma visual del Visual Chart y estoy muyyyyyyy atasacado.

Teneis algun manual desde donde pueda partir?? Yo tengo el manual de Visual Chart pero me sigue pareciendo un lio.

Gracias
Avatar de Usuario
roky
Mensajes: 59
Registrado: 19 Feb 2007 15:45

programación

Mensaje por roky »

Hola chien 1: Si te resulta problematico configurar el sistema utilizando la ayuda de Visual,puedes recurrir al libro que editan para enseñar el manejo de la aplicación y programar en PDV y VB.

Si oersisten las dificultades para plasmar el sistema, no se si sabras que tienen un departamento que te programa, previo pago, las ideas que quieras llevar a la practica.
Un saludo
Avatar de Usuario
Tom
Mensajes: 2421
Registrado: 12 Feb 2005 10:23
Ubicación: Madrid

Mensaje por Tom »

Si nunca has programado nada, es dificil empezar desde cero.
¿has visto ya los videos de Visual Chart?
----- Para que tu y yo ganemos dinero no habrían creado un mercado. ------
Avatar de Usuario
chien1
Mensajes: 138
Registrado: 05 Jun 2007 09:47

Mensaje por chien1 »

No he visto los videos pero creo que empezaré con ellos.
Aunque para empezar alguien sabe como podría crear un indicador que fuera la diferencia % entre el RSI de hoy y el de ayer?

Yo he provado:
(Indicador(RSIData)/Indicador(RSIData,1,1))-1

pero me sale un erorr de codigo

Ayuda please
fernajuf
Mensajes: 34
Registrado: 17 Feb 2007 11:27

Mensaje por fernajuf »

El de la barra actual sería:
.GetIndicatorValue(RSIData)
y el de la barra anterior sería:
.GetIndicatorValue(RSIData,1)
Si quieres que el de la barra actual tenga valor 100, la formula sería
DiferenciaPorcentual=100-((.GetIndicatorValue(RSIData,1)*100)/GetIndicatorValue(RSIData,1))
Si esto lo metes en un gráfico diario, la barra actual es hoy y la barra anterior es ayer.

Saludos.

Avatar de Usuario
chien1
Mensajes: 138
Registrado: 05 Jun 2007 09:47

Mensaje por chien1 »

Gracias por tu ayuda.

Lo que ahora me quedado atascado es para definir la orden de entrada, salida y stop

Mi idea es si cumple la condicion el indicador entraria comprando X puntos más abajo y venderia Y puntos más arriba con una orden en stop Z puntos más abajo.

Toda la programación del sistema la estoy haciendo via PDV ya que de programacion en visual basic bastante pez la verdad!! :? ya he creado en 3 variableS ENTRADA, SALIDA Y STOP (como parametros) pero luego no se muy bien como una vez que entra la orden como definir el precio de salida y el stop y que si uno se hace se cancele el otro.

No sé si me he explicado

Alguien podría ayudarme??
fernajuf
Mensajes: 34
Registrado: 17 Feb 2007 11:27

Mensaje por fernajuf »

A ver. Yo no se hacerlo en PDV, en VB sería algo así:

'Si estamos fuera del mercado:
If .GetMarketPosition = 0 And DiferenciaPorcentual = A Then
Buy AtStop, 1, Entrada
End If
'Para cuando ya estamos en el mercado:
If .GetMarketPosition = 1 Then
Sell AtLimit, 1, Salida '***
ExitLong, AtStop, 1, Stop
End If

*** Si en esa linea, en lugar de volverte, lo que quieres es simplemente salirte, lo que t endrias que poner seria:
ExitLong AtLimit, 1, Salida

Intenta comprender un poco el VB. A mi me resulta mas comprensible y mas facil y mas versatil que el PDV.

Saludos.
Saludos
Avatar de Usuario
chien1
Mensajes: 138
Registrado: 05 Jun 2007 09:47

Mensaje por chien1 »

Una pregunta que quizas es un poco tonta pero bueno ahi va!! (solo me gustaría saber como interpreta Visual las ordenes y cuando es su lógica)

Yo pongo tres ordenes una vez que ya estoy comprado en mercado: (ej:10€)
a/ CLOSE POSITION AT LIMIT 15 (toma de beneficios)
b/ CLOSE POSTION AT STOP 6 (stop de perdidas)
c/ CLOSE POSITION AT CLOSE (cierre al cierre)

Se supone que Visual me va a ir chequedando si alguna de las 2 primeras ordenes se han ejecutado y si es así se acaba la historia pero y si mi posición en mercado al cierre es 1 entonces me cierra mi posición al cierre.

Estaría bien mi forma de expresarlo?? o habría que introducir algun bucle para que repitiera esto hasta que al cierre mi posición fuera 1 y que me cerrara al cierre.

Gracias y perdon por el toston.
fernajuf
Mensajes: 34
Registrado: 17 Feb 2007 11:27

Mensaje por fernajuf »

Es el mismo ejemplo que antes, solo que, además, le añades una orden, la de salirte al cierre que, trapuesta al ejemplo anterior, sería la de:

ExitLong AtClose, 1, o sea, que lo de antes, ahora te quedaría así:

'Para cuando ya estamos en el mercado:

If .GetMarketPosition = 1 Then
ExitLong AtLimit, 1, 15
ExitLong, AtStop, 1, 6
ExitLong, AtClose, 1
End If

Y este código se ejecutaría en cada barra.

Saludos.
GolpesBajos
Mensajes: 8
Registrado: 25 May 2007 12:03
Ubicación: Almería

Mensaje por GolpesBajos »

fernajuf escribió:Es el mismo ejemplo que antes, solo que, además, le añades una orden, la de salirte al cierre que, trapuesta al ejemplo anterior, sería la de:

ExitLong AtClose, 1, o sea, que lo de antes, ahora te quedaría así:

'Para cuando ya estamos en el mercado:

If .GetMarketPosition = 1 Then
ExitLong AtLimit, 1, 15
ExitLong, AtStop, 1, 6
ExitLong, AtClose, 1
End If

Y este código se ejecutaría en cada barra.

Saludos.
Buenas

Si lanzas estas 3 ordenes juntas, las 2 primeras no se te van a cumplir en la vida, porque el cierre ATCLOSE se produce antes.

Lo suyo es condicionar las ordenes, tal que así:

If .GetMarketPosition=1 then
If .GetPositionProfit = 1 then (Esta orden devuelve el beneficio actual)
.Exit Long AtClose, 1
Else
.ExitLong AtLimit, 1, 15
.ExitLong, AtStop, 1, 6
End if
Endif
Avatar de Usuario
chien1
Mensajes: 138
Registrado: 05 Jun 2007 09:47

Mensaje por chien1 »

Creo que el problema de todo esto está en que sistema opera con señales en barras diarias mientras que las ordenes de compra, cierre, stop debería ser evaluadas con datos intradiarios sino Visual nunca sabría si se ha hecho antes el limite (15) o el Stop (6)

Creo que habría que decirle que clequease las dos ordenes LIMIT (15) y STOP (6) desde la 9:00 hasta las 17:35h para el Ibex35 por ejemplo y finalmente la las 17:35h la posicion es 1 entonces:
.ExitLong AtClose,1

Quizas habría que utilizar dos datas??

Data= datos diarios
Data1= datos intradiarios p. ej. 1h
GolpesBajos
Mensajes: 8
Registrado: 25 May 2007 12:03
Ubicación: Almería

Mensaje por GolpesBajos »

Ya te entiendo chien1... pensaba que con el uno te referías a haber ganado 1... y te refieres al ".GetMarketPosition"

Si tu idea es lanzar una orden por día y que cierre al alcanzar tu limit y stop o al finalizar la sesión, no te queda más remedio que trabajar en intradiario.

Olvidate de los dos datas porque las ordenes solo se ejecutan sobre el data1

Pero tu idea de poner horario es la ideal
Avatar de Usuario
MARTING
Mensajes: 369
Registrado: 14 Jun 2005 05:21

Mensaje por MARTING »

GolpesBajos escribió:Ya te entiendo chien1... pensaba que con el uno te referías a haber ganado 1... y te refieres al ".GetMarketPosition"

Si tu idea es lanzar una orden por día y que cierre al alcanzar tu limit y stop o al finalizar la sesión, no te queda más remedio que trabajar en intradiario.

Olvidate de los dos datas porque las ordenes solo se ejecutan sobre el data1

Pero tu idea de poner horario es la ideal
Hay otra solución mucho mejor , por que sin duda la de trabajar con datos intradiarios es una solución nefasta:

Paso 1 ;
Pinchas con el boton izquierdo del ratón sobre el icono de Visual Chart y acto seguido lo arrastras directamente a la papelera de reciclaje, sueltas y te olvidas de programas que solo sirven para perder tiempo y dinero.

Paso 2:
Te instalas un software de verdad, como www.ninjatrader.com o Tradestation y ahi programas tu código.
En estos softwares las ordenes como Target profits o Stops Loss se trabajan como ordenes OCO ( One cancel Other) y por lo tanto se pueden computar aunque no haya finalizado la vela, esto significa que tus ordenes se lanzaran al mercado nada mas que se haya ejecutado tu condición de compra, como debe de ser.

En la simulación te saldrá correcto lo que quieres hacer.

Y por último , lo mejor de todo, con uno de estos softwares te saldrá incluso mucho mas barato el mantenimiento.:wink:

Saludos
MartinG
Avatar de Usuario
trikero
Mensajes: 739
Registrado: 24 Ago 2006 23:44

Mensaje por trikero »

marting, aunque sigo siendo forofo del ami aun me falta mucho por aprender (estoy por la pagina 150 ya) ¿?ventajas del ninja frente al ami para trabajar con tws ¿?

de momento en el ami no encuentro la manera para añadirle "botones" al grafico y operar directamente desde él y que salieran reflejadas las posiciones en èl y anotarlas en el portfolio.

hay algun codigo que hace algo, pero no es una solucion completa, habria que programarlo mucho y de momento esta fuera de mi alcance

saludos.
las gacelas tambien tenemos derecho a pasto
Es probable que Dios no exista. Ahora, deja de preocuparte y disfruta de la vida
Avatar de Usuario
MARTING
Mensajes: 369
Registrado: 14 Jun 2005 05:21

Mensaje por MARTING »

Hombe la verdad es que el Ami vs el Ninja tampoco son comparables.

Por ejemplo :
La herramienta que quieres construir ya esta diseñada en el Ninja para poder operar desde el gráfico y modificar las ordenes , ( esta se llama ChatTrader).

A ver sobre la marcha cosas que se me ocurran hummm :

A-En el Ninja puedes importar históricos en txt, y que te una ese histórico con el vencimiento actual. Esto es muy importante, sobre todo para la gente que utiliza sistemas continuos y requiera históricos.

B-Estadísticas muchísimo mas completas de los sistemas que el Ami, las estadísticas del Ninja son mas detalladas incluso que las del Tradestation ( version 3264)

C-Interface para la automatizacion de los sistemas con ordenes OCO ( lo que comentaba mas arriba).

D- Lenguaje de programación mas resumido ( Mucho más fácil NinjaScript que el AFL de Amibroker)

E- Optimización Walk Forward ( Aquí se pasaron, que yo sepa no hay ningún software que separe datos en optimizacion entre In sample y Out sample, si lo hay lo desconozco).

F- Automatización utilizando la interface para enlazar ordenes de Tradestation o E-sginal ( Por si alguien quiere usar alguno de estos dos programas ).

G- Muchísimo mas estable que el Amibroker y sobre todo lo mas importante es que no esta en fase beta, ( como el IB controler).

En fín hay muchas cosas más por las que me parece un software muy competente pero lo mejor es que lo pruebes por ti mismo, ademas es grátis la versión de prueba con tiempo ilimitado . Joder , joder , y eso que no cobro nada por promocionarlo ( les voy a decir que me metan en plantilla aqui en españa)
:-D :-D

Para sistemas es lo mejor que he encontrado y no tiene nada que envidiarle al Wealth Lab tampoco.

Un saludo trik bye bye
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Trading en General”