Problema en vela de ejecución + Duda Stop Loss tras ocurrencia de suceso
Forums › ProRealTime foro Español › Soporte ProOrder › Problema en vela de ejecución + Duda Stop Loss tras ocurrencia de suceso
- This topic has 5 replies, 2 voices, and was last updated 3 years ago by robertogozzi.
-
-
07/08/2021 at 3:10 PM #173342
Buenas tardes
Quería trasladarles 2 dudas en relación con el código de un sistema automático que estoy desarrollando para la temporalidad H1.
- La idea es que, EN EL MOMENTO en que se cumplan una serie de condiciones, se realicen las entradas y salidas, según corresponda. Sin embargo, en las pruebas que estoy realizando, las entradas y salidas las realiza en LA VELA SIGUIENTE en la que se producen las condiciones lo cual provoca que el sistema empeore bastante sus resultados. ¿Qué instrucción debo añadir en el código para que las ejecuciones se realicen EN EL MOMENTO en que se produzcan las condiciones y no en LA VELA SIGUIENTE?
- La otra duda es la siguiente: quiero incluir en el código una instrucción según la cual, en el momento en que ocurra un suceso X (por ejemplo que el precio cruce a la baja un indicador XX previamente definido), en la siguiente vela el sistema coloque un stop loss (en el caso de posiciones largas sería una venta) un tick por debajo del mínimo de la vela en la que haya ocurrido el suceso 1. ¿Cómo debería ser el código de esa parte subrayada?
Muchas gracias por adelantado y un saludo
Carlos D.
07/08/2021 at 3:51 PM #173343- Debe usar el soporte MTF (Multi, o Multiple, Time Frame) para usar incluso un marco de tiempo más pequeño, 1 minuto o incluso más pequeño, de modo que pueda ingresar casi de inmediato; si busca la palabra MTF encontrará artículos, blogs, publicaciones y muchos ejemplos;
- ¿Cuando una posición ya está abierta, o cuando la abres?
07/08/2021 at 4:13 PM #173346Muchas gracias por tu pronta respuesta Roberto. Te respondo:
- Ok, investigaré la instrucción MTF para ver si puedo hacer que el sistema haga el análisis en H1 pero la ejecución en M1.
- Tienes razón, no lo especificaba (disculpa). Reformulo la duda: Quiero incluir en el código una instrucción PARA CUANDO HAY UNA POSICIÓN ABIERTA según la cual, en el momento en que ocurra un suceso X (por ejemplo que el precio cruce a la baja un indicador XX previamente definido), en la siguiente vela el sistema coloque un stop loss (en el caso de posiciones largas sería una venta) un tick por debajo del mínimo de la vela en la que haya ocurrido el suceso 1. ¿Cómo debería ser el código de esa parte subrayada?
Gracias nuevamente y un saludo
Carlos D.
07/08/2021 at 5:00 PM #173347En el momento de la apertura, se debe determinar el precio de la entrada. Esto se puede hacer en la próxima vela (si usa MTF incluso solo 1 segundo o 1 minuto después), con esta instrucción (que debe colocarse ANTES del código de entrada al mercado):
123IF (OnMarket AND Not OnMarket[1]) OR (LongOnMarket AND ShortOnMarket[1]) OR (ShortOnMarket AND LongOnMarket[1]) THENEntryPrice = TradePriceENDIFLuego puede agregar el código del evento:
123IF EventX THENSET STOP LOSS abs(EntryPrice - low) - 1 * PipSizeENDIF07/08/2021 at 6:11 PM #173351Muchas gracias Roberto.
Si entiendo bien el código que has enviado, lo que tú planteas es que, una vez ocurra el suceso X, se coloque un Stop Loss 1 pip por debajo del mínimo de la vela EN QUE SE ABRIÓ LA POSICIÓN. ¿Es así?
Sin embargo, lo que yo busco es colocar el stop 1 pip por debajo del mínimo de la vela EN QUE SE PRODUCE EL SUCESO X (lo cual puede suceder pasadas varias velas después de la entrada).
Por tanto creo que lo que me faltaría averiguar es cómo definir en código “el mínimo de la vela en que se produce EventX”.
Incluyo un ejemplo (tonto) para plantear la problemática:
1234567891011121314151617181920// Definición de los parámetros del códigoMED50 = Average[50](close)// Condiciones para entrada de posiciones largas (SIN COLOCAR STOP POR EL MOMENTO): que el precio cruce al alza MED50C1 = Close CROSSES OVER MED50//Orden de entrada en largoIF NOT LONGONMARKET AND C1 THENBUY 1 SHARE AT MARKETENDIF// Condiciones para que se coloque el STOP: que el precio cruce a la baja la media de 50EventX = Close CROSSES UNDER MED50//Orden de colocación del stop loss (en este caso una venta) en LA SIGUIENTE VELA DONDE OCURRE EventX//y al precio de 1 tick por debajo del mínimo de la VELA DONDE SUCEDE EventX:IF EventX THENSET STOP LOSS (el mínimo de la vela en que se produce EventX) - 1 * PipSizeENDIFMuchas gracias nuevamente
Carlos D.
07/08/2021 at 11:39 PM #173362He puesto la distancia del Stop Loss del precio de entrada, si quieres ponerlo del precio actual solo tienes que usar esto:
123IF EventX THENSET STOP LOSS abs(close - low) + 1 * PipSizeENDIF(en el ejemplo anterior había puesto “-” por error).
O puede usar una orden pendiente (STOP o LIMIT, según el precio actual, si es mayor o menor; coloqué STOP al azar):1234IF EventX THENExitPrice = low - 1 * PipSizeSELL AT ExitPrice STOP //or LIMITENDIFEn este caso “-” está bien.
Recuerda que las órdenes pendientes solo duran 1 barra, por lo que en la siguiente barra debes colocarla nuevamente, de lo contrario te quedarás sin Stop Loss. -
AuthorPosts
Find exclusive trading pro-tools on