Take Profit en indicador

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #151568 quote
    jovibilbo
    Participant
    Junior

    Buenas tardes, tengo algún problema a la hora de incorporar un Take Profit en un indicador. Resulta que algunas veces funciona y otras no. he repasado el codigo y no soy capaz de encontrar donde esta el error. En la foto marco el lugar donde ha fallado.

    Gracias de antemano por la ayuda

    #151582 quote
    robertogozzi
    Moderator
    New

    ¿Por qué falló? ¿

    Qué debería hacer exactamente el indicador?

    Si publica el código de trabajo es mejor, a partir de la foto no se puede reconstruir nada.

    #151587 quote
    jovibilbo
    Participant
    Junior

    Hola Roberto, ha fallado porque ha llegado al take profit pero no ha saltado la señal de cierre como en la entrada anterior.

    I1=WEIGHTEDAVERAGE[100](close)
    I2=AVERAGE[200](CLOSE)
    MEDC=EXPONENTIALAVERAGE[8]
    MEDL=EXPONENTIALAVERAGE[26]
    maxi=highest[D](close)
    mini=lowest[D](close)
    atr=AverageTrueRange[20](close)
    
    //Parametros para empezar a marcar las señales
    c1=I1>I2 and MEDC>MEDL AND MEDC>MEDC[1] AND MEDL>MEDL[1] AND LOW>MEDC
    //////////////////////////////////////////////////////
    
    Aviso=0
    if  c1 then
    Aviso=0.1
    endif
    if aviso=0.1 and dentro=0 then
    drawarrow (barindex, medc-atr/5) coloured (0,51,255)
    endif
    
    c3=(aviso=0.1 or aviso[1]=0.1 or aviso[2]=0.1 or aviso[3]=0.1)
    
    entrada=0
    if c3 and close<medc then
    entrada=0.1
    endif
    
    StopL=LOW-4*ATR
    OBJ=HIGH+2*ATR
    
    if entrada=0.1 AND DENTRO=0 then
    drawarrowUP (barindex, low-atr/5) coloured (51,153,0)
    drawtext ("Stop=#stopl#", barindex+5, stopl-atr/2)
    drawsegment (barindex, obj, barindex+10, obj) coloured (255,204,0)
    drawtext ("T.Profit=#OBJ#", barindex+10, obj+atr/2)
    DENTRO=1
    endif
    IF DENTRO THEN
    CONTADOR=1+CONTADOR[1]
    TRAILSTOP=HIGHEST[CONTADOR](STOPL)
    ENDIF
    S1=CLOSE<STOPL[1]
    S2=HIGH>=OBJ[1]
    //CIERRE=CLOSE<STOPL[1] OR HIGH>=OBJ[1]
    CIERRE=S1 OR S2
    
    if CIERRE AND DENTRO then
    drawARROWDOWN (barindex, HIGH+atr/2) coloured (255,0,0)
    TRAILSTOP=0
    TAKEPROFIT=0
    STOPL=0
    OBJ=0
    DENTRO=0
    ENDIF
    
    return entrada AS "LONG",TRAILSTOP AS "STOP"
    #151588 quote
    jovibilbo
    Participant
    Junior

    Este es el código entero, no se si era eso a lo que te referias.

    Gracias de todas formas.

    #151591 quote
    robertogozzi
    Moderator
    New

    cual es el valor de D?

    #151593 quote
    robertogozzi
    Moderator
    New

    Necesito una explicación de dónde se imprimirán los valores SL y TP.

    #151604 quote
    jovibilbo
    Participant
    Junior

    d=30

    Tanto el stoploss como el take profit van escritos en el grafico.

    A ver si así te sirve

    #151613 quote
    robertogozzi
    Moderator
    New

    Deberían escribirse en el gráfico, pero ¿dónde?

    Para comprobar si su código está bien, necesito saber qué hace; de lo contrario, está bien para mí.

    En la foto de su primera publicación, encerró en un círculo algo en amarillo que, en su opinión, no estaba bien. Necesito saber POR QUÉ no encajaba, ¿dónde debería haberse impreso ese texto o línea?

    #151636 quote
    jovibilbo
    Participant
    Junior

    Ante todo, agradecerle las molestias que se está tomando.

    A ver si me explico, el indicador marca una señal de aviso, con la flecha azul lateral, cuando se cumplen las condiciones marcadas. Si en las 3 proximas velas se da la condición de entrada, un cierre por debajo de la mediacorta, se activa la señal de entrada, y se debería generar una flecha de color verde y un stop loss, marcado con puntos blancos, en el precio del minimo previo-4atr y un take profit, marcado con la linea naranja, en el máximo previo+2atr.

    Si bien, el precio llega o al take profit o al stop loss, deberia aparecer una flecha azul hacia abajo y reiniciar los calculos.

    En la primera señal funciona correctamente, pero en la zona que le he marcado en el primer grafico, con circulo naranja, el precio llega al take profit, pero este no se ejecuta y continua marcando el stop, debiendo haberse cerrado y reiniciado el cálculo.

    Espero haberme explicado y resuelto sus dudas.

    #151935 quote
    jovibilbo
    Participant
    Junior

    Lo que quiero es programar algo parecido a esto que marca la foto.

    #151937 quote
    JC_Bywan
    Moderator
    Master

    ( Estamos moviendo este tema del foro “nuevos miembros ¡Bienvenidos!” al foro “soporte probuilder” )

    #152217 quote
    jovibilbo
    Participant
    Junior

    Ya veo q en primer lugar el indicador sale desde la media y no desde 0, por otro lado, se pueden dibujar las flechas más grandes o más pequeñas?

    Lo he intentado de la misma manera q los textos pero no lo acepta.

    Gracias y un saludo

    #152231 quote
    robertogozzi
    Moderator
    New

    Lo siento, pero aún no he podido analizarlo, lo haré en los próximos días. Ten un poco más de paciencia 🙂

    #152260 quote
    jovibilbo
    Participant
    Junior

    Si, tranquilo. Muchas Gracias.

    #152483 quote
    robertogozzi
    Moderator
    New

    Ahi esta:

    D = 30
    I1=WEIGHTEDAVERAGE[100](close)
    I2=AVERAGE[200](CLOSE)
    MEDC=EXPONENTIALAVERAGE[8]
    MEDL=EXPONENTIALAVERAGE[26]
    maxi=highest[D](close)
    mini=lowest[D](close)
    atr=AverageTrueRange[20](close)
     
    //Parametros para empezar a marcar las señales
    c1=I1>I2 and MEDC>MEDL AND MEDC>MEDC[1] AND MEDL>MEDL[1] AND LOW>MEDC
    //////////////////////////////////////////////////////
     
    Aviso=0
    if  c1 then
    Aviso=0.1
    endif
    if aviso=0.1 and dentro=0 then
    drawarrow (barindex, medc-atr/5) coloured (0,51,255)
    endif
     
    c3=(aviso=0.1 or aviso[1]=0.1 or aviso[2]=0.1 or aviso[3]=0.1)
     
    entrada=0
    if c3 and close<medc then
    entrada=0.1
    endif
    IF DENTRO = 0 THEN
    StopL=LOW-4*ATR
    OBJ=HIGH+2*ATR
    ENDIF
    if entrada=0.1 AND DENTRO=0 then
    drawarrowUP (barindex, low-atr/5) coloured (51,153,0)
    drawtext ("Stop=#stopl#", barindex+5, stopl-atr/2)
    drawsegment (barindex, obj, barindex+10, obj) coloured (255,204,0)
    drawtext ("T.Profit=#OBJ#", barindex+10, obj+atr/2)
    DENTRO=1
    endif
    IF DENTRO THEN
    CONTADOR=1+CONTADOR[1]
    TRAILSTOP=HIGHEST[CONTADOR](STOPL)
    
    S1=CLOSE<STOPL[1]
    S2=HIGH>=OBJ[1]
    //CIERRE=CLOSE<STOPL[1] OR HIGH>=OBJ[1]
    CIERRE=S1 OR S2
    ENDIF 
    if CIERRE AND DENTRO then
    drawARROWDOWN (barindex, HIGH+atr/2) coloured (255,0,0)
    TRAILSTOP=0
    TAKEPROFIT=0
    STOPL=0
    OBJ=0
    DENTRO=0
    CIERRE =0
    ENDIF
     
    return entrada AS "LONG",TRAILSTOP AS "STOP"

    Agregué D a la línea 1.

    Puse las líneas 29 y 30 dentro de IF … ENDIF para ser ejecutadas SOLO cuando la variable DENTRO es falsa .

    Las líneas 43, 44, 45 y 46 las pongo dentro de IF … ENDIF para ser ejecutadas SOLO cuando la variable DENTRO es verdadera.

    Agregué la línea 55 (pero no creo que esto sea importante).

Viewing 15 posts - 1 through 15 (of 19 total)
  • You must be logged in to reply to this topic.

Take Profit en indicador


Soporte ProBuilder

New Reply
Author
author-avatar
jovibilbo @jovibilbo Participant
Summary

This topic contains 18 replies,
has 4 voices, and was last updated by jovibilbo
5 years, 1 month ago.

Topic Details
Forum: Soporte ProBuilder
Language: Spanish
Started: 11/25/2020
Status: Active
Attachments: 5 files
Logo Logo
Loading...