matriz estática ?

 

Olá a todos,

Primeiro, obrigado a todos por todas as respostas, foi um grande aprendizado MQL4

Estou passando a entender como construir array's

Assunto:

Como armazenar sinais em uma matriz estática, por exemplo: Altos e baixos de uma série de velas, etc., eu provavelmente colocarei uma pequena linha em cima de cada alto e baixo.

Portanto, estou pensando em matriz estática[1,2,3,4,4,5,6,7].

matriz[1] = (Baixa[3] < Baixa[4] && Baixa[3] < Baixa[3]) //ou algo parecido com isto ?

Baixo[1] = matriz[1]

Low_2 = array[2] e assim por diante.

Esta seria uma maneira padrão de fazer isto ou estou muito longe?

Por favor, informe obrigado

 

Leia primeiro . . . depois leia novamente até agarrá-lo.

https://book.mql4.com/variables/arrays

Por exemplo, o primeiro elemento de um array é o elemento 0 , bit como Bars, fumy que, eh ? ;-)

 
  1. Você está muito longe.
  2. array[1,2,3,4,5,6,7] giberish
  3. array[1] = (Baixa[3] < Baixa[4] && Baixa[3]... é array a bool
  4. Low_1 = array[1] implica que o array não é um bool
  5. "armazenar sinais em uma matriz estática", por que precisa ser estático quando você pode calculá-los sempre que necessário.
 

oops eu quis dizer na matriz[1][7];

Obrigado pela resposta

Bem, depois de mais alguma leitura, sua direção e perguntas, acho que um array pode não ser o que estou tentando fazer.

Basicamente, quero aprender a criar minha própria versão definida de altos e baixos; e ser capaz de referenciá-los para um sinal, mesmo depois de uma nova forma de barras. Mas apenas algumas delas não escolho toda a história completa de altos/baixos.
Talvez eu esteja no caminho errado aqui.

Vou repensar isto um pouco mais.

Obrigado.

 
Agent86:


Basicamente, quero aprender a criar minha própria versão definida de altos e baixos; e ser capaz de referenciá-los para um sinal, mesmo depois de uma nova forma de barras. Mas apenas algumas delas não escolho toda a história completa de altos/baixos.

Por que ? Você pode explicar o que você está tentando alcançar ?
 

Acho que farei algo mais como isto:

Acho que isso faz com que este post não seja mais sobre arrays neste ponto, então vou me retrair deste questionamento até que eu possa aprender mais sobre arrays.


Obrigado.

static double Low_A;
   
   if(Low[2] < Low[2]
      && Low [2] < Low[1])
      {
      Low_A = Low[3];
      Print (Low_A + " Low_A has formed");
      }
 
RaptorUK:
Por que ? Você pode explicar o que você está tentando alcançar ?

Bem claro, na verdade não são altos e baixos de uma vela em particular, mas talvez uma série de velas.

Digamos que um exemplo poderia ser chamar uma Low_A dependendo de quantas velas eu gostaria de usar, mas poderia ser dizer que uma Low é considerada 4 velas mais altas à esquerda e 4 velas mais altas à direita, e esta vela mais baixa seria considerada uma Low_A

ou poderia mais velas, ou menos para compor uma Low ou High, e depois criar outras como esta para Highs, e Lows.
Em seguida, criar algumas funções para comparar as anteriores com as próximas Lows, e as anteriores Highs com as próximas Highs.

Depois, talvez para desenhar uma linha de tendência a partir de uma série de 2) altos/baixos ou 3/h altos/baixos ou mabe ainda mais

Ou eu poderia apenas usar como neste exemplo 1 vela que tenha 1 vela inferior à esquerda e 1 vela inferior à direita e chamar isto de baixo.

Inicialmente eu estava considerando colocar o resultado em uma matriz, mas não acho que isto fará o que eu queria, ou pelo menos não entendo bem as matrizes para determinar isso neste ponto. Mais alguma leitura, sem dúvida, vai me endireitar. HA !

Eu realmente não tinha certeza se os arrays seriam úteis para que isto armazenasse uma série de altos e baixos que eu defino.
 

Se eu imprimir baixo[2] me dá 8 dígitos ao invés de 5 dígitos, e alguns são todos 0,0000000

Provavelmente porque o tipo de dados que usei era estático duplo Low_A;

Não tenho certeza se preciso fazê-la imprimir corretamente, entretanto, com o propósito de armazenar a estática correta, não tenho certeza de quais dados usar.

 
OK, estou abandonando a matriz estática, e a dupla idéia estática

Eu preciso de um novo projeto, é óbvio que o que eu estava tentando fazer não vai funcionar corretamente e agora entendo o porquê.

Sooooo, de volta à prancheta de desenho novamente. OUCH
 

Voltar a isto,

Depois de mais algum aprendizado, eu estava me perguntando se existe mesmo um array estático, ou se é um array estático principalmente por padrão, e depois de ler os links que você forneceu, eu digo que todos são estáticos por padrão. Ótimo.


De qualquer forma, estou pensando em iFractals ao invés de tentar marcar Highs e Lows como eu os defino. Por enquanto, posso usar os Fractals até obter melhor conhecimento e mais leitura.

E quanto aos iFractals, como posso marcá-los e me referir a eles?
Eu apenas criaria iFractals adicionais e mudaria o turno e me referiria a ele dessa forma, ou o turno com iFractals ainda estará falando sobre Barras e não sobre o Fractal anterior ?

//+------------------------------------------------------------------+
//|                Support and Resistance                            |
//|                Copyright © 2004/5     Barry Stander              |
//|                http://www.4Africa.net/4meta/                     |
//+------------------------------------------------------------------+

#property copyright "Support and Resistance             Barry_Stander_4@yahoo.com"
#property link      "http://www.4Africa.net/4meta/"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

//---- buffers
double v1[];
double v2[];
double val1;
double val2;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
//----
   IndicatorBuffers(2);

   SetIndexArrow(0, 119);
   SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red);
   SetIndexBuffer(0, v1);
   SetIndexLabel(0,"Resistance");

   SetIndexArrow(1, 119);
   SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1,Blue);
   SetIndexBuffer(1, v2);
   SetIndexLabel(1,"Support");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int i=Bars;
//----
   while(i>=0)
     {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      if (val1 > 0) v1[i]=High[i];
      else          v1[i]=v1[i+1];

      val2=iFractals(NULL, 0, MODE_LOWER,i);
      if (val2 > 0) v2[i]=Low[i];
      else          v2[i]=v2[i+1];
      
      i--;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+


Alguém escreveu este código e eu entendo como ele funciona, mas não tenho certeza se entendo como eu selecionaria da matriz um suporte/resistência Alto e/ou Baixo.

Quero dizer, eu certamente posso fazer uma função que abriria um negócio se (val1 > imacd) ou algo assim, mas e sobre os iFractals anteriores, ou digamos 2 de volta,

seria simplesmente uma questão de turno?

Ou será que preciso colocar isto em algum outro tipo de disposição?

Por favor, informe

Obrigado

 
Há 2 amortecedores (matrizes) que seguram os valores de preço dos Fractais . . val1 & val2. Se você quiser encontrar valores fractais anteriores, simplesmente faça um loop, incrementando um valor de deslocamento, e verifique os valores de buffer até encontrar valores que não sejam VAZIO_VALOR ( https://docs.mql4.com/customind/SetIndexEmptyValue )
Razão: