REVISAR MAXIMOS Y MINIMOS ANTERIORES ANTES DE ENTRADA LONG O SHORT
Forums › ProRealTime foro Español › Soporte ProOrder › REVISAR MAXIMOS Y MINIMOS ANTERIORES ANTES DE ENTRADA LONG O SHORT
- This topic has 3 replies, 2 voices, and was last updated 9 months ago by robertogozzi.
-
-
03/13/2024 at 11:38 AM #229683
Buenos días amigos, en especial a gente que me ayuda muchisimo en este foro como robertogozzi , GraHal y Nicolas e Ivan , sois muy valiosos para este foro.
Quiero compartir esta estrategia en el foro por si a alguien le sirve de ayuda, la parte de trailing stop es de usuario Nicolas, a quien le agredezco su ayuda.
Necesitaria por favor alguien me pueda ayudar a incluir a las condiciones Long en caso que las condiciones Long se cumplan (c1 c2 c3, etc) que antes de la entrada verifique al menos 2 los 3 máximos anteriores y que si el precio actual se encuentra a menos de por ejemplo 2% oa menos 5pt de dicho maximo la condicion de entrada sea FALSA, lo mismo pero a la inversa en las condicones SHORT.
Creo que es realmente importante que la estrategia tenga agregada esa mejora y condición para reducir esa tasa de pérdidas por malas entradas cerca de máximos o de mínimos, y evitar reducir la ganancia acumulada por esas malas entradas por no tener esa condición de entrada revisando máximos y minimos anteriores an tes de entrar.
les agradeceria mucho me podais ayudar a incluir dicha condicion al codigo
Agradecido enormemente por la ayuda que me podéis aportar para la solución del problema.
¡¡¡¡¡¡¡Muchas gracias!!!!!!!
//————————————————————————-
// Código principal : SCALPING TRAIL GOZZI
//————————————————————————-
Timeframe(default)//////// INICIO MONEY MANAGMENT /////////
IF STRATEGYPROFIT > 1000 THEN
QUIT
ENDIF
IF STRATEGYPROFIT < -200 THEN
QUIT
ENDIF
//////// FIN MONEY MANAGMENT //////////////////// INICIO HORARIOS DE TRADING ////////////
If date > 20241212 THEN // Stop the strategy after december 12, 2024
QUIT
ENDIFHoraMadrugadaInicio = 003000 // las 00:20h minutos
HoraMadrugadaFin = 073000 // las 00:20h minutosHoraDiarioInicio = 073100 // las 00:20h minutos
HoraDiarioFin = 214500 // las 00:20h minutosIF Time = 215000 THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF
//////// FIN HOARIOS DE TRADING /////////IF NOT longonmarket then
HacerTrading = 0
Alcista = 0
endif//// VARIABLES DE SISTEMA //////
EMA9 = Average[9](Close)
EMA20 = Average[20](Close)
EMA50 = Average[50](Close)VolumenAnterior = Volume[1]
RangoVelaAnterior1 = Range[1]
RangoVelaAnterior2 = Range[2]
IF close[1] > open[1] THEN
Alcista = 1
ENDIF
IF close[1] < open[1] THEN
Alcista = 0
ENDIF
NumeroEstrategia = 0//REDUNDANCIA DE TAKEPROFIT Y DE STOP LOSS POR SI HAY ALGUNA COMBINACION QUE NO SE HAGA EN LAS SIGUIENTES
MiProfit = 2
MiStop = 0.50IF NOT LONGONMARKET THEN
IF RangoVelaAnterior1 < 0.50 THEN
HacerTrading = 0
ENDIFIF RangoVelaAnterior1 >= 0.50 AND RangoVelaAnterior1 <= 0.75 AND Alcista = 1 THEN
HacerTrading = 1
MiProfit = 7
MiStop = 0.50
ENDIF
IF RangoVelaAnterior1 > 0.75 AND RangoVelaAnterior1 <= 1.25 AND Alcista = 1 THEN
HacerTrading = 1
MiProfit = 5
MiStop = 0.50
ENDIF
IF RangoVelaAnterior1 >= 1.50 AND RangoVelaAnterior2 > 2 AND Alcista = 1 THEN
HacerTrading = 7
MiProfit = 10
MiStop = 0.50
ENDIF
ENDIF////////////////////// FIN DE CONDICIONES DE RANGO Y DEFINICION DE TAKE PROFIT Y STOPS EN BASE A RANGOS DE VELA EN LA ENTRADA ///////////////////
//************************************************************************
//trailing stop function
trailingstart = 1 //trailing will start @trailinstart points profit
trailingstep = 0.75 //trailing step to move the “stoploss”//reset the stoploss value
IF NOT ONMARKET THEN
newSL=0
ENDIF//manage long positions
IF LONGONMARKET THEN
//first move (breakeven)
IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
newSL = tradeprice(1)+trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
newSL = newSL+trailingstep*pipsize
ENDIF
ENDIF//manage short positions
IF SHORTONMARKET THEN
//first move (breakeven)
IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
newSL = tradeprice(1)-trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
newSL = newSL-trailingstep*pipsize
ENDIF
ENDIF//stop order to exit the positions
IF newSL>0 THEN
SELL AT newSL STOP
EXITSHORT AT newSL STOP
ENDIFIF time >= HoraMadrugadaInicio AND time <= HoraMadrugadaFin OR time >= HoraDiarioInicio AND time <= HoraDiarioFin THEN
ENDIF
//************************************************************************Timeframe(10 second,updateonclose)
IF HacerTrading = 1 THEN
IF NOT shortonmarket AND NOT longonmarket AND NumeroEstrategia = 0 THEN
C1 = close>close[1] AND high[1] > high[2] and open>open[1]
//C2 = summation[6](close>open) > 4
C3 = EMA9 > EMA20 AND EMA20 > EMA50
C4 = Average[50](Close) < low[1]
C5 = Average[50](Close) < open[1]
C6 = Average[20](Close) < low[1]
C7 = Average[20](Close) < open[1]
C8 = Average[9](Close) < low[1]
C9 = Average[9](Close) < open[1]
C10 = Average[50](Close) < low
C11 = Average[50](Close) < open
C12 = Average[20](Close) < low
C13 = Average[20](Close) < open
C14 = Average[9](Close) < low
C15 = Average[9](Close) < openif C1 AND C3 AND C4 AND C5 AND C6 AND C7 AND C8 AND C9 AND C10 AND C11 AND C12 AND C13 AND C14 AND C15 then
BUY 1 CONTRACT at open LIMIT
SET TARGET pPROFIT 10
//SL = close / 100 * 1 //2% SL
SET STOP pLOSS 7ENDIF
ENDIFENDIF
IF HacerTrading = 1 THEN
IF NOT shortonmarket AND NOT longonmarket AND NumeroEstrategia = 0 THEN
S1 = summation[2](close<open) < 3
S2 = summation[2](close<open) > 1
S3 = EMA9 < EMA20 AND EMA20 < EMA50
S4 = Average[50](Close) > low[1]
S5 = Average[50](Close) > open[1]
S6 = Average[20](Close) > low[1]
S7 = Average[20](Close) > open[1]
S8 = Average[9](Close) > low[1]
S9 = Average[9](Close) > open[1]
S10 = Average[50](Close) > low
S11 = Average[50](Close) > open
S12 = Average[20](Close) > low
S13 = Average[20](Close) > open
S14 = Average[9](Close) > low
S15 = Average[9](Close) > openif S1 AND S2 AND S3 AND S4 AND S5 AND S6 AND S7 AND S8 AND S9 AND S10 AND S11 AND S12 AND S13 AND S14 AND S15 then
SELLSHORT 1 CONTRACT at open LIMIT
//SL = close / 100 * 1 //2% SL
SET STOP pLOSS 1.50ENDIF
ENDIFENDIF
03/13/2024 at 9:51 PM #229735Tu escribiste:
“Necesitaria por favor alguien me pueda ayudar a incluir a las condiciones Long en caso que las condiciones Long se cumplan (c1 c2 c3, etc) que antes de la entrada verifique al menos 2 los 3 máximos anteriores y que si el precio actual se encuentra a menos de por ejemplo 2% oa menos 5pt de dicho maximo la condicion de entrada sea FALSA, lo mismo pero a la inversa en las condicones SHORT.”
¿Cuántos máximos quieres comprobar, 1, 2 o 3?
¿Cómo se debe verificar un máximo? ¿Es suficiente con que sea un precio superior al anterior?
03/15/2024 at 10:07 AM #229819Buenos dias Robertogozzi gracias por tu respuesta,
Veras, 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 3:23 PM #229859 -
AuthorPosts
Find exclusive trading pro-tools on