Código Kase Dev Stop
Forums › ProRealTime foro Español › Soporte ProOrder › Código Kase Dev Stop
- This topic has 4 replies, 2 voices, and was last updated 4 years ago by Santi.
-
-
10/11/2020 at 4:52 PM #147066
Buenas tardes, adjunto un código de un sistema que no me acaba de hacer lo que quiero en varios aspectos, dentro del código precedido de // van los problemas.
- En cuanto a la instrucción DEFPARM FlaterAfter, quiero que a partir de las 13:00 horas no abra más operaciones pero que mantenga las ya abiertas hasta que se produzcan las condiciones de cierre o, en caso contrario, la cierre a las 17:30.
- c2 = (range > ind2), en cuanto a la condición 2, quiero que se active la orden de compra cuando haya una vela que su rango englobe a la EMA.
- Quiero añadir otra condición (c3) que una vez se haya generado una compra y se cierre por cumplir alguna de las condiciones de salida, no vuelve a abrir nueva posición hasta que se produzca lo que yo llamo un “RESET”, en este caso que el MACD cruce 0 a la baja y posteriormente lo vuelva a cruzar al alza.
- Por último, en el cierre de las compras, basado en un indicador externo “Kase Dev Stop”, quiero que la orden stop vaya moviendose con el indicador, pero debido a que este indicador se mueve alternativamente arriba y abajo, quiero que la orden stop de salida, se mantenga en el punto máximo marcado y no descienda cuando lo haga el indicador, solo se modifique mientras el indicador va subiendo.
Adjunto código, a ver si alguien me puede ayudar. Muchas gracias
Kase Dev Stop1234567891011121314151617181920212223242526272829303132DEFPARAM CumulateOrders=False//solo operar desde esta hora hasta….DEFPARAM FlatBefore = 080000DEFPARAM FlatAfter = 130000// esta hora OJO que cierra todas las posiciones abiertas, yo solo quiero que no abra mas posiciones nuevas pero las que ya estan abiertas quiero cerrarlas con el comando EndTime o por que se cumplan algunas de las condiciones de cierrerem EndTime = 173000//Compra:ind1 = MACD[12,26,9](close)c1 = (ind1 > 0)ind2 = ExponentialAverage[8](close)c2 = (range > ind2) //quiero que para abrir posición, tras cumplir c1, haya 1 vela que tenga su rango (max-min) tocando la ema8//c3 RESET que no se vuelva a generar una compra hasta que el macd haya vuelto a bajar de su nivel 0, en cuyo caso cuando se vuelva a cumplir c1 se vuelva a iniciar el proceso de compraif c1 and c2 thenbuy 1 contract at high + 2*pointsize STOPENDIF//Cierre comprasignored, ignored, ignored, ind4 = CALL "Kase Dev Stop - version 2"[20,5,21]c4 = (close > ind4)//c5.....quiero que cuando descienda, la orden stop se mantenga en el punto máximo marcado y no descienda con el indicador, solo se modifique cuando el indicador ascienda otra vezif c4 thensell 1 contract at low - 2*pointsize STOPendif10/12/2020 at 1:47 PM #147162Buenas, mientras alguien me ayuda, sigo buscando información e intentando aprender a base de trabajar. Gracias a ello y sobre todo, a las grandes personas que hay en este canal, de momento he podido solucionar la duda número 1, en cuánto al horario se refiere. Encontré las líneas de código que lo solucionaban publicadas en el foro en inglés por robertogozzi, adjunto esas líneas de código por si a alguien más le puede ayudar.
Todo sobre esta solución y más en este hilo:
https://www.prorealcode.com/topic/time-and-day-conditions/#post-134372
un saludo
12345678//para añadir a las condiciones de entrada la franja horaria de aperturas//también los días de la semana que se quiere operarTimeCond = OpenTime >= HHMMSS and OpenTime <= HHMMSSDayCond = OpenDayOfWeek >= 1 AND OpenDayOfWeek <= 5IF MyConditions AND Not OnMarket AND TimeCond AND DayCond THEN..ENDIF11/01/2020 at 6:09 PM #149183Hola Santi,
Creo que he solucionado el punto 2 y el 3. Respecto al 4, lo siento, no tengo el indicador “Kase Dev Stop” por lo que no puedo ayudarte mucho. Tampoco entiendo muy bien lo que quieres hacer. He puesto la condición c5 pero no se como lo quieres aplicar.
Un saludo
12345678910111213141516171819202122232425262728293031323334353637383940414243444546DEFPARAM CumulateOrders=False//solo operar desde esta hora hasta….DEFPARAM FlatBefore = 080000DEFPARAM FlatAfter = 173000//para añadir a las condiciones de entrada la franja horaria de aperturas//también los días de la semana que se quiere operarTimeCond = OpenTime >= 080000 and OpenTime <= 130000DayCond = OpenDayOfWeek >= 1 AND OpenDayOfWeek <= 5ONCE Reset=1ind1 = MACD[12,26,9](close)c1 = (ind1 > 0) and Reset=1ind2 = ExponentialAverage[8](close)c2 = (Low < ind2 and high > ind2) //quiero que para abrir posición, tras cumplir c1, haya 1 vela que tenga su rango (max-min) tocando la ema8if ind1 < 0 thenReset=1endifif c1 thenReset=0endif//Compra:MyConditions=c1 and c2IF MyConditions AND Not OnMarket AND TimeCond AND DayCond THENbuy 1 contract at high + 2*pointsize STOPc5=ind4ENDIF//Cierre comprasignored, ignored, ignored, ind4 = CALL "Kase Dev Stop - version 2"[20,5,21]c4 = (close > ind4)c5 = max (c5,ind4)//c5.....quiero que cuando descienda, la orden stop se mantenga en el punto máximo marcado y no descienda con el indicador, solo se modifique cuando el indicador ascienda otra vezif c4 thensell 1 contract at low - 2*pointsize STOPendif11/03/2020 at 3:12 PM #149387Muchas gracias Antus, el tema de la ema me lo has solucionado.
Lo del “Reset” añadiendo lo que me dices, ahora no me abre ninguna operación, yo quiero que me abra la primera, pero si se cierra no vuelva a abrir más en esa dirección hasta que se produzca el reset.
El DevStop es un indicador de volatilidad similar al ATR, lo que quiero es que cuando vaya a favor de mi entrada se vaya moviendo con el indicador la orden limitada de salida de la posición, pero cuando el indicador retroceda, la orden no lo acompañe y se quede en su punto más alto.
De todas forma, te agradezco la ayuda.
Pongo aquí el indicador DevStop por si a alguien le interesa (las variables “n”, “periodFast”, “periodSlow” a añadir son 20,5,21)
Kase DevStop - version 21234567891011121314151617181920212223242526//pararemeters://n = 20//periodFast = 5//periodSlow = 21DTR = max(max(High - Low[2], abs(High - Close[2])),max(abs(Low - Close[2]),(abs(Low - Close[2]))))price = typicalpriceavg = average[n](DTR)st = std[n](DTR)maFast = average[periodFast](close)maSlow = average[periodSlow](close)if maFast<maSlow thenWarningLine = price+avgDev1 = price+avg + stDev2 = price+avg + 2.2*stDev3 = price+avg + 3.6*stelseWarningLine = price-avgDev1 = price-avg - stDev2 = price-avg - 2.2*stDev3 = price-avg - 3.6*stendifRETURN Warningline coloured(255,0,0) as "WarningLine", Dev1 coloured(2, 118, 253) as "DevStop1", Dev2 coloured(255, 140, 0) as "DevStop2", Dev3 coloured(1, 71, 250) as "DevStop3"11/03/2020 at 3:13 PM #149388 -
AuthorPosts
Find exclusive trading pro-tools on