porcentaje positivo y negativo

Forums ProRealTime foro Español Soporte ProBuilder porcentaje positivo y negativo

Viewing 10 posts - 1 through 10 (of 10 total)
  • #215446

    Buenas en el indicador que mando que es distancia entre EMA20 y el precio en tres temporalidades y te señale la temporalidad que menos porcentaje tenga, hay un error que no se solucionar y es que cuando esta por debajo o por encima ema20 del precio (depende como ordenes la formula de la distancia) hay un valor que es negativo y te da la distancia del que mas lejos negativo esta, si hay alguno en las temporalidades. Entonces habría que hacer algo para que aunque sea positivo o negativo la distancia mas cercana que te cuente es la que este mas cercana a 0. Un saludo

     

    #215461

    Usar ABS():

     

    #215557

    Gracias Roberto, pero como podría ahora ordenarlas de menor a mayor todos los resultados a parte de indicarme siempre la menor se que esta la función ArraySort pero no se introducirla en el código. Un saludo

    #215585

    ArrySort solo se puede usar con matrices, lea https://www.prorealcode.com/documentation/arraysort/ .

    #215784

    Buenas Roberto ya he echo lo que me indicaste de añadir el arraysort, pero me encuentro con el siguiente problema: En el indicador me marca las distancias ordenadas de menor a mayor pero yo lo que quiero es que me aparezca la temporalidad mas cercana de la distancia no la distancia en si, te adjunto la foto de lo que me aparece y de lo que quiero que sea para que me entiendas. Un saludo

     

     

    TIMEFRAME(1mn)
    ema201 = ExponentialAverage[20](close)
    precio1 = close
    distancia1 = ABS(ema201 – precio1) /ema201 *100

    TIMEFRAME(2mn)
    ema202 = ExponentialAverage[20](close)
    precio2 = close
    distancia2 = ABS(ema202 – precio2) /ema202 *100

    TIMEFRAME(3mn)
    ema203 = ExponentialAverage[20](close)
    precio3 = close
    distancia3 = ABS(ema203 – precio3) /ema203 *100

    TIMEFRAME(4mn)
    ema204 = ExponentialAverage[20](close)
    precio4 = close
    distancia4 = ABS(ema204 – precio4) /ema204 *100

    TIMEFRAME(5mn)
    ema205 = ExponentialAverage[20](close)
    precio5 = close
    distancia5 = ABS(ema205 – precio5) /ema205 *100
    TIMEFRAME(1mn)

    $distancia[0] = distancia1
    $distancia[1] = distancia2
    $distancia[2] = distancia3
    $distancia[3] = distancia4
    $distancia[4] = distancia5

    ArraySort($distancia, ASCEND)

    for i=0 to 4 do
    DRAWTEXT($distancia[i], barindex,i,sansserif,standard,14)
    next

    return

    #215797

    Prueba esto:

    #215827

    Buenas Roberto ya he probado el indicador, pero lo que necesito es que me señalice el time frame de menor a mayor en el mismo indicador, es decir si por ejemplo en la temporalidad de 1 minuto la distancia es de 2.093, 2 minutos 3.679, 3 minutos 1.453, 4 minutos 5.654, 5 minutos 6.789. En el indicador tendria que aparecer asi:

    3 minutos

    1 minutos

    2 minutos

    4 minutos

    5 minutos

    Es decir ordenadas las temporalidades de menor a mayor según la distancia pero en el mismo indicador como en la imagen que te adjunto

     

    #215845

    Ahi esta:

     

    #216112

    Gracias Roberto por tus respuestas, he mejorado el código par que lo compruebes y al añadirle que cuando el volumen sea positivo se coloree en verde y cuando sea negativo en rojo no lo hace a la misma vez que el volumen o no lo hace correctamente, que fallo podría tener el código para que no haga su función. Te lo mando. Un saludo

    defparam drawonlastbaronly = true
    TIMEFRAME(1mn)
    EMA201 = ExponentialAverage[20](close)
    precio1 = close
    distancia1 = abs((ema201/precio1)-1)*100
    c1=close >= close[1]
    TIMEFRAME(2mn)
    ema202 = ExponentialAverage[20](close)
    precio2 = close
    distancia2 = abs((ema202/precio2)-1)*100
    c2=close >= close[1]
    TIMEFRAME(3mn)
    ema203 = ExponentialAverage[20](close)
    precio3 = close
    distancia3 = abs((ema203/precio3)-1)*100
    c3=close >= close[1]
    TIMEFRAME(4mn)
    ema204 = ExponentialAverage[20](close)
    precio4 = close
    distancia4 = abs((ema204/precio4)-1)*100
    c4=close >= close[1]
    TIMEFRAME(5mn)
    ema205 = ExponentialAverage[20](close)
    precio5 = close
    distancia5 = abs((ema205/precio5)-1)*100
    c5=close >= close[1]
    TIMEFRAME(6mn)
    ema206 = ExponentialAverage[20](close)
    precio6 = close
    distancia6 = abs((ema206/precio6)-1)*100
    c6=close >= close[1]
    TIMEFRAME(7mn)
    ema207 = ExponentialAverage[20](close)
    precio7 = close
    distancia7 = abs((ema207/precio7)-1)*100
    c7=close >= close[1]
    TIMEFRAME(default)

    menordistancia = min(distancia1,min(distancia2,min(distancia3,min(distancia4,min(distancia5,min(distancia6,distancia7))))))

    TF1 = 0
    TF2 = 0
    TF3 = 0
    TF4 = 0
    TF5 = 0
    TF6 = 0
    TF7 = 0
    //
    D1 = distancia1
    D2 = distancia2
    D3 = distancia3
    D4 = distancia4
    D5 = distancia5
    D6 = distancia6
    D7 = distancia7

    r=204
    g=0
    b=0

    r1=204
    g1=0
    b1=0

    r3=204
    g3=0
    b3=0

    r4=204
    g4=0
    b4=0

    r5=204
    g5=0
    b5=0

    r6=204
    g6=0
    b6=0

    r7=204
    g7=0
    b7=0

    //
    menordistancia1 = min(D1,min(D2,min(D3,min(D4,min(D5,min(D6,D7))))))
    IF menordistancia1 = D1 and c1 THEN
    TF1 = 1 //1-minute TF
    D1 = 9999999
    r=0
    g=180
    b=0
    ELSIF menordistancia1 = D1 THEN
    TF1 = 1 //1-minute TF
    D1 = 9999999
    //———————————————————————

    ELSIF menordistancia1 = D2 and c1 THEN
    TF1 = 2 //2-minute TF
    D2 = 9999999
    r=0
    g=180
    b=0
    ELSIF menordistancia1 = D2 THEN
    TF1 = 2 //2-minute TF
    D2 = 9999999
    //———————————————————————

    ELSIF menordistancia1 = D3 and c1 THEN
    TF1 = 3 //3-minute TF
    D3 = 9999999
    r=0
    g=180
    b=0
    ELSIF menordistancia1 = D3 THEN
    TF1 = 3 //3-minute TF
    D3 = 9999999
    //———————————————————————

    ELSIF menordistancia1 = D4 and c1 THEN
    TF1 = 4 //4-minute TF
    D4 = 9999999
    r=0
    g=180
    b=0
    ELSIF menordistancia1 = D4 THEN
    TF1 = 4 //4-minute TF
    D4 = 9999999
    //———————————————————————

    ELSIF menordistancia1 = D5 and c1 THEN
    TF1 = 5 //5-minute TF
    D5 = 9999999
    r=0
    g=180
    b=0
    ELSIF menordistancia1 = D5 THEN
    TF1 = 5 //5-minute TF
    D5 = 9999999

    //———————————————————————

    ELSIF menordistancia1 = D6 and c1 THEN
    TF1 = 6 //6-minute TF
    D6 = 9999999
    r=0
    g=180
    b=0
    ELSIF menordistancia1 = D6 THEN
    TF1 = 6 //6-minute TF
    D6 = 9999999
    //———————————————————————

    ELSIF menordistancia1 = D7 and c1 THEN
    TF1 = 7 //7-minute TF
    D7 = 9999999
    r=0
    g=180
    b=0
    ELSIF menordistancia1 = D7 THEN
    TF1 = 7 //7-minute TF
    D7 = 9999999
    //———————————————————————

    ENDIF
    //
    menordistancia2 = min(D1,min(D2,min(D3,min(D4,min(D5,min(D6,D7))))))
    IF menordistancia2 = D1 and c2 THEN
    TF2 = 1 //1-minute TF
    D1 = 9999999
    r1=0
    g1=180
    b1=0

    ELSIF menordistancia2 = D1 THEN
    TF2 = 1 //1-minute TF
    D1 = 9999999
    //———————————————————————

    ELSIF menordistancia2 = D2 and c2 THEN
    TF2 = 2 //2-minute TF
    D2 = 9999999
    r1=0
    g1=180
    b1=0
    ELSIF menordistancia2 = D2 THEN
    TF2 = 2 //2-minute TF
    D2 = 9999999
    //———————————————————————

    ELSIF menordistancia2 = D3 and c2 THEN
    TF2 = 3 //3-minute TF
    D3 = 9999999
    r1=0
    g1=180
    b1=0
    ELSIF menordistancia2 = D3 THEN
    TF2 = 3 //3-minute TF
    D3 = 9999999
    //———————————————————————

    ELSIF menordistancia2 = D4 and c2 THEN
    TF2 = 4 //4-minute TF
    D4 = 9999999
    r1=0
    g1=180
    b1=0
    ELSIF menordistancia2 = D4 THEN
    TF2 = 4 //4-minute TF
    D4 = 9999999
    //———————————————————————

    ELSIF menordistancia2 = D5 and c2 THEN
    TF2 = 5 //5-minute TF
    D5 = 9999999
    r1=0
    g1=180
    b1=0
    ELSIF menordistancia2 = D5 THEN
    TF2 = 5 //5-minute TF
    D5 = 9999999

    //———————————————————————

    ELSIF menordistancia2 = D6 and c2 THEN
    TF2 = 6 //6-minute TF
    D6 = 9999999
    r1=0
    g1=180
    b1=0
    ELSIF menordistancia2 = D6 THEN
    TF2 = 6 //6-minute TF
    D6 = 9999999
    //———————————————————————

    ELSIF menordistancia2 = D7 and c2 THEN
    TF2 = 7 //7-minute TF
    D7 = 9999999
    r1=0
    g1=180
    b1=0
    ELSIF menordistancia2 = D7 THEN
    TF2 = 7 //7-minute TF
    D7 = 9999999
    //———————————————————————

    ENDIF
    //
    menordistancia3 = min(D1,min(D2,min(D3,min(D4,min(D5,min(D6,D7))))))
    IF menordistancia3 = D1 and c3 THEN
    TF3 = 1 //1-minute TF
    D1 = 9999999
    r3=0
    g3=180
    b3=0
    ELSIF menordistancia3 = D1 THEN
    TF3 = 1 //1-minute TF
    D1 = 9999999
    //———————————————————————
    ELSIF menordistancia3 = D2 and c3 THEN
    TF3 = 2 //2-minute TF
    D2 = 9999999
    r3=0
    g3=180
    b3=0
    ELSIF menordistancia3 = D2 THEN
    TF3 = 2 //2-minute TF
    D2 = 9999999
    //———————————————————————
    ELSIF menordistancia3 = D3 and c3 THEN
    TF3 = 3 //3-minute TF
    D3 = 9999999
    r3=0
    g3=180
    b3=0
    ELSIF menordistancia3 = D3 THEN
    TF3 = 3 //3-minute TF
    D3 = 9999999
    //———————————————————————
    ELSIF menordistancia3 = D4 and c3 THEN
    TF3 = 4 //4-minute TF
    D4 = 9999999
    r3=0
    g3=180
    b3=0
    ELSIF menordistancia3 = D4 THEN
    TF3 = 4 //4-minute TF
    D4 = 9999999
    //———————————————————————
    ELSIF menordistancia3 = D5 and c3 THEN
    TF3 = 5 //5-minute TF
    D5 = 9999999
    r3=0
    g3=180
    b3=0
    ELSIF menordistancia3 = D5 THEN
    TF3 = 5 //5-minute TF
    D5 = 9999999
    //———————————————————————
    ELSIF menordistancia3 = D6 and c3 THEN
    TF3 = 6 //6-minute TF
    D6 = 9999999
    r3=0
    g3=180
    b3=0
    ELSIF menordistancia3 = D6 THEN
    TF3 = 6 //6-minute TF
    D6 = 9999999
    //———————————————————————
    ELSIF menordistancia3 = D7 and c3 THEN
    TF3 = 7 //7-minute TF
    D7 = 9999999
    r3=0
    g3=180
    b3=0
    ELSIF menordistancia3 = D7 THEN
    TF3 = 7 //7-minute TF
    D7 = 9999999
    //———————————————————————
    ENDIF
    //
    menordistancia4 = min(D1,min(D2,min(D3,min(D4,min(D5,min(D6,D7))))))
    IF menordistancia4 = D1 and c4 THEN
    TF4 = 1 //1-minute TF
    D1 = 9999999
    r4=0
    g4=180
    b4=0
    ELSIF menordistancia4 = D1 THEN
    TF4 = 1 //1-minute TF
    D1 = 9999999
    //———————————————————————
    ELSIF menordistancia4 = D2 and c4 THEN
    TF4 = 2 //2-minute TF
    D2 = 9999999
    r4=0
    g4=180
    b4=0
    ELSIF menordistancia4 = D2 THEN
    TF4 = 2 //2-minute TF
    D2 = 9999999
    //———————————————————————
    ELSIF menordistancia4 = D3 and c4 THEN
    TF4 = 3 //3-minute TF
    D3 = 9999999
    r4=0
    g4=180
    b4=0
    ELSIF menordistancia4 = D3 THEN
    TF4 = 3 //3-minute TF
    D3 = 9999999
    //———————————————————————
    ELSIF menordistancia4 = D4 and c4 THEN
    TF4 = 4 //4-minute TF
    D4 = 9999999
    r4=0
    g4=180
    b4=0
    ELSIF menordistancia4 = D4 THEN
    TF4 = 4 //4-minute TF
    D4 = 9999999
    //———————————————————————
    ELSIF menordistancia4 = D5 and c4 THEN
    TF4 = 5 //5-minute TF
    D5 = 9999999
    r4=0
    g4=180
    b4=0
    ELSIF menordistancia4 = D5 THEN
    TF4 = 5 //5-minute TF
    D5 = 9999999
    //———————————————————————
    ELSIF menordistancia4 = D6 and c4 THEN
    TF4 = 6 //6-minute TF
    D6 = 9999999
    r4=0
    g4=180
    b4=0
    ELSIF menordistancia4 = D6 THEN
    TF4 = 6 //6-minute TF
    D6 = 9999999
    //———————————————————————
    ELSIF menordistancia4 = D7 and c4 THEN
    TF4 = 7 //7-minute TF
    D7 = 9999999
    r4=0
    g4=180
    b4=0
    ELSIF menordistancia4 = D7 THEN
    TF4 = 7 //7-minute TF
    D7 = 9999999
    //———————————————————————
    ENDIF
    //
    menordistancia5 = min(D1,min(D2,min(D3,min(D4,min(D5,min(D6,D7))))))
    IF menordistancia5 = D1 and c5 THEN
    TF5 = 1 //1-minute TF
    D1 = 9999999
    r5=0
    g5=180
    b5=0
    ELSIF menordistancia5 = D1 THEN
    TF5 = 1 //1-minute TF
    D1 = 9999999
    //———————————————————————
    ELSIF menordistancia5 = D2 and c5 THEN
    TF5 = 2 //2-minute TF
    D2 = 9999999
    r5=0
    g5=180
    b5=0
    ELSIF menordistancia5 = D2 THEN
    TF5 = 2 //2-minute TF
    D2 = 9999999
    //———————————————————————
    ELSIF menordistancia5 = D3 and c5 THEN
    TF5 = 3 //3-minute TF
    D3 = 9999999
    r5=0
    g5=180
    b5=0
    ELSIF menordistancia5 = D3 THEN
    TF5 = 3 //3-minute TF
    D3 = 9999999
    //———————————————————————
    ELSIF menordistancia5 = D4 and c5 THEN
    TF5 = 4 //4-minute TF
    D4 = 9999999
    r5=0
    g5=180
    b5=0
    ELSIF menordistancia5 = D4 THEN
    TF5 = 4 //4-minute TF
    D4 = 9999999
    //———————————————————————
    ELSIF menordistancia5 = D5 and c5 THEN
    TF5 = 5 //5-minute TF
    D5 = 9999999
    r5=0
    g5=180
    b5=0
    ELSIF menordistancia5 = D5 THEN
    TF5 = 5 //5-minute TF
    D5 = 9999999
    //———————————————————————
    ELSIF menordistancia5 = D6 and c5 THEN
    TF5 = 6 //6-minute TF
    D6 = 9999999
    r5=0
    g5=180
    b5=0
    ELSIF menordistancia5 = D6 THEN
    TF5 = 6 //6-minute TF
    D6 = 9999999
    //———————————————————————
    ELSIF menordistancia5 = D7 and c5 THEN
    TF5 = 7 //7-minute TF
    D7 = 9999999
    r5=0
    g5=180
    b5=0
    ELSIF menordistancia5 = D7 THEN
    TF5 = 7 //7-minute TF
    D7 = 9999999
    //———————————————————————
    ENDIF
    //
    menordistancia6 = min(D1,min(D2,min(D3,min(D4,min(D5,min(D6,D7))))))
    IF menordistancia6 = D1 and c6 THEN
    TF6 = 1 //1-minute TF
    D1 = 9999999
    r6=0
    g6=180
    b6=0
    ELSIF menordistancia6 = D1 THEN
    TF6 = 1 //1-minute TF
    D1 = 9999999
    //———————————————————————
    ELSIF menordistancia6 = D2 and c6 THEN
    TF6 = 2 //2-minute TF
    D2 = 9999999
    r6=0
    g6=180
    b6=0
    ELSIF menordistancia6 = D2 THEN
    TF6 = 2 //2-minute TF
    D2 = 9999999
    //———————————————————————
    ELSIF menordistancia6 = D3 and c6 THEN
    TF6 = 3 //3-minute TF
    D3 = 9999999
    r6=0
    g6=180
    b6=0
    ELSIF menordistancia6 = D3 THEN
    TF6 = 3 //3-minute TF
    D3 = 9999999
    //———————————————————————
    ELSIF menordistancia6 = D4 and c6 THEN
    TF6 = 4 //4-minute TF
    D4 = 9999999
    r6=0
    g6=180
    b6=0
    ELSIF menordistancia6 = D4 THEN
    TF6 = 4 //4-minute TF
    D4 = 9999999
    //———————————————————————
    ELSIF menordistancia6 = D5 and c6 THEN
    TF6 = 5 //5-minute TF
    D5 = 9999999
    r6=0
    g6=180
    b6=0
    ELSIF menordistancia6 = D5 THEN
    TF6 = 5 //5-minute TF
    D5 = 9999999
    //———————————————————————
    ELSIF menordistancia6 = D6 and c6 THEN
    TF6 = 6 //6-minute TF
    D6 = 9999999
    r6=0
    g6=180
    b6=0
    ELSIF menordistancia6 = D6 THEN
    TF6 = 6 //6-minute TF
    D6 = 9999999
    //———————————————————————
    ELSIF menordistancia6 = D7 and c6 THEN
    TF6 = 7 //7-minute TF
    D7 = 9999999
    r6=0
    g6=180
    b6=0
    ELSIF menordistancia6 = D7 THEN
    TF6 = 7 //7-minute TF
    D7 = 9999999
    //———————————————————————
    ENDIF
    //
    menordistancia7 = min(D1,min(D2,min(D3,min(D4,min(D5,min(D6,D7))))))
    IF menordistancia7 = D1 and c7 THEN
    TF7 = 1 //1-minute TF
    D1 = 9999999
    r7=0
    g7=180
    b7=0
    ELSIF menordistancia7 = D1 THEN
    TF7 = 1 //1-minute TF
    D1 = 9999999
    //———————————————————————
    ELSIF menordistancia7 = D2 and c7 THEN
    TF7 = 2 //2-minute TF
    D2 = 9999999
    r7=0
    g7=180
    b7=0
    ELSIF menordistancia7 = D2 THEN
    TF7 = 2 //2-minute TF
    D2 = 9999999
    //———————————————————————
    ELSIF menordistancia7 = D3 and c7 THEN
    TF7 = 3 //3-minute TF
    D3 = 9999999
    r7=0
    g7=180
    b7=0
    ELSIF menordistancia7 = D3 THEN
    TF7 = 3 //3-minute TF
    D3 = 9999999
    //———————————————————————
    ELSIF menordistancia7 = D4 and c7 THEN
    TF7 = 4 //4-minute TF
    D4 = 9999999
    r7=0
    g7=180
    b7=0
    ELSIF menordistancia7 = D4 THEN
    TF7 = 4 //4-minute TF
    D4 = 9999999
    //———————————————————————
    ELSIF menordistancia7 = D5 and c7 THEN
    TF7 = 5 //5-minute TF
    D5 = 9999999
    r7=0
    g7=180
    b7=0
    ELSIF menordistancia7 = D5 THEN
    TF7 = 5 //5-minute TF
    D5 = 9999999
    //———————————————————————
    ELSIF menordistancia7 = D6 and c7 THEN
    TF7 = 6 //6-minute TF
    D6 = 9999999
    r7=0
    g7=180
    b7=0
    ELSIF menordistancia7 = D6 THEN
    TF7 = 6 //6-minute TF
    D6 = 9999999
    //———————————————————————
    ELSIF menordistancia7 = D7 and c7 THEN
    TF7 = 7 //7-minute TF
    D7 = 9999999
    r7=0
    g7=180
    b7=0
    ELSIF menordistancia7 = D7 THEN
    TF7 = 7 //7-minute TF
    D7 = 9999999
    //———————————————————————
    ENDIF

    DrawText(“#TF1#”,BarIndex,3.5,Dialog,Bold,20)COLOURED(r,g,b)
    DrawText(“#TF2#”,BarIndex,3.0,Dialog,Bold,20)COLOURED(r1,g1,b1)
    DrawText(“#TF3#”,BarIndex,2.5,Dialog,Bold,20)COLOURED(r3,g3,b3)
    DrawText(“#TF4#”,BarIndex,2.0,Dialog,Bold,20)COLOURED(r4,g4,b4)
    DrawText(“#TF5#”,BarIndex,1.5,Dialog,Bold,20)COLOURED(r5,g5,b5)
    DrawText(“#TF6#”,BarIndex,1.0,Dialog,Bold,20)COLOURED(r6,g6,b6)
    DrawText(“#TF7#”,BarIndex,0.5,Dialog,Bold,20)COLOURED(r7,g7,b7)

    DrawText(“#menordistancia1#”,BarIndex+ 1,3.5,Dialog,Bold,20)
    DrawText(“#menordistancia2#”,BarIndex+ 1,3.0,Dialog,Bold,20)
    DrawText(“#menordistancia3#”,BarIndex+ 1,2.5,Dialog,Bold,20)
    DrawText(“#menordistancia4#”,BarIndex+ 1,2.0,Dialog,Bold,20)
    DrawText(“#menordistancia5#”,BarIndex+ 1,1.5,Dialog,Bold,20)
    DrawText(“#menordistancia6#”,BarIndex+ 1,1.0,Dialog,Bold,20)
    DrawText(“#menordistancia7#”,BarIndex+ 1,0.5,Dialog,Bold,20)

    return

    #216271

    Ya solucionado. Gracias

    1 user thanked author for this post.
Viewing 10 posts - 1 through 10 (of 10 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login