matriz estática ? - página 5

 
AHHHHHHHHH! Agora ele me diz LOL

Ok aqui está o que eu consegui algo um pouco melhor com alguns resultados, eu não entendo completamente os resultados, mas acho que posso descobrir a partir daí e entender porque eu NUNCA poderia obter um resultado

Obrigado

//+------------------------------------------------------------------+
//|                                                  Agent86_5min.mq4 |
//|                                                    Unfinished POS |
//|                                    
//+------------------------------------------------------------------+
#property copyright "Unfinished POS by Agent86"


//---- input parameters
extern double    TakeProfit=20.0;
extern double    Lots=0.1;
extern double    StopLoss=15.0;
extern int MagicNumber=123486;

double v1[5];
double v2[];
double v3[];
double val1;
double val2;
double val3;


//++++ These are adjusted for 5 digit brokers.

int     pips2points;    // slippage  3 pips    3=points    30=points
double  pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int     Digits.pips;    // DoubleToStr(dbl/pips2dbl, Digits.pips)

    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   if (Digits == 5 || Digits == 3)
   {    // Adjust for five (5) digit brokers.
      pips2dbl    = Point*10; pips2points = 10;   Digits.pips = 1;
   } 
   else 
    {    
      pips2dbl    = Point;    pips2points =  1;   Digits.pips = 0; 
    }
    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
     
   
    
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return(0);
  }
   
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  
  
   double   faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1), //MODE_MAIN
            slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //MODE_SIGNAL
            
  
          
   
    for(int i=Bars; i >= 0; i--)
     {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
   
      // Print (val1, (" val1")); //will print some 0's
      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];
       
     }   
     
     for(i=Bars; i >= 0; i--)
     {
     val1=iFractals(NULL, 0, MODE_UPPER,i);
     if(val1>0)
      {
      double v1[6];
      v1[5]=High[i];
      Print ("v1[", 5, "]= ", v1[5]);
      }
     }
     
        
                       
        
           

//---- 

 
                    
        

                
   return(0);
  }    

//+------------------------------------------------------------------+
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3312
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3315
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3284
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3299
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3306
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3325
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3343
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3399
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3419
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3398
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3374
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3375
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3378
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3387
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3383
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3373
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3372
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3368
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3356
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3366
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3369
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3386
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3303
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3314
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3294
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.329
 
Então agora posso voltar a descobrir como me referir aos fractais anteriores

Obrigado

 
Há sempre uma explicação . . . você só precisa encontrá-la. :-)
 
RaptorUK:

Sim, os amortecedores indicadores são tratados de forma diferente das matrizes comuns.

v[i] não é declarar o Array, é apenas um dos elementos . . mas duplo v[]; é um array com elementos zero . . então v[qualquer coisa] sempre = 0

isto é confuso para mim.
Assim, você pode realmente colocar valores na matriz e ainda assim, como não é declarado, não há como acessar esses elementos sem saber qual elemento era/é ? certo ?

Então como o buffer sabe como traçar a linha de v1[i] se há zero elementos no array. ?

É porque na realidade é mais um mero bool estático e não age como um array naquele ponto. significando High[i] = Verdadeiro, então desenhe High[i] ?
Mas desenha com nenhum valor na realidade no elemento apenas Verdadeiro e ok para desenhar Alto[i] naquele momento ?

Por favor, esclareça se eu não estou nem perto disso

E obrigado pela tutoria
 

Buffers indicadores são Arrays especiais . . não misturam Arrays e Buffers, eles são similares, porém diferentes.

No código original v1[] e v2[] são buffers, em seu último código são Arrays, quando você declara um Array você tem que lhe dar um tamanho, por exemplo, v1[50] tem 50 elementos de v1[0] a v1[49]. O Buffer redimensiona automaticamente quando há mais elementos necessários e os valores mudam automaticamente no Buffer. Considere a barra atualmente em formação, barra 0, quando esta barra completa um valor Indicador associado com aquela barra tem que mudar para o índice 1 . . . isto é feito automaticamente com Buffers . . se você quiser assim algo semelhante com Arrays você pode, mas você mesmo tem que codificá-lo.

 
Ok, entendo, só não sabia que os amortecedores não eram realmente os mesmos, isto é exatamente o que eu precisava entender e provavelmente teria descoberto isto há algum tempo.

