Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1136

 
Iurii Tokman:

Aqui está o código que traça uma linha em M5:

      int Price_high  = iHighest(Symbol(), 0, MODE_HIGH, 11, 1);
       int Price_low   = iLowest(Symbol(), 0, MODE_LOW, 11, 1);
            
       ObjectCreate("TrendLine", OBJ_TREND, 0, Time[11], NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits), Time[1], 
                     NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits));

Gostaria que no início de cada hora fosse traçada uma linha em M5 que não estivesse ligada às anteriores. Isto é, apenas uma linha horizontal, não uma linha quebrada. A linha é o preço médio da hora anterior.

E se removermos a propriedade *feixe* desta linha, seria perfeito.

 
      
int Price_high  = iHighest(Symbol(), 0, MODE_HIGH, 11, 1);
int Price_low   = iLowest(Symbol(), 0, MODE_LOW, 11, 1);

if(!NewBar(PERIOD_H1)) return;
            
ObjectCreate("TrendLine", OBJ_TREND, 0, Time[11], NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits), Time[1], 
              NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits));


//---
//---
bool NewBar(ENUM_TIMEFRAMES TF = 0)
  {
   static datetime NewTime=0;
   if(NewTime!=iTime(Symbol(),TF,0))
     {
      NewTime=iTime(Symbol(),TF,0);
      return(true);
     }
   return(false);
  }
//----
 
Iurii Tokman:

Não funciona. Só desenha uma linha no arranque e é só isso.

void OnTick()
{
  
int Price_high  = iHighest(Symbol(), 0, MODE_HIGH, 11, 1);
int Price_low   = iLowest(Symbol(), 0, MODE_LOW, 11, 1);

if(!NewBar(PERIOD_H1)) return;
            
ObjectCreate("TrendLine", OBJ_TREND, 0, Time[11], NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits), Time[1], 
              NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits));

}
//+------------------------------------------------------------------+ 
//---
bool NewBar(ENUM_TIMEFRAMES TF = 0)
  {
   static datetime NewTime=0;
   if(NewTime!=iTime(Symbol(),TF,0))
     {
      NewTime=iTime(Symbol(),TF,0);
      return(true);
     }
   return(false);
  }
//----
//+------------------------------------------------------------------+
 
Snajper007:

Não funciona. Só desenha uma linha no arranque e é só isso.

Quantos são necessários?

 
Iurii Tokman:

De quanto é que precisa?

Gostaria que no início de cada hora fosse traçada uma linha em M5 que não estivesse ligada às anteriores. Isto é, apenas uma linha horizontal, não uma linha quebrada. A linha é o preço médio para a hora anterior.
 
Snajper007:
Gostaria de ver uma linha desenhada no início de cada hora em M5 que não estará ligada às anteriores. Isto é, apenas uma linha horizontal, não uma linha quebrada. A linha é o preço médio da hora anterior.

a meio do bar H1 ?

 
Iurii Tokman:

a meio do bar H1 ?

Sim, apenas em M5.
 
Snajper007:
Sim, apenas na M5.

fazer um desenho como deve ser, e não com uma linha

 
Iurii Tokman:

fazer um desenho como deve ser, e não com uma linha

Aqui está
Arquivos anexados:
 
Snajper007:
***

A propósito, porquê desenhar exactamente com o objecto gráfico da Linha Horizontal? Não seria melhor fazê-lo com um indicador e estiloDRAW_ARROW?

Algo parecido com esta exposição:

Resistência e Apoio 2

Razão: