[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 221

 

Esta es una de las funciones que implementan los Asesores Expertos. Por supuesto, usted puede escribir un EA, que contendrá sólo un trailing stop (y, por supuesto, tales EAs ya están escritos en grandes cantidades)

En el terminal MT hay un trailing stop estándar, no asociado a ningún Asesor Experto.

 
alsu:


El terminal MT tiene trailing interno, no relacionado con ningún Asesor Experto.

Gracias. Eso es exactamente lo que estaba preguntando. Otra pregunta entonces. ¿Cuánto tiempo ha tardado en entender MQL4? No me refiero a convertirme en un profesional y escribir un Asesor Experto completamente impresionante. No me refiero a convertirme en un profesional para escribir un EA genial de la A a la Z, pero al menos saber qué retocar cuando se escribe uno ya existente. Para que me quede claro: en esta etapa estoy dominando a los operadores. Hace dos semanas que empecé a estudiarlos. ¿Qué posibilidades crees que hay? Repito. El profesor no está para preguntar a nadie.

Agradezco las respuestas.

 

Chicos, esto es lo peor!!(((

Quiero elegir una empresa de corretaje extranjero, y abrir una cuenta en el extranjero ... No puedo encontrar .... en las críticas, una sensación de que todas las estafas y "sharashka Kontora" ....((

Ayuda chicos con MT4.... Estaré muy agradecido!!!!!

 
Como si el nuevo Pinocho buscara un Campo de las Maravillas fiable. No seas ridículo).
 

Indicador de una línea.

#property indicator_separate_window    
#property indicator_buffers 1        
#property indicator_color1 Aqua      

  int index;
  double TickPrice[1000];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer(0,TickPrice);          
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1); 
   return;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index++;

   return;                         
  }
//--------------------------------------------------------------------

Pregunta.

¿Por qué dibuja una línea de derecha a izquierda?

 

¿Qué te parece esto?

#property indicator_separate_window    
#property indicator_buffers 1        
#property indicator_color1 Aqua      

  int index=1000;
  double TickPrice[1000];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer(0,TickPrice);          
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1); 
   return;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index--;

   return;                         
  }
//--------------------------------------------------------------------
 

Hola, podríais decirme dónde encontrar un indicador que vuelva a dibujar las barras diarias para que empiecen a una hora diferente.

Por ejemplo: La hora del terminal es 00:00. En los parámetros de entrada del indicador ponemos: +4. Ahora las barras diarias comienzan a las 4:00.

Gracias de antemano.

 
DhP:

¿Y si haces esto?


Sí, así está mejor. Empezó a dibujar en la dirección correcta. Pero si el índice..., un día se convierte en índice==0 y todo se apaga.

¿Cómo hacer que el movimiento continúe?

 
artmedia70:
¿Dónde puedo aumentar el tamaño de la matriz? ¿Dónde escribo el valor? ( función ArrayResize())


clasificación en matrices por tipos de oreder y posición trabajados:

int OrderStatus() {
   int z1=1, z2=1, z3=1, z4=1;
   if (B>0) {ArrayResize(TicketB,B);}
   if (S>0) {ArrayResize(TicketS,S);}
   if (BS>0) {ArrayResize(TicketBS,BS);}
   if (SS>0) {ArrayResize(TicketSS,SS);}
   int i, k=OrdersTotal();
      for (i=1; i<=k; i++) {
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketBS[z1]=OrderTicket();
            z1++;
            }
            if (OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketSS[z2]=OrderTicket();
            z2++;
            }
            if (OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketB[z3]=OrderTicket();
            z3++;
            }
            if (OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketS[z4]=OrderTicket();
            z4++;
            }
         }
      }
}

pero no puedo ordenarlas más por rentabilidad de las posiciones de compra y venta: inserta ceros:

int OrderVBezubitok() {
   int k1=0, k2=0;
   ArrayResize(TicketBez,B+S);
   ArrayResize(TicketTral,B+S);
   int i;
   if (ArraySize(TicketB)>0) {
      for (i=1; i<ArraySize(TicketB)+1; i++) {
            OrderSelect(TicketB[i], SELECT_BY_TICKET, MODE_TRADES);
            if (OrderProfit()>0) {k1++; TicketTral[k1]=TicketB[i];} 
            else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }
   if (ArraySize(TicketS)>0) {
      for (i=1; i<ArraySize(TicketS)+1; i++) {
            OrderSelect(TicketS[i], SELECT_BY_TICKET, MODE_TRADES);
            if (OrderProfit()>0) {k1++; TicketTral[k1]=TicketB[i];} 
            else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }      
}

¿Por qué?

 

¡Hola amigos!

No sé si estoy en el lugar correcto, este es mi primer mensaje en el foro.

Estoy pidiendo ayuda.

Quizá alguien se haya encontrado con algo similar.

El problema es el siguiente. Estoy escribiendo un indicador para encontrar el máximo y el mínimo del precio para un período. Quiero dividir max por min y mostrarlo en separate_window.

Pero la ventana está vacía:

Al sumar, restar, multiplicar, etc. MÁXIMO y MÍNIMO el indicador se muestra normalmente.

Aquí está el código. No es mucho en absoluto.

#property indicator_separate_window
#property indicator_buffers 3

#property indicator_color1 MediumSpringGreen
#property indicator_color2 Crimson
#property indicator_color3 LightGray

#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1

extern int Buy_bars = 20;           //Количество баров для открытия позиции
extern int Sell_bars = 23;          //Количество баров для закрытия позиции  

double   buf_0[],                   //индикаторныЙ массив максимумов 
         buf_1[],                   //индикаторныЙ массив минимумов 
         buf_sr[] ;                 //индикаторныЙ массив средних значений
//extern int Shift = 0;

int init()
  {
   SetIndexBuffer (0, buf_0);
   SetIndexStyle (0, DRAW_LINE);
   SetIndexLabel (0, "Maximum");
   SetIndexShift (0, 0);
   
   SetIndexBuffer (1, buf_1);
   SetIndexStyle (1, DRAW_LINE);
   SetIndexLabel (1, "Minimum");
   SetIndexShift (1, 0);
   
   SetIndexBuffer (2, buf_sr);
   SetIndexStyle (2, DRAW_LINE);
   SetIndexLabel (2, "Srednyaya");
   SetIndexShift (2, 0);
   
   return;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i, k ,t;
   int    counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1;
   while (i >= 0)
   {
      double max = 0;
      double min = 999999999999.99;
   
   for (k=i ; k<=i+Buy_bars-1; k++)
      {
      if (High[k] > max) max = High[k];
      }
   for (t=i; t<=i+Sell_bars-1; t++)  
      {
      if (Low[t] < min) min = Low[t];
      }
        
   i--;
   

   buf_sr[i] = (max/min);
   }
   return;
  }
//+------------------------------------------------------------------+

Señala el error.

Gracias de antemano.