Obrigado
 
for(i=Bars; i >= 0; i--)
      {
      val3=iFractals(NULL, 0, MODE_UPPER,i);
      if(val3>0)
         {      
         v3[1]=High[i];
         double v3[9];
// if I put v3[1]=High[i]; here in stead of above it will not draw the line, probably because of this buffer topic again
         Print ("v1[", 1, "]= ", v3[1]);
         }
      }

De qualquer forma, acho que posso fazer alguns bons progressos agora


Vejo que posso colocar esta linha logo acima da declaração da matriz e ela mostra o indicador, porém só imprimirá 0, e se eu a colocar abaixo dela imprime o valor

 
Posso perguntar sobre iFractals e quando val1>0

Estou assumindo que isto significa ==Verdade e depois continua

Então no ponto em que isto é verdade, como posso saber este valor, uma vez que simplesmente imprimir imprimiria uma mudança contínua no valor desde que seja verdade

E também declarar o array e depois declarar um elemento do array como v1[3]=Alto[i] resultados de impressão também continuam a mudar como val1>0

Portanto, estou tentando entender isso e como posso congelar o tempo no momento em que ele será val1>0 ou como sei qual é o valor fractal real sem usar o valor [i] no buffer, já que não posso obter o valor do buffer, como discutimos anteriormente, que [i] não está declarando o array e não é declarado. Bem parcialmente não declarado.

Então eu acho que declarar o array e atribuir um valor como Alto[i] produzirá os resultados de impressão que eu quero, entretanto, não é fixo como é com o indicador, então como o indicador tem um valor fixo e como eu o reproduziria a fim de usar este valor ou renomeá-lo como alguma outra variável para ser útil.

Por favor, informe

Obrigado






 
Talvez você devesse começar explicando o que está tentando fazer . . . sem mencionar nenhum código . . apenas o inglês. Isso provavelmente tornará as coisas mais claras para nós dois . . ;-)
 
RaptorUK:
Talvez você devesse começar explicando o que está tentando fazer . . . sem mencionar nenhum código . . apenas o inglês. Isso provavelmente tornará as coisas mais claras para nós dois . . ;-)
LOL ok

Acho que só quero aprender a me referir aos ifractals que o próprio sinal mostraria no gráfico.
Não todos em geral, mas para escolher 1, ou um anterior, de um alto e/ou um baixo e selecioná-los para uso.
Para usar em uma espécie de esquema de nomenclatura ABCD

Como o iFractals parece quase fazer o que eu ia criar por conta própria para este uso, eu queria poder dar a estes fractais um nome variável

Para que eu possa projetar código para me referir a estes iFractals fixos como mostrado no indicador e como mostrado para v1[i]=High[i] que continua a ser mostrado até que um novo seja formado. O indicador mostra o valor que permanece fixo

Então eu ia tentar criar um código que criasse uma variável para, digamos, o v1[i]=High[i] atual e este poderia ser A, mas eu quero um valor fixo como no indicador e não um valor móvel como minha declaração impressa.

Então eu gostaria de selecionar de um Alto[i] anterior para marcá-lo como A ou B, poderia ser C se(A>Alto[i] naquele momento) e assim por diante. Tentar criar um bom esquema ABCD para ser usado em outra parte de uma estratégia completamente diferente. Mas notei que muitas pessoas usam este tipo de esquema ABCD com mentiras e muitas outras partes e indicadores, mas eu estava apenas querendo aprender como criar um esquema ABCD básico e talvez até mais tarde fazê-lo traçar linhas de tendência com base nestes ABCD's etc.

E muitas outras coisas, mas, por enquanto, apenas um tipo de ABCD.

Obrigado
Razão: