Curso Gratuito - Trading IA
Cerrar posiciones en EasyLanguage

Comentarios
-
A ver si se os ocurre que me esta pasando
En el algoritmo cuando doy una orden de compra le pongo que compre— nc Contract next bar at market;
donde antes he definido nc como variable y de momento es 1( 1 contrato), pues bien si doy a nc otro valor 2 o 5 o el que sea , solo realiza la primera compra y no llega a vender nunca. Con nc =1 hace las operaciones sin problemas
Y tiene que ser algo del codigo pero no se por donde van los tiros , porque si hago un pequeño algoritmo como este
var: nc(0),entrada1(0) ; nc= 5 ; if marketposition =0 and c>c[1] then buy ("Entrada1") nc Contract next bar at market; if marketposition = 1 and c<low[1] then sell from Entry("entrada1") nc Contract next bar at market ;
aqui no me da problemas el numero de contratos en nc
imagen del problema si pongo 2 contratos
0 -
Para cerrar una operación tenemos la opción de cerrar esta operación y de abrir la posición contraria con la misma cantidad.
Si teníamos 2 vendidos, compramos dos para cerrar, por ejemplo.
Por ejemplo, si hemos vendido (Sell), cerramos la posición con un buy por la misma cantidad.
Con la función MarketPosition podemos saber qué posición tenemos abierta en mercado para saber si podemos cerrar algo y en qué cantidad.
0 -
Sabia ,que no podia ser muy dificil
Marketposition te dice 1 si vas largo y -1 si vas corto no el numero de contratos abiertos, ahi tenia el fallo, por eso con un contrato funcionaba y con un numero distinto no
simplemente cambie if marketposition =-nc then begin por if marketposition <0 then begin
0 -
Exacto.
En tu algoritmo, igual que calculas la posición para decirle a la plataforma mediante la orden que sea (buy/sell, etc), el precio de entrada, take… todos estos datos los mantienes de forma que en todo momento controlas cuál debería ser la posición y qué debe tener la plataforma.
Lo interesante: las órdenes de entrada llevan un ID asociado. Por ejemplo Sell("Mi ID"). Para cerrar esta posición, solo tengo que utilizar la contraria pasándole este identificador y cerrará la posición completa a no ser que le digas lo contrario.
Un ejemplo
if condicion_entrada Then Begin Buy ("B") X shares next bar at precio_entrada; End; if una_vez_ejecutada_la_entrada Then Begin sell ("B_S1") X shares next bar at precio_stop; sell ("B_S2") X shares next bar at precio_take; End;
Siendo X el tamaño de la posición.
Ya solo quedaría ir moviendo stop conforme sea necesario.
Para cerrar, hacer la contraria y cancelar "B_S1" y "B_S2"
0 -
Tengo entendido que no hay función para cerrar todo o al menos yo no la conozco
Se hace siempre cerrando todo lo que hay abierto con la orden contraria.
🇪🇦
1 -
Exacto
0 -
Este post puede resultar interesante y relacionado con este.
0
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