Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 933

 
Gracias,kosmos0975!
Lo probaré. Pero me temo que no funcionará en las barras semanales, por ejemplo.
 
¿Puede decirme dónde puedo encontrar un ejemplo de código que pinte la línea del indicador en diferentes colores?
 
Leo59:
¿Puede decirme dónde puedo encontrar un ejemplo de código que pinte la línea del indicador en diferentes colores?
Tantos colores como topes. Si cambias el color, cambias el buffer. ¡Muchos ejemplos en CodeBase!
 
Cómo hacer una entrada en la línea correcta ... en el archivo tht...
 
borilunad:
Tantos colores como topes. Siempre que el color cambie, ¡cambia el buffer! Muchos ejemplos en CodeBase.
Gracias.
 
¿Qué pasa? ¿Por qué hay zonas azules que quedan fuera?
#property  indicator_separate_window
#property  indicator_buffers 3
#property   indicator_color1  Aqua
#property   indicator_width1  1
#property   indicator_color2  Red
#property   indicator_width2  1
#property   indicator_color3  Yellow
#property   indicator_width3  1

extern int       Fperiod=1;
extern int       Speriod=2;
extern int       Method=3;
extern int       PRICE_MODE=PRICE_WEIGHTED;

double   Buf0[];
double   Buf1[];                                
double   Buf2[];                                
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
   {
    SetIndexBuffer(0,Buf0);
    SetIndexBuffer(1,Buf1);
    SetIndexBuffer(2,Buf2);

    SetIndexStyle(0,DRAW_LINE);
    SetIndexStyle(1,DRAW_LINE);
    SetIndexStyle(2,DRAW_LINE);

    SetIndexEmptyValue(1,EMPTY_VALUE);   
    SetIndexEmptyValue(2,EMPTY_VALUE);   

    IndicatorShortName("Proba ");                
   
    SetIndexDrawBegin(0, 0);  
    SetIndexDrawBegin(1, 0);
    SetIndexDrawBegin(2, 0);

    return(0);
   }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
   {
    int i; 
    int limit;
    int counted_bars=IndicatorCounted();
    if(counted_bars<0) return(-1);
    if(counted_bars>0) counted_bars--;
    limit=Bars-counted_bars;
    for (i = limit;i>=0;i--)
        {  
         Buf0[i]=iMA(NULL,0,Fperiod,0,Method,PRICE_MODE,i)-iMA(NULL,0,Speriod,0,Method,PRICE_MODE,i);
         if(Buf0[i] > Buf0[i+1])
             {
              Buf1[i] = Buf0[i];
//              if(Buf0[i+1] > Buf0[i+2])
//                   Buf1[i+1] = Buf0[i+1];
//              else Buf2[i+1] = Buf0[i+1];
             }
         else
             {
              Buf2[i] = Buf0[i];
//              if(Buf0[i+1] < Buf0[i+2])
//                   Buf2[i+1] = Buf0[i+1];
//              else Buf1[i+1] = Buf0[i+1];
             }
        }              
    return(0);
   }


 
¿Es posible enlazar tres gráficos con diferentes marcos temporales en el EA? Basándose en las lecturas de los indicadores en los dos gráficos, se busca un lugar y un par de divisas para entrar, y basándose en el último tercer gráfico, se calcula una entrada, un stop y un beneficio, y se abre una posición para entrar. ¿Es técnicamente posible? ¿O es necesario crear un EA específicamente para un determinado marco temporal para que funcione en un gráfico? Para ello, no sólo hay que contar las lecturas de las barras, los ticks o las velas de los gráficos de diferentes marcos temporales, sino también analizar las lecturas de al menos dos indicadores y abrir una orden basada en estos datos.
 
Estaba escribiendo una función para la detección de atrapamoscas y se quedó atascado en algo que no entiendo. declaración if no funciona. tal vez escribí algo mal en alguna parte, quiero que usted tome una nueva mirada, porque no entiendo por qué. incluso grabó un video del depurador, que muestra que los valores son iguales, pero no funciona. por favor, poner mi cerebro en su lugar))))
{
      int size = ArrayRange(arrayMinLow,0);
      int digits = MarketInfo (symbol,MODE_DIGITS);
      
      double spreadFlat = highLine - lowLine;
      
     
      int directionFlat = -1;
      int slew = 0;
      for (int i = 0; i<size; i++){
            double hl =arrayMinLow[i][0];
            double ol = arrayMinLow[i][1];
            double cl = arrayMinLow[i][2];
            double ll = arrayMinLow[i][3];
            
            if (hl == highLine || ol == highLine){                                      //вот тут не срабатывает

                  if( directionFlat == -1 || directionFlat == 0)
                        slew++;

                  directionFlat = 1;
            }else if  (cl == lowLine|| ll ==lowLine){
               
                  if( directionFlat == -1 || directionFlat == 1)
                        slew++;               
               
                  directionFlat = 0;
               
           }
                  
      
      }
      
      if(slew >=4 )
         return true;
         
      return false;   
      
      

}




enlace de vídeo https://www.youtube.com/watch?v=k9Zo0SgrMCA
 
Deniskaaa:
¿Es posible enlazar tres gráficos con diferentes marcos temporales en el EA? Basándose en las lecturas del indicador en dos gráficos, se encuentra un lugar y un par de divisas para entrar, y basándose en el último tercer gráfico, se calcula un punto de entrada, un stop y un beneficio, y se abre una posición para entrar. ¿Es técnicamente posible? ¿O es necesario crear un Asesor Experto específicamente para un determinado marco temporal para que funcione en un gráfico? No sólo debemos contar las lecturas de las barras, los ticks o las velas de los gráficos de diferentes marcos temporales, sino analizar las lecturas de al menos dos indicadores y abrir una orden basada en el tercero.
Todo es posible. ¡Consulte la documentación o la ayuda en el MetaEditor!
 
pycha:

Hola, estaba escribiendo una función para la detección de flytags y se quedó atascado en algo que no entiendo. declaración if no funciona. tal vez escribí algo mal en alguna parte, quiero que usted tome una nueva mirada, porque no entiendo por qué. incluso grabó un video del depurador, mostrando que los valores son iguales, pero no funciona. por favor, poner mi cerebro en el lugar de))))


código:

bool  checkLine(double highLine , double lowLine, double &arrayMinLow[][5] )
{
      int size = ArrayRange(arrayMinLow,0);
      int digits = MarketInfo (symbol,MODE_DIGITS);
      
      double spreadFlat = highLine - lowLine;
      
     
      int directionFlat = -1;
      int slew = 0;
      for (int i = 0; i<size; i++){
            double hl =arrayMinLow[i][0];
            double ol = arrayMinLow[i][1];
            double cl = arrayMinLow[i][2];
            double ll = arrayMinLow[i][3];
            
            if (hl == highLine || ol == highLine){                                      //вот тут не срабатывает

                  if( directionFlat == -1 || directionFlat == 0)
                        slew++;

                  directionFlat = 1;
            }else if  (cl == lowLine|| ll ==lowLine){
               
                  if( directionFlat == -1 || directionFlat == 1)
                        slew++;               
               
                  directionFlat = 0;
               
           }
                  
      
      }
      
      if(slew >=4 )
         return true;
         
      return false;   
      
      

}





Utilice el botón SRC para pegar el código, no la imagen. Pide consejo al autor de esta idea y del vídeo.