¿Cómo codificar? - página 315

 

...

Si lo necesitas para un 0.5 fijo puedes usar MathSqrt(x)

Pero si necesitas el cálculo para la parte variable de 0.5 también puedes usar MathPow(x,0.5) (la parte de 0.5 puede ser cambiada también)

dasio:
Hola.

¿Existe una función que me permita calcular esta operación?

x^0,5 (x= valor conocido)

Y otra pregunta.

Tengo un corredor de 5 dígitos. ¿Es posible obtener sólo los primeros 4 decimales del valor conocido? Gracias

Gracias.
 
mladen:
Si lo necesitas para un valor fijo de 0.5 puedes usar MathSqrt(x) Pero si necesitas el cálculo para la parte variable de 0.5 también puedes usar MathPow(x,0.5) (la parte de 0.5 puede ser cambiada también)

Gracias por su respuesta. Funciona bien.

¿Para la segunda solicitud?

Si tengo un corredor de 5 dígitos, el código me da un privilegio con un corredor de 5 dígitos, pero lo necesito en 4 dígitos. ¿Cómo puedo cambiar el valor de 5 a 4 dígitos?

Gracias

 

dasio

Utiliza algo como esto :

price4digit = NormalizeDouble(price,4);
dasio:
Gracias por su respuesta. Funciona bien.

¿Para la segunda solicitud?

Si tengo un broker de 5 dígitos el código me da prive con broker de 5 dígitos pero lo necesito de 4 dígitos. ¿Cómo puedo cambiar el valor de 5 a 4 dígitos?

Gracias
 

Encontrar el punto de intersección

Hola,

Tengo el siguiente indicador:

#property copyright "Kalenzo"

#property link "bartlomiej.gorski@gmail.com"

#property indicator_color1 DodgerBlue

#property indicator_color2 Lime

#property indicator_buffers 2

extern int MoMPeriod = 14;

extern int MaType = MODE_EMA;

extern int MaPeriod = 50;

extern int TimeFrame = 60;

double mom[],

ema[],

momTF[],

emaTF[];

#property indicator_separate_window

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

IndicatorBuffers(4);

SetIndexBuffer(0,mom);

SetIndexBuffer(1,ema);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);

SetIndexBuffer(2,momTF);

SetIndexBuffer(3,emaTF);

IndicatorShortName("MTF Momentum "+tf());

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

//----

int bbshift,limit,limitTF;

limit=Bars;

limitTF = iBars(Symbol(),TimeFrame);

for(int i=0; i<limitTF; i++) momTF = iMomentum(Symbol(),TimeFrame,MoMPeriod,PRICE_CLOSE,i);

for(int j=0; j<limitTF; j++) emaTF[j] = iMAOnArray(momTF,0,MaPeriod,0,MaType,j);

for(int t=0; t<limit; t++)

{

bbshift = iBarShift(Symbol(),TimeFrame,Time[t]);

mom[t] = momTF;

ema[t] = emaTF;

}

//----

return(0);

}

[/PHP]

But I can't get the intersection point from this two lines with my ea, even I can't get the right value from the indicator, which is displayed.

Why?

I tried this for example:

[PHP]

x1= iCustom(NULL,0,"MOM_EMA_MTF",14,MODE_EMA,50,60,0,1);

 
mladen:
dasio

Usa algo como esto :

price4digit = NormalizeDouble(price,4);

Hola mladen,

¿es correcto como lo codifico?

Pivot = NormalizeDouble(( PDayHigh + PDayLow + Close ) / 3,4)

MathPow((MathPow(Pivot,0.5)+Número(definido)),2)

Gracias

 

...

La primera línea está bien

Una pregunta sobre esta línea :

MathPow((MathPow(Pivot,0.5)+Number(defined)),2);

¿Cuál es la intención exacta de esa línea? Tal y como está escrita devuelve el cuadrado del (raíz cuadrada del pivote + incremento definido). ¿Es eso lo que tenía en mente?

dasio:
Hola mladen,

¿es correcto como lo codifico?

Pivot = NormalizeDouble(( PDayHigh + PDayLow + Close ) / 3,4)

MathPow((MathPow(Pivot,0.5)+Número(definido)),2)

Gracias
 
mladen:
La primera línea está bien

Una pregunta sobre esta línea:

MathPow((MathPow(Pivot,0.5)+Number(defined)),2);
¿Cuál es la intención exacta de esa línea? Tal y como está escrita devuelve el cuadrado de la (raíz cuadrada del pivote + incremento definido). ¿Es eso lo que tienes en mente?

Sí, primero calcula el valor de MathPow(Pivot,0.5)+Number(defined) y después debo calcular el cuadrado del resultado.

Un ejemplo.

10 = Pivote

1 = número definido

Tengo ((10^0,5)+1)^2 El resultado es:

((3,162)+1)^2 ----> (4,162)^2------>17,324

 

Entonces todo está bien

dasio:
Sí, primero calcula el valor de MathPow(Pivot,0.5)+Number(defined) y después debo calcular el cuadrado del resultado.
 
mladen:
Entonces todo está bien

Bien, gracias.

Pero también necesito esta operación

(MathPow((MathPow((Pivot*10000),0.5)+número),2)/10000)

Pero me da un valor diferente si lo calculo manualmente.

La diferencia es alta.

Para aclarar si tengo 1,2989 como pivote necesito hacer la operación como 12989 y después de toda la operación necesito dividir el resultado por 10000.

No sé por qué me da un valor diferente

 

dasio

Desconozco la "intención" de esa línea. Matemáticamente no hay nada malo en esa línea (pon el "número" a 0 y verás que te devolverá exactamente el mismo valor que el Pivot lo que significa que funciona correctamente, por lo que si es diferente a lo que esperas, la única parte que hace la diferencia es la adición de "número"). ¿Qué es exactamente lo que intentas calcular con esa línea?

dasio:
Ok gracias.

Pero necesito también esta operación

(MathPow((MathPow((Pivot*10000),0.5)+número),2)/10000)

Pero me da un valor diferente si lo calculo manualmente.

La diferencia es alta.

para aclarar si tengo 1,2989 como pivote necesito hacer la operación como 12989 y después de toda la operación necesito dividir el resultado por 10000.

No sé por qué me da un valor diferente
Razón de la queja: