Guardar 3 maximos y minimos anteriores y revisar antes de entrada LONG
Forums › ProRealTime foro Español › Soporte ProOrder › Guardar 3 maximos y minimos anteriores y revisar antes de entrada LONG
- This topic has 8 replies, 4 voices, and was last updated 1 month ago by
jvsanmillan.
-
-
03/15/2024 at 10:10 AM #229821
Buenos dias amigos,
Vereis, tengo una estrategia que funciona bien salvo cuando no se encuentra resistencias en el camino, coge 2 puntos de profit y sale del mercado.
El problema, es cuando la entrada es buena, pero el sistema automatico no esta teniendo en cuenta que muy cerca de la entrada Long, hay varias resistencias del precio anteriores en zig zag, y entra muy cerca de esas resistencias y el precio casi con seguridad se da la vuelta en mi contra entrando en perdidas recien entrada la orden.
Mi idea para encontrar una solucion al tema, es ir almacennando continuamente las ultimas 3 resistencias de maximos decrecientes, tal y como os adjunto en el dibujo en la imagen, y si se me cumple la condicion de entrada al mercado en Long cuando el precio cruce por encima la media de 200, entonces que evalue primero si el precio actual antes de la entrada long se encuentra por ejemplo a menos del 2% del precio actual, y si es asi pues que no entre, ya que teniendo una resistencia tan cerca de los maximos decrecientes anteriores es muy peligroso.
¿Alguien sabe como podria crear dicha condicion?
CREO QUE SERIA ALGO ASI:
ARRAY3MaximosDecrecientesaAnteriores = (maximo1, Maximo2, maximo3)
PrecioActual = close
Condicion2PorCientoArray = NO SE COMO BUSCAR EN EL ARRAY SI EL PRECIO ACTUAL ESTA A 2% DE ALGUNOS DE LOS 3 VALORES DENTRO DEL ARRAY
IF C1 AND NOT Condicion2PorCientoArray THEN
BUY 1 Contract at open
ENDIF
ADJUNTO UNA IMAGEN FOTO DE AYUDA DE MI PROBLEMA.
MUCHAS GRACIAS COMO SIEMPRE!!!!!!!!
03/15/2024 at 1:33 PM #229850Hola
Con esto podrás localizar le valor de los 3 últimos máximos. Ajustando el parámetro length tendrás los pivots high.12345678910111213//---------------------Inputs------------------------------lenght = 20//-----Calculate pivots high------------------------------------------if high < high[lenght] and highest[lenght](high)<high[lenght] and high[lenght]>highest[lenght](high)[lenght+1] then$ph[lastset($ph)+1]=high[lenght]$phx[lastset($phx)+1]=barindex[lenght]endifprint $ph[max(0,lastset($ph))]print $ph[max(0,lastset($ph)-1)]print $ph[max(0,lastset($ph)-2)]return $ph[max(0,lastset($ph))]03/15/2024 at 1:35 PM #229851Se me olvidaba. Para los pivot low se hace exactamente igual.
1234if low > low[lenght] and lowest[lenght](low) > low[lenght] and low[lenght] < lowest[lenght](low)[lenght+1] then$pl[lastset($pl)+1] = low[lenght]$plx[lastset($plx)+1] = barindex[lenght]endif03/15/2024 at 4:40 PM #22986108/25/2025 at 11:59 AM #250044Hi, from this topic I have designed a system which “buy” when price crosses over the latest minimum and close it when price crosses over the highest maximum. System works short changing the steps told before.But, the question is that, I cannot accomplish that the price buys in the latest minimum price and short in the highest maximum:Can anyone give me a hand?Hola, a partir de este tema, diseñé un sistema que compra cuando el precio supera el mínimo más reciente y cierra cuando supera el máximo más alto. El sistema funciona en corto siguiendo los pasos descritos anteriormente.
Pero la pregunta es que no puedo lograr que el precio compre en el mínimo más reciente y venda en corto en el máximo más alto.
¿Alguien puede ayudarme?
///// 3 minimun/maximum
defparam cumulateorders = false // No permite ordenes acumuladas
defparam preloadbars = 1000 // Precarga del histórico de velas
prd= 30
ph1 = high < high[prd]
ph2 = highest[prd](high) < high[prd]
ph3 = high[prd] > highest[prd](high)[prd+1]
////////pivotlow
pl1 = low > low[prd]
pl2 = lowest[prd](low) > low[prd]
pl3 = low[prd] < lowest[prd](low)[prd+1]
// Condiciones para entrada de posiciones LARGAS
IF NOT LONGONMARKET AND close crosses OVER lowest[prd](low)[prd+1] THEN
BUY 1 CONTRACTS AT MARKET nextbaropen
ENDIF
// Condiciones de salida de posiciones largas
If LONGONMARKET AND close > highest[prd](high)[prd+1] THEN
SELL AT MARKET
ENDIF
// Condiciones para entrada de posiciones SHORT
IF NOT shortOnMarket AND close crosses under highest[prd](high[1])[prd+1] THEN
sellSHORT 1 CONTRACTS AT MARKET nextbaropen
ENDIF
// Condiciones de salida de posiciones LONG
If SHORTONMARKET AND close < lowest[prd](low)[prd+1] THEN
exitshort AT MARKET
ENDIF
08/25/2025 at 2:54 PM #250045Publica solo en el idioma del foro en el que publicas. Por ejemplo, inglés solo en foros en inglés y español solo en foros en español
Gracias 🙂
08/25/2025 at 5:13 PM #250048¿Por qué utilizas esta línea para COMPRAR?
1IF NOT LONGONMARKET AND close crosses OVER lowest[prd](low)[prd+1] THENMientras que para VENDER utilizas esto:
1IF NOT shortOnMarket AND close crosses under highest[prd](high[1])[prd+1] THENExiste la diferencia de [1] con el precio máximo, comparado con el precio mínimo anterior:
1[1]08/25/2025 at 5:17 PM #250049De todos modos, añade estas dos líneas al final de tu código. Te ayudarán a verificar que las entradas sean correctas:
12graphonprice lowest[prd](low)[prd+1] AS "Low" coloured("Red")graphonprice highest[prd](high[1])[prd+1] AS "High" coloured("Blue")1 user thanked author for this post.
08/25/2025 at 7:15 PM #250058Al hilo de tus preguntas:
- IF NOT LONGONMARKET AND close crosses OVER lowest[prd](low)[prd+1] THEN
Con esta linea lo que quiero es comprar cuando el cierre del precio cruce al alza el ultimo minimo de los tres que este sistema tiene en cuenta.
2. IF NOT shortOnMarket AND close crosses under highest[prd](high[1])[prd+1] THEN
Con esta linea lo que quiero es vender cuando el cierre del precio cruce A LA BAJA el ultimo MAXIMO de los tres que este sistema tiene en cuenta.
-
AuthorPosts
Find exclusive trading pro-tools on