Cambiar el código de grosor de línea

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Responder
Avatar de Usuario
rtrader
Mensajes: 611
Registrado: 07 Oct 2006 05:02
Ubicación: Argentina

Cambiar el código de grosor de línea

Mensaje por rtrader »

Alguien pude ayudarme? cómo hago para cambiar el grosor de la flecha que marca el cruce de medias?. Lo que ocurre es que en propiedades-color del indicador al cambiarlo lo hace pero si cierro el metatrader y vuelo a abrirlo me salen como estaban antes por defecto.

Código: Seleccionar todo

*/   
#property copyright "Copyright © 2005, Jason Robinson (jnrtrading)"
#property link      "http://www.jnrtrading.co.uk"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red

double CrossUp[];
double CrossDown[];
extern int FasterEMA = 4;
extern int SlowerEMA = 8;
extern bool SoundON=true;
double alertTag;
 double control=2147483647;
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0, DRAW_ARROW, EMPTY,3);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, CrossUp);
   SetIndexStyle(1, DRAW_ARROW, EMPTY,3);
   SetIndexArrow(1, 234);
   SetIndexBuffer(1, CrossDown);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int limit, i, counter;
   double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
   double Range, AvgRange;
   int counted_bars=IndicatorCounted();
//---- check for possible errors
   if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;

   limit=Bars-counted_bars;
   
   for(i = 0; i <= limit; i++) {
   
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
      {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
       
      fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

      slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);
      
      if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) {
         CrossUp[i] = Low[i] - Range*0.5;
      }
      else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) {
          CrossDown[i] = High[i] + Range*0.5;
      }
        if (SoundON==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0]){
         Alert("EMA Cross Trend going Down on ",Symbol()," ",Period());
        alertTag = Time[0];
      }
        if (SoundON==true && i==1 && CrossUp[i] < CrossDown[i] && alertTag!=Time[0]){
       Alert("EMA Cross Trend going Up on ",Symbol()," ",Period());
        alertTag = Time[0];
        } 
  }
   return(0);
}

Gracias de antemano
No intente predecir la dirección del mercado de valores, de la economía, de los tipos de interés o de las elecciones (Warren Buffet)
Avatar de Usuario
freidor3
Mensajes: 54
Registrado: 10 Ago 2009 12:14

Re: Cambiar el código de grosor de línea

Mensaje por freidor3 »

Yo salgo, entro y aún conserva el grosor.

En todo caso...

cambia
#property indicator_color1 Blue
#property indicator_color2 Red

por
#property indicator_color1 Blue
#property indicator_width1 4
#property indicator_color2 Red
#property indicator_width2 4

Para chapucillas como ésta es recomendable pasarse por http://docs.mql4.com/. A poco inglés que se sepa uno puede comprobar que no hay tantos comandos; y por ahí se puede empezar a captar el asunto.
El sabio calla, el ignorante habla... ¡Nooo! ya he tenido que abrir la boca...
Avatar de Usuario
rtrader
Mensajes: 611
Registrado: 07 Oct 2006 05:02
Ubicación: Argentina

Re: Cambiar el código de grosor de línea

Mensaje por rtrader »

freidor3 gracias hermano, ahora está bien, lo que ocurría es que cuando el indicador formaba parte de un template al cerrar el meta y volver a abrirlo quedaba por defecto, mientras que si metía el indicador al gráfico solamente al cerrar y abrir el meta seguía tal como estaba, no sé a que se deberá, pero bueno, ya lo tengo solicionado, gracias nuevamente.

Un saludo
No intente predecir la dirección del mercado de valores, de la economía, de los tipos de interés o de las elecciones (Warren Buffet)
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Metatrader 4”