Añadir color a un indicador - página 2

 

Todavía no he descubierto los búferes de los indicadores,

pero el siguiente código hace lo que quiero, mostrar el color de la barra actual y de la pasada Heiken Ashi.

Lo que no hace es ponerlo en una ventana separada, y mostrarlo SOLO debajo de la barra actual.

¿Es eso posible? ¿O todavía tengo que averiguar el búfer del indicador?

Se trata de un novato muy verde... gracias por la paciencia.

int inicio()

{

ObjectsDeleteAll();

// borrar el gráfico antes de dibujar

// 5 min de corriente

double open.5.0 =iCustom(NULL,1, "Heiken Ashi",0,2,0); //Apertura anterior

double close.5.0 =iCustom(NULL,1, "Heiken Ashi",0,3,0); //Cierre anterior


bool Up.5.0 = (close.5.0>open.5.0);

bool Bajada.5.0 = (close.5.0<open.5.0);

// 5 min pasados

double open.5.1 =iCustom(NULL,1, "Heiken Ashi",0,2,1); /Apertura anterior

double close.5.1 =iCustom(NULL,1, "Heiken Ashi",0,3,1); //Cierre anterior

bool Subir.5.1 = (cerrar.5.1>abrir.5.1);

bool Bajar.5.1 = (cerrar.5.1<abrir.5.1);


ObjectCreate("square1",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.001, 0, Bid-0.001);

if(Down.5.0 == 1) ObjectSet("square1",OBJPROP_COLOR,Red);


ObjectCreate("square1",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.001, 0, Bid-0.001);

if(Down.5.0 == 0) ObjectSet("square1",OBJPROP_COLOR,White);


ObjectCreate("square2",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.0015, 0, Bid-0.0015);

if(Down.5.1 == 1) ObjectSet("square2",OBJPROP_COLOR,Red);


ObjectCreate("square2",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.0015, 0, Bid-0.0015);

if(Down.5.1 == 0) ObjectSet("square2",OBJPROP_COLOR,White);


return(0);

}

 

Por favor, utilice esto para publicar el código . . hace que sea más fácil de leer.

 
mrchuckw:

Todavía no he descubierto los búferes de los indicadores,

pero el siguiente código hace lo que quiero, mostrar el color de la barra actual y de la pasada Heiken Ashi.

Lo que no hace es ponerlo en una ventana separada, y mostrarlo SOLO debajo de la barra actual.

¿Es eso posible? ¿O todavía tengo que averiguar el búfer del indicador?

Creo que tendrías que dibujar un indicador en la ventana separada para conseguir la ventana en primer lugar y así poder añadir los objetos a ella...
 

algo así como

double adUpBuffer[],
       adDnBuffer[];
//---- indicator colors
color  cDirection[2]={LimeGreen,FireBrick};
string sDirection[2]={"up", "down"};
int    iSquare=110;
double dGap=10*Point
//+------------------------------------------------------------------+
//   Custom indicator initialization function                        |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   IndicatorBuffers(2);
   for(int i=0;i<2;i++){
   SetIndexStyle(i,DRAW_ARROW,clrDirection[i]);
   SetIndexArrow(i,iSquare);
   SetIndexDrawBegin(i,12);
   SetIndexLabel(i,sDirection[i]);}
//---- 2 indicator buffers mapping
   SetIndexBuffer(0,adUpBuffer);
   SetIndexBuffer(1,adDnBuffer);
//---- initialization done
   return(0);
  }


      if(Up.5.0)
           adUpBuffer[i]=Low[i]-dGap;
      else adDnBuffer[i]=NULL;
      if(Dn.5.0)
           adDnBuffer[i]=High[i]+dGap;}
      else adDnBuffer[i]=NULL;} 
 

No soy bueno con los indicadores... echa un vistazo a esto a ver si te da lo que necesitas...

Archivos adjuntos:
ashi1.mq4  3 kb
 

ok..estoy trabajando en ello...pero asumes que sé MUCHO más de lo que sé.

Adjunto todo mi programa de indicadores hasta ahora. ¿Cómo podría poner tu código en él? O creo todo un programa nuevo?

He intentado meterlo como he podido, pero no consigo compilar. No le gusta el doble dGap=10*Punto incluso después de poner un ; tras él.

Y hubo una tonelada de otros errores de compilación. Supongo que soy lo suficientemente denso como para no saber qué hacer ahora.

Archivos adjuntos:
objects2.mq4  3 kb
 
mrchuckw:

ok..estoy trabajando en ello...pero asumes que sé MUCHO más de lo que sé.

Adjunto todo mi programa de indicadores hasta ahora. ¿Cómo podría poner tu código en él? O creo todo un programa nuevo?

He intentado meterlo como he podido, pero no consigo compilar. No le gusta el doble dGap=10*Punto incluso después de poner un ; tras él.

Y hubo una tonelada de otros errores de compilación. Supongo que soy lo suficientemente denso como para no saber qué hacer ahora.

Simplemente descargue mi código, cópielo en su estructura de directorios de MT4 en Indicadores. detenga y reinicie MT4 y luego agregue el Indicador a un gráfico... si está usando los buffers del Indicador no usa objetos.
 

¿dónde puedo descargar su código?

¿ves lo denso que soy?

 
mrchuckw:

¿dónde puedo descargar su código?

¿ves lo denso que soy?

Se adjunta a mi post, un par de posts más arriba... ashi1.mq4
 

esto es casi perfecto. He estado jugando con él, y teniendo una pelota.

Creo que podría haber asesinado, pero ahora tengo que poner los cuadrados en una ventana separada.

Esa parte funciona perfectamente. Ahora... No puedo averiguar cómo tener todos los cuadrados en una línea perfecta.

Porque, quiero poner otra línea debajo de esa. Creo que puedo averiguar cómo hacerlo... al menos me divertiré intentándolo.

La nueva línea será un marco de tiempo más grande. Y la tercera línea sería otro marco de tiempo más grande.

Así es como se ve tu ea después de que he jugado con él. Me puedes decir como poner el cuadrado en una línea recta. ?

Gracias

ps... Llevo un rato jugando con esto, y no consigo averiguar cómo poner una segunda y tercera línea, y hacerlas rectas.

Si me pudieras ayudar con eso te lo agradecería. El segundo archivo es mi intento de la segunda línea.

Archivos adjuntos:
ashi1_1.mq4  3 kb
ashi1-a.mq4  3 kb