Curso Gratuito - Trading IA
TRADESTATION EASYLENGUAGE
Comentarios
-
Ya me parecia a mi que con los if me estaba haciendo algo muy gordo, muchas gracias ire probando
0 -
Bueno que no se diga que no lo intento, estoy con lo del switch, pero no me sale . Se supone que defines una variable y cada vela va pasando por cada caso y el que se cumple lo deberia de ejecutar, si no estoy equivocado, y si no se cumple ninguno el default.
Hasta ahi no tiene mucho misterio, pero algo no debo de poner bien, ahi va
Si lo pongo asi no me hace caso a las instrucciones me marca siempre la defaultif Tendencia_alcista=true and sesion=true then begin switch(S_estructura) Begin case 1: if high>s_estructura and close<s_estructura then s_estructura = high;//una vela que supera la señal pero cierra por debajo case 2: if s_estructura-POCa > maximo[1]-highest(high,(barnumber-b1b+1)) then s_estructura = maximo[1];// Distancia entrada>maximo -high de la vela señal pasa a ser el maximo default: S_estructura= giro1b; end; end;
Si lo pongo asi directamente no me sale nadaif Tendencia_alcista=true and sesion=true then begin switch(S_estructura) Begin case s_estructura: if high>s_estructura and close<s_estructura then s_estructura = high;//una vela que supera la señal pero cierra por debajo case s_estructura: if s_estructura-POCa > maximo[1]-highest(high,(barnumber-b1b+1)) then s_estructura = maximo[1];// Distancia entrada>maximo -high de la vela señal pasa a ser el maximo default: S_estructura= giro1b; end; end;
a ver si me puedes dar una pequeña explicacion, me da que esto no debe ser muy dificil, no se si son los if o la forma de definir los case, o que...
0 -
Hola, aquí creo que lo explica bastante bien:
https://help.tradestation.com/10_00/eng/tsdevhelp/elword/word/switch_reserved_word_.htm0 -
Si, si la ayuda ya la lei, por eso y por tu explicacion se lo que se supone que es el switch, pero no consigo que funcione correctamente, asi que se me plantean dudas, a ver si con preguntas concreas y concisas lo solucionamos rapido:
1.en case hay que poner un numero 1,2... o ese numero tiene que ser algo con significado
yo si pongo el nombre de la variable no hace nada, y si pongo 1,2.. se las salta y hace la default
2.despues de los : del case esta bien poner na declaracion if o se me ocurre otra manera de hacerlo)
En el ejemplo tengo una variable(s_estructura) que es la señal dde estructura en este caso para alcista y 2 case , dime si esta bien(que entiendo que no ,porque no funciona) y que esta mal (que me da que es algo sencillo) Las sentencias de los case si las saco del switch si funcionan, asi que entiendo que soy yo que no estoy definiendo bien el switch
Te estas ganando el cielo conmigo, mucas gracias0 -
Hola, la sentencia Switch tienes que interpretarla como:
Dado un valor para la variable A:
En caso que A=1: …
En caso que A>1 y A<3: …
En caso que A>3: …
En otro caso: …
A lo mejor estás pensando en una condición que involucre varias variables y no te sirva una sola sentencia Switch, tengas que combinar varias sentencias Switch con otras if.
Aquí es donde entra el ingenio de cada programador, el resultado puede ser el mismo, pero la forma de hacerlo es algo que decides tú.
Intenta simplificar, agrupa código en métodos y crea variables y constantes con nombres bien elegidos.
Saludos y encantado de ayudare.0 -
Ahh,osea que si la variable es estructura, cuando pongo case es como si case es estructura
Bueno ya probaré y te diré que tal me va
Que tal llevas la integración de la IA?,te está dando Buenos resultados0 -
Luismi dijo:Ahh,osea que si la variable es estructura, cuando pongo case es como si case es estructura
Bueno ya probaré y te diré que tal me va
Que tal llevas la integración de la IA?,te está dando Buenos resultados
Al paso a la IA me he encontrado que elegir las variables no es fácil y por lo tanto al entrenar la red neuronal cuesta obtener buenos resultados.
Lo tengo todo implementado, pero estoy pensando en los parámetros que debería pasar a la IA y revisando a la vez el resto de conceptos.0 -
Una pregunta de posiciones
Estoy programando las entradas y salidas del algoritmo, y me encuentro por ejemplo que a una entrada le he llamado Estructura y a otra Parada.
Cuando voy a representarlas uscuando solo tenia 1 usaba
if marketposition =1 ó -1 o lo que sea, pero ahora que ya tengo 2 , me gustaria llamarlas por su nombre o como tenga que hacerlo porque los piuntos de stop o take no son los mismos.
que tengo que hacer?
y OTRA cosa aprovechando , para las entradas he puesto nc=1 , que es la variable para numero de contratos, de momento la tengo a 1 , pues si pongo 2 no me salen entradas, no se que configuracion o que es pero tampoco doy con ello
0 -
Hola, ¿te refieres a que quieres gestionar dos posiciones abiertas simultáneamente?
Sobre el número de contratos, para mi también es un poco confuso. Depende del importe que quieras arriesgar y de la distancia del take profit y stop loss (y por supuesto del valor del índice).
¿Has visto la ayuda sobre esto? hay algunas cosas que te pueden servir.0 -
No ,me refiero que segun voy haciendo el algoritmo a la entrada de estructura le he llamado "estructura_alcista" y a la bajista "Estructura_Bajista", y cuando programo las condiciones empiezo por
if marketposition=1
if marketposition=0
pero ahora le añado condiciones para entrada volumen de parada,que la llamo"parada_alcista" y no se como referenciar si es de una u otra entrada en conctreto,(me esta pasando para representar las lineas de entrada, alomejor hay otra forma de representarlas con ordenes mas directas).// Señal entrada if marketposition<>0 then Begin value7= tl_new(d[0],t[1],Entryprice,d,t,Entryprice); Tl_setcolor(value7,white); Tl_setstyle(value7,5); end; //Señales en largo if marketposition>0 then Begin VALUE8 = tl_new(d[0],t[1],st,d,t[0],st); Tl_setcolor(value8,red); Tl_setstyle(value8,1); VALUE9 = tl_new(d[0],t[1],tp,d,t,tp); Tl_setcolor(value9,green ); Tl_setstyle(value9,1); VALUE10 = tl_new(d[0],t[1],Take_PARADA_alcista,d,t,Take_PARADA_alcista); Tl_setcolor(value10,Darkblue ); Tl_setstyle(value10,1); end; //Señales en corto if marketposition<0 then Begin VALUE8 = tl_new(d[0],t[1],stop_est_bajista,d,t[0],stop_est_bajista); Tl_setcolor(value8,red); Tl_setstyle(value8,1); VALUE9 = tl_new(d[0],t[1],Take_est_bajista,d,t,Take_est_bajista); Tl_setcolor(value9,green ); Tl_setstyle(value9,1); end;
Con respecto a lo de los contratos, no he empezado a gestionar posicion, pero si he visto que si pongo 2 conytratos en vez de 1 , no realiza ninguna operacion, y no se porque sera0 -
Si no entiendo mal, te basta con tener una variable que indique qué tipo de setup ha dado la entrada que tienes en curso.
Cuando hagas una entrada pon en una variable qué setup la ha originado.0 -
Durante el verano estaré programando, no voy a estar pendiente del mercado, solo depuraré el algoritmo.
Si quieres envíame un email y para una comunicación más directa, a veces con el foro me pierdo un poco (Por favor, si lo hacemos fuera del foro el resto de miembros no podrán beneficiarse de ello).0 -
Cuando hagas una entrada pon en una variable qué setup la ha originado
Creo que si me va a valer, es que pensaba que alomejor habia alguna instruccion directa de easylenguage , pero de momento probare con la variable ,cuando se dan las condiciones de entrada pues que se active tambien esa variable.
Ahi te pongo mi mail (Por favor, si lo hacemos fuera del foro el resto de miembros no podrán beneficiarse de ello) ,yo me comprometo actualizar este post si saco enseñanzas de ello , que de hecho para eso cree este post con el nombre TRADESTATION ESAYLENGUAGE porque igual que a mi alguno vendra detras que le cueste la programacion
0 -
Ok, mira, si te ves con fuerza puedes dar un paso más.
Quizás no te lo recomiende hasta que no te veas suelto con la plataforma y el lenguaje easylanguage.
Cuando lanzas una operación, se abre un objeto de la Clase Position.
Para gestionar estas clases pudes hacerlo mediante una Clase PositionProvider.
Pues bien, dentro de cada operación (Objeto Position) hay un campo "ExtendedProperties" que es una colección y que puedes usar para guardar cualquier valor que necesites, por ejemplo el setup que origina la entrada.
Como te digo es algo avanzado y no deberías liarte si todavía no gestionas entradas básicas.
Si te lanzas a la aventura dímelo y vamos avanzando.0 -
Yo con fuerza me veo, lo que veo es que no se , tu esto como lo has aprendido,leyendo la ayuda de Tradestation?, si es asi es porque ya lo hacias parecido en otro lenguaje o plataforma ,porque yo leo la ayuda y lo medioentiendo, pero con las explicaiones y ejemplos son tan basicos que no consigues que funcione ni la primera linea de codigo y son cosas sencillas ,como que hay que llamar primero a la libreria o que hay que iniciar una variable o cosas asi ,pero vamos que por ti solo no arrancas.
De momento voy a probar con lo de las variables, y si hay cosas que no puedo hacer vamos viendo,porque de momento solo me esta dando guerra para la representacion, y ahora en verano tengo menos tiempo y quiero avanzar el algoritmo aunque sea poco a poco0 -
Lo he aprendido con ejemplos que encuentro por Internet, no es que sea como buscar ejemplos en python pero algo encuentras.
La ayuda es limitada porque no tiene ejemplos completos, así que necesitarás buscar en otras fuentes.
Hazlo con las variables, intenta que funcione e irás encontrando las limitaciones. Hasta que no encuentres la necesidad de avanzar en la complejidad, no lo hagas.
0 -
Una pregunta sencilla antes de ponerme a dar vueltas.
Hay alguna instruccion directa en Tradestation para decirle que cuando has hecho una operacion no haga mas, o hay que hacerlo con una variable tipo contador y que sea esta la que no te deje entrar0 -
Si, Marketposition creo que era, indica el número de operaciones abiertas.1
-
Si , pero yo digo cuando ya has hecho una , para no hacer mas , cuando se cierra la operacion marketposition=0 y si se dan las condiciones vuelves a entrar0
-
Ok, a ver, lo más fácil es que tengas una variable que las cuente.
Si que puedes, es un poco más complejo pero creo que te podrá venir bien conocer la clase PositionProvider.
https://help.tradestation.com/10_00/eng/tsdevhelp/elobject/class/positionsprovider_class.htm
Usándola podrás gestionar las posiciones en curso y las ya cerradas.
Yo la usaba para exportar los datos al finalizar una operación.
Saludos.0 -
Muchas gracias, lo echare un ojo, aunque yo creo que lo haga con la variable0
Categorías
- Todas las Categorías
- 19 Presentaciones
- 46 Nuestros sistemas (Curso gratuito)
- 70 Operativa y Sistemas de trading
- 44 Inversiones
- 12 Inteligencia Artificial y Optimización de Algoritmos
- 63 Plataformas
- 27 Programación e Inteligencia Artificial
- 21 Brokers
- 11 Bancos
- 31 Pruebas de fondeo
- 8 Psicología y Trading
- 6 Fiscalidad
- Emails
- 88 Otros temas