Buenos días,
Estoy empezando a programar con PRT y me surgen la siguientes dudas en referencia a la entrada de esta estrategia
———————————–
DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
noEntryAfterTime = 211500
timeEnterAfter = time < noEntryAfterTime
indicator00 = ExponentialAverage[248](close)
c00 = (close <= indicator00)
indicator0 = ExponentialAverage[62](close)
c0 = (close <= indicator0)
indicator1 = ExponentialAverage[5](close)
c1 = (close <= indicator1)
IF c1 and c0 and c00 and timeEnterAfter THEN
SELLSHORT 1 SHARE AT LOW STOP
ENDIF
// Stops y targets
SET stop pTrailing 50.2
—————————————
“1 Share” y “1 Contract” es lo mismo????
Buy 1 SHARE AT LOW STOP — “LOW STOP” significa entrar en el mínimo de la barra anterior? Qué diferencia hay entre poner ” LOW STOP” Y “LOW LIMIT”??
Me gustaría añadir las siguientes condiciones:
- cierre de operaciones viernes a las 21:56
- No hacer operaciones el domingo
Cómo es el código de estas condiciones?
Muchas gracias de antemano.
Un saludo,
Siempre use el botón “Insert PRT Code” cuando incluya e inserte un código en sus mensajes para que sea más fácil de leer para otros.
Gracias 🙂
Sí, 1 acción, 1 contrato, 1 lote (con o sin el plural S ) son equivalentes. Comprar 1 COMPARTIR EN LOW STOP significa entrar al mínimo de la barra actual (la que acaba de cerrar) STOP se usa cuando el precio actual es peor que el precio de entrada, LIMIT se usa cuando es mejor (ver foto adjunta). Para salir el viernes a las 9:56 pm, agregue estas nuevas líneas a la línea 2:
IF OpenDayOfWeek = 5 AND Time >= 215600 THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF
Para el domingo, agregue, después de la línea 2, esto:
TradeON = OpenDayOfWeek >= 1 AND OpenDayOfWeek <= 5
y cambie la línea 15 a esto:
SI c1 y c0 y c00 y la hora Ingrese después Y opere ENTONCES
Muchas gracias por su ayuda.
Un saludo
DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
TradeON = OpenDayOfWeek >= 1 AND OpenDayOfWeek <= 5
noEntryAfterTime = 211500
timeEnterAfter = time < noEntryAfterTime
indicator00 = ExponentialAverage[248](close)
c00 = (close <= indicator00)
indicator0 = ExponentialAverage[62](close)
c0 = (close <= indicator0)
indicator1 = ExponentialAverage[5](close)
c1 = (close <= indicator1)
IF c1 and c0 and c00 and timeEnterAfter and TradeOn THEN
SELLSHORT 1 SHARE AT LOW STOP
ENDIF
// Stops y targets
SET stop pTrailing 50.2
IF OpenDayOfWeek = 5 AND Time >= 215600 THEN
EXITSHORT AT MARKET
ENDIF
Según sus indicaciones el código sería así??? Agradecería su confirmación.
Por otra parte, también necesito ayuda sobre el spread a poner en el Backtests ( Mi broker es IG)
- Spread EEUU500 (0.6) Es correcto? En horario de 15:30 a 22:00 en 0,4 pero pongo 0.6 porque tengo operaciones por la mañana dónde el spread es 0.6
- Spread Eur/Usd Mini (1) Es correcto? Parece que varía en 0.6 y 1, pongo el 1 por precaución
Muchas gracias de antemano.
Un saludo,
Es correcto, tal vez también podría agregar AND NOT ONMARKET a la línea 17, solo para convertirlo en un hábito:
IF c1 and c0 and c00 and timeEnterAfter and TradeOn and Not OnMarket THEN
En cuanto al spread, cada instrumento es diferente y cambia a lo largo del día, por lo que sugiero usar el más alto durante su tiempo de negociación para tener su informe de acuerdo al peor de los casos.
Muchisimas gracias por su ayuda.
Más dudas:
- Para que sirve exactamente el AND NOT ONMARKET, no entiendo
- Tambien quiero añadir la condición de vender si baja del mínimo de las 20 barras anteriores a la entrada!!!
- Cómo pongo un pTrailing en función del precio de entrada. Es decir, si entro en el DAX a 15.000 para que el pTrailing sea 15.000/100
- Una vez abierta una posición con un pTrailing de 30 puntos pero que cambié a 10 si el benefio es superior a 50 puntos.
- Entrar si el precio es inferior al mínimo de los últimos 15 días en horario de 09:00 a 17:30. Con LOWEST me coje el mínimo de las 24.
MUCHAS GRACIAS DE NUEVO
Puede leer la documentación oficial en línea en https://www.prorealcode.com/prorealtime-documentation/ , consultar el manual en PDF que se encuentra aquí https://www.prorealtime.com/es/ayuda-prorealtime/visita-rapida , buscar el foro. Encontrará toda la información y ejemplos sobre lo que hacen las distintas instrucciones.
AND Not OnMarket se utiliza para:
- evite ingresar al mercado con múltiples posiciones (especialmente si no usa DEFPARAM CUMULATEORDERS = FALSE)
- en algunos casos, evite cambiar los parámetros de configuración de una operación después de ingresar al mercado (por ejemplo, StopLoss o Take Profit, etc.)
.
Para ver si cae por debajo del mínimo de 20 barras antes de la entrada tienes que decirme si quieres hacer esta comprobación cuando estés por entrar al mercado o después de haber entrado. Para el trailing stop es recomendable utilizar el código de las líneas 17 a 56 en este enlace https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/ .
Probé el trailing stop del enlace https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/
Lo probé pero NO entiendo el funcionamiento.
Ejemplo: Cuando el precio alcanza 120, el stop se establece en 105. Si el precio retrocede a 105, la posición sale con una ganancia de 5 puntos. Pero cuando se vuleve a mover el stop??? Si el precio llega a 140, la nueva parada o el precio de salida cambia a 110. Lo probé y no entiendo el cambio de paradas a medida que el precio evoluciona favorablemente.
Espero sus comentarios,
Muchas gracias
Trailingstart indica con cuántos pips de beneficio debe comenzar, luego 20 indica que debe comenzar tan pronto como, al cierre de la vela, haya al menos 20 pips de beneficio y rompa incluso la operación + pips de beneficio del paso de trailingstep. Al cierre de las velas posteriores, agrega trailingstep de ganancia (si ocurrieron).