[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 264

 

Você pode me dizer como atribuir o tempo da linha indicadora val1[]. Ou me diga como fazer e o que usar porque não consigo entender. Indicador Laguerre.

i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
         

   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   if(limit>CountBars)
      limit=CountBars;
  
   for(int c=1;c<limit;c++)
        
{if(val1[c]>0.45)
  // присваиваем время;}

Por exemplo, quando a linha val1[c] cruza 0,45 para cima o valor de tempo é definido na variável TimeBegin e quando cruza para baixo o valor de tempo é definido na variável TimeEnd. E assim por diante através de todo o gráfico.

A idéia é que, quando a linha cruza 0,45 para cima e depois ela cruza 0,45 para baixo, para este período, conte pontos no gráfico (Quantos pontos tem o indicador máximo dado para este sinal). Espero ter sido capaz de explicar.

Arquivos anexados:
 
VeyRON123:
Existe alguma maneira de desconectar o MT4 da internet sem desligar a internet em seu computador?
hrenfx 20.03.2011 16:18

Desconecte de seu corretor através da caixa de seleção "proxy" nas configurações do terminal. Um movimento e você está offline ou online.

 
Olá, você poderia me dizer por que a função OrderSend padrão não funciona ? Basta pegar o código fonte do tutorial neste site, mas nada acontece. Quando adicionei a saída de erro, ele mostrou 4109 - cadeia não inicializada em uma matriz...
 
Obrigado pelas dicas, vou dar uma olhada...
 
Golden-dark:
Olá, você poderia me dizer por que a função OrderSend padrão não funciona ? Basta pegar o código fonte do tutorial deste site, mas nada acontece. Quando adicionei a saída de erro, ele mostrou 4109 - cadeia não inicializada em uma matriz...
me mostre o código completo
 

Saudações camaradas!

Pode me dizer qual poderia ser o erro no seguinte código?

//+------------------------------------------------------------------+
//|                                                         BB_k.mq4 |
//|                                                     |
//|                                                          no link |
//+------------------------------------------------------------------+
#property copyright "123"
#property link      "no link"

#property indicator_separate_window
#property indicator_buffers 1

#property indicator_color1 MediumSpringGreen

#property indicator_width1 1

double   buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {

   SetIndexBuffer (0, buf_0);
   SetIndexStyle (0, DRAW_LINE);
   SetIndexLabel (0, "Koefficient");
   SetIndexShift (0, 0);

   return;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i;
   int    counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1;
   
   while (i>=0)
   {
      double x1 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 1, i); //Верхняя полоса
      double x2 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 2, i); //Нижняя полоса
   
      buf_0[i] = x1 / x2;
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+

E a essência é a seguinte: quero um indicador que mostre uma linha de valores dividindo a Banda Bollinger superior pela Banda Bollinger inferior.

Mas não há resultado.

A janela indicadora está vazia:

Agradecemos antecipadamente se alguém puder ajudar!

 
ramirez17:

Saudações camaradas!

Pode me dizer qual poderia ser o erro no seguinte código?

E a essência é a seguinte: quero um indicador que mostre uma linha de valores dividindo a Banda Bollinger superior pela Banda Bollinger inferior.

Mas não há resultado.

A janela indicadora está vazia:

Agradecemos antecipadamente se alguém puder ajudar!

buf_0[i] = x1 / x2;

você tem x2=0 nas barras mais esquerdas. E dividir por zero não é uma coisa boa...

 
ilunga:

você tem x2=0 nas barras mais esquerdas. E dividir por zero não é uma coisa boa...


O que você pode fazer, por exemplo, para evitar isso?
 
ramirez17:

O que você pode fazer, por exemplo, para evitar isso?
if (x2 == 0) buf_0[i] = 0;
else buf_0[i] = x1 / x2;
É melhor evitar que isso aconteça de forma alguma.
 
Você pode me dar uma dica? Há duas condições, para comprar e para vender. Depois de pegar um sinal falso para vender, por exemplo para comprar, o consultor especializado começa a abrir a próxima posição novamente por este sinal falso e novamente pega um falso sinal. Como devo fazer minha EA esperar pelo sinal na direção oposta após a perda e não abrir pelo falso sinal novamente? Obrigado!