¿Cómo codificar? - página 328

 
mladen:
porque con el indicador personalizado puedes guardar estados (tendencias) entre los dos ticks, y cuando usas iMA no puedes (solo un ejemplo)

Así que teóricamente debería ser capaz de trabajar si reemplazo el indicador ecuatorial estocástico con un indicador iMA en mi programación de EA?

Saludos

Terrance

 
tkuan77:
Así que teóricamente debería poder funcionar si reemplazo el indicador ecuatorial estocástico por un indicador iMA en la programación de mi EA?

Saludos

Terrance

Terrance

En mi experiencia, cuando las condiciones que deben cumplirse son un poco más complicadas o incluyen la herencia de estados anteriores lo mejor que puedes hacer para el EA es un indicador personalizado con esas condiciones. Te ayudará de múltiples maneras, pero dos son quizás las más importantes: simplificará el código de tu EA (ya que una parte de la lógica será transferida a ese indicador personalizado) y lo que es probablemente aún más importante, podrás comprobar "de un vistazo" cuáles serán los resultados de tales condiciones (ya que tienes un indicador que te mostrará inmediatamente si las entradas y salidas serían rentables o no)

Es sólo un poco más de codificación, pero le da mucha más libertad y velocidad en las pruebas y ahorra tiempo al comprobar algunas condiciones que después de todo resultan ser poco rentables

 
mladen:
Terrance

En mi experiencia, cuando las condiciones que deben cumplirse son un poco más complicadas o incluyen la herencia de estados anteriores, lo mejor que puedes hacer para el EA es un indicador personalizado con esas condiciones. Te ayudará de múltiples maneras pero 2 son quizás las más importantes: simplificará el código de tu EA (ya que una parte de la lógica se transferirá a ese indicador personalizado) y lo que es probablemente aún más importante, podrás comprobar "de un vistazo" cuáles serán los resultados de dichas condiciones (ya que tienes un indicador que te mostrará inmediatamente si las entradas y salidas serían rentables o no)

Es un poco más de codificación pero te da mucha más libertad y rapidez en las pruebas y te ahorra tiempo a la hora de comprobar algunas condiciones que al final resultarían poco rentables

Gracias mladen, he conseguido encontrar una forma de evitarlo pero al probar el EA me he dado cuenta de que mi Estocástico está mostrando un Mínimo Fijo de 18,93016 y un Máximo Fijo de 82,92942.

Estoy tratando de conseguir un mínimo fijo de 0 y un máximo fijo de 100. ¿Hay alguna forma de conseguirlo?

Muchas gracias y saludos

Terrance

 
tkuan77:
Gracias mladen, me las arreglé para encontrar una manera alrededor de ella, pero al probar el EA me di cuenta de que mi estocástico está mostrando mínimo fijo de 18.93016 y máximo fijo de 82.92942.

Estoy tratando de obtener un mínimo fijo de 0 y un máximo fijo de 100. ¿Hay alguna forma de conseguirlo?

Muchas gracias y saludos

Terrance

Terrance

Me temo que sin un ejemplo no entiendo a qué te refieres con "mínimo fijo" y "máximo fijo" de un estocástico. El estocástico, por su naturaleza de cálculo está acotado a 0 y 100 y sólo depende de los propios datos y de los precios elegidos si alcanzará esos mínimos y máximos (aunque muy raramente si se utiliza el campo de precio bajo/alto para el estocástico. Usa close/close para el campo de precio y entonces podrás alcanzar el 0 y el 100)

 

Hola,

Intento codificar un indicador que me muestre el número de barras consecutivas de la misma dirección antes de las barras abiertas reales.

Tengo un problema cuando cambio el tf y cuando se abren nuevas barras. No se actualiza correctamente el número.

¿Pueden ayudarme?

Gracias

Archivos adjuntos:
 
dasio:
Hola,

Intento codificar un indicador que me muestre el número de barras consecutivas de la misma dirección antes de las barras abiertas reales.

Tengo un problema cuando cambio el tf y cuando se abren nuevas barras. No se actualiza correctamente el número.

¿Me pueden ayudar?

Gracias

dasio

Prueba con otra lógica (como el ejemplo de abajo)

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 LimeGreen

#property indicator_width1 2

double count[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init() { SetIndexBuffer(0,count); return(0); }

int deinit() { return(0); }

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

//

//

//

//

//

for(int i=limit; i>=0; i--)

{

count = count;

if (Close>Open) if (count<0) count = 1; else count +=1;

if (Close0) count = -1; else count -=1;

}

return(0);

}
 
mladen:
dasio

Pruebe una lógica diferente (como el ejemplo de abajo)

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 LimeGreen

#property indicator_width1 2

double count[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init() { SetIndexBuffer(0,count); return(0); }

int deinit() { return(0); }

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

//

//

//

//

//

for(int i=limit; i>=0; i--)

{

count = count;

if (Close>Open) if (count<0) count = 1; else count +=1;

if (Close0) count = -1; else count -=1;

}

return(0);

}

De acuerdo. Gracias. Lo probaré.

 

Bien.

Ahora codifico lo que necesito. Sólo un problema. El número está en formato x.00000000 . ¿Es posible tenerlo sin dígitos como 1, 2, 3? Gracias

Archivos adjuntos:
 
dasio:
Ok. Ahora codifico lo que necesito. Sólo un problema. El número está en formato x.00000000 . ¿Es posible tenerlo sin dígitos como 1, 2, 3? Gracias

dasio

Simplemente reemplazar

NormalizeDouble(MathAbs(count),1)[/CODE]

with

[CODE]DoubleToStr(MathAbs(count),0)
 
mladen:
dasio

Simplemente sustituye

NormalizeDouble(MathAbs(count),1)[/CODE]

with

[CODE]DoubleToStr(MathAbs(count),0)

Es correcto -.-"

Gracias.