Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 933

 
Obrigado,kosmos0975!
Vou tentar. Mas temo que não funcione em bares semanais, por exemplo.
 
Você pode me dizer onde posso encontrar um exemplo de código que pinta a linha indicadora em cores diferentes?
 
Leo59:
Você pode me dizer onde posso encontrar um exemplo de código que pinta a linha indicadora em cores diferentes?
Tantas cores, tantos tampões! Se você mudar a cor, você muda o buffer! Muitos exemplos em CodeBase!
 
Como fazer uma entrada na linha certa ... no arquivo...
 
borilunad:
Tantas cores, tantos tampões! Desde que a cor mude, você muda o buffer! Muitos exemplos em CodeBase!
Obrigado.
 
O que está errado? Por que existem áreas azuis deixadas de fora?
#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);
   }


 
É possível ligar três gráficos com diferentes prazos na EA? Com base nas leituras dos indicadores nos dois gráficos, um lugar e um par de moedas a entrar é pesquisado, e com base no último terceiro gráfico, uma entrada, parada e lucro são calculados, e uma posição é aberta para entrada. Isto é tecnicamente possível? Ou você precisa criar uma EA especificamente para um determinado período de tempo para trabalhar em um gráfico? Isto requer não apenas a contagem das leituras das barras, carrapatos ou candelabros de gráficos de diferentes intervalos de tempo, mas também a análise das leituras de pelo menos dois indicadores e a abertura de uma ordem com base nestes dados.
 
eu estava escrevendo uma função para detectar a armadilha de mosca e fiquei preso em algo que não entendo. se a declaração não funcionar. talvez eu tenha escrito algo errado em algum lugar, quero que você dê uma nova olhada, porque não entendo por quê. eu até gravei um vídeo do depurador, que mostra que os valores são iguais, mas não funciona. por favor, coloque meu cérebro de volta no 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;   
      
      

}




link do vídeo https://www.youtube.com/watch?v=k9Zo0SgrMCA
 
Deniskaaa:
É possível ligar três gráficos com diferentes prazos na EA? Com base nas leituras dos indicadores em dois gráficos, é encontrado um lugar e um par de moedas para entrar, e com base no último terceiro gráfico, um ponto de entrada, parada e lucro são calculados, e uma posição é aberta para entrada. Isto é tecnicamente possível? Ou você precisa criar um Expert Advisor especificamente para um determinado período de tempo para trabalhar em um gráfico? Não devemos contar apenas as leituras das barras, carrapatos ou candelabros de gráficos de diferentes intervalos de tempo, mas analisar as leituras de pelo menos dois indicadores e abrir uma ordem baseada no terceiro.
Tudo é possível! Veja a documentação ou ajuda no MetaEditor!
 
pycha:

Olá, eu estava escrevendo uma função para detectar flytags e fiquei preso em algo que não entendo. se a declaração não funcionar. talvez eu tenha escrito algo errado em algum lugar, eu quero que você dê uma nova olhada, porque não entendo por quê. eu até gravei um vídeo do depurador, mostrando que os valores são iguais, mas não funciona. por favor, coloque meu cérebro no 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;   
      
      

}





Use o botão SRC para colar o código, não a imagem! Peça conselhos ao autor desta idéia e do vídeo!
Razão: