[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 127

 
Não.
 

Esta pergunta: o indicador padrão OA utiliza 2 buffers de índice adicionais, que não estão envolvidos na renderização do indicador:

//+------------------------------------------------------------------+
//|                                                  Accelerator.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Green
#property  indicator_color3  Red
//---- indicator buffers
double     ExtBuffer0[];
double     ExtBuffer1[];
double     ExtBuffer2[];
double     ExtBuffer3[];
double     ExtBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(5);
//---- drawing settings
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   IndicatorDigits(Digits+2);
   SetIndexDrawBegin(0,38);
   SetIndexDrawBegin(1,38);
   SetIndexDrawBegin(2,38);
//---- 4 indicator buffers mapping
   SetIndexBuffer(0, ExtBuffer0);
   SetIndexBuffer(1, ExtBuffer1);
   SetIndexBuffer(2, ExtBuffer2);
   SetIndexBuffer(3, ExtBuffer3);
   SetIndexBuffer(4, ExtBuffer4);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("AC");
   SetIndexLabel(1,NULL);
   SetIndexLabel(2,NULL);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator                               |
//+------------------------------------------------------------------+
int start()
  {
   int    limit;
   int    counted_bars=IndicatorCounted();
   double prev, current;
//---- last counted bar will be recounted
   if( counted_bars>0) counted_bars--;
   limit=Bars- counted_bars;
//---- macd counted in the 1-st additional buffer
   for(int i=0; i& lt; limit; i++)
      ExtBuffer3[ i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN, i)-
                    iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN, i);
//---- signal line counted in the 2-nd additional buffer
   for( i=0; i< limit; i++)
      ExtBuffer4[ i]=iMAOnArray( ExtBuffer3,Bars,5,0,MODE_SMA, i);
//---- dispatch values between 2 buffers
   bool up=true;
   for( i= limit-1; i>=0; i--)
     {
      current=ExtBuffer3[ i]- ExtBuffer4[ i];
      prev=ExtBuffer3[ i+1]- ExtBuffer4[ i+1];
      if( current> prev) up=true;
      if( current& lt; prev) up=false;
      if(! up)
        {
         ExtBuffer2[ i]= current;
         ExtBuffer1[ i]=0.0;
        }
      else
        {
         ExtBuffer1[ i]= current;
         ExtBuffer2[ i]=0.0;
        }
       ExtBuffer0[ i]= current;
     }
//---- done
   return(0);
  }
//+------------------------------------------------------------------+

Como você pode ver, apenas cálculos são feitos nestas matrizes. Não entendo porque estas matrizes devem receber o status de buffer de índice?

 
neoclassic писал(а) >>

Esta pergunta: o indicador padrão OA utiliza 2 buffers de índice adicionais, que não estão envolvidos na renderização do indicador:

Como você pode ver, apenas cálculos são feitos nestas matrizes. Eu não entendo, por que estas matrizes precisam receber o status de amortecedores de índice?

para definir o tamanho da matriz!

 

Olá usuários do fórum!

Sou um programador total de MQL. Mas eu gostaria de ter uma simples EA como esta. Abre a pose com algum lote. Coloco imediatamente uma parada fixa (20-30 pips). Após atingirmos um certo lucro (20-30 pips) fechamos parte da posição (50%), e para as posições restantes a parada é movida para o Breakeven. Para o restante da posição é feito um pedido de lucro ou ele é monitorado manualmente. Aqui está uma idéia. Eu ficaria muito grato pelas respostas.

 
vvavva >> :

para definir o tamanho da matriz!

mas o que fazer se você precisar usar um grande número de arrays? >> (mais de 8)

 

usar matrizes regulares em vez de matrizes tampão

em vez de

SetIndexBuffer(3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4);

uso

ArrayResize(ExtBuffer3,Bars); ArrayResize(ExtBuffer4,Bars);

 
keekkenen >> :

usar matrizes regulares em vez de matrizes tampão

em vez de

SetIndexBuffer(3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4);

uso

ArrayResize(ExtBuffer3,Bars); ArrayResize(ExtBuffer4,Bars);


Obrigado!!!

 
neoclassic писал(а) >>

E se um grande número de matrizes precisar ser usado? (mais de 8)

arrays para desenho no indicador não podem exceder o limite especificado (acho que é 8)!

arrays para cálculos também têm limites, mas o número é maior!

para trabalhar em torno dos limites usando matrizes, você precisa usar bibliotecas!

 
Eu tenho uma pergunta. É possível fazer um garçom de notícias? Digamos que hoje será a hora exata da notícia não é conhecido o texto aproximado uma palavra, eu preciso de um bip mais longo e mais alto pode fazê-lo.
 
Olá, plz me diga quantas razões possíveis para que a variável k=barras possa mudar quando uma nova barra ainda não começou a se formar (quaisquer situações possíveis), digamos que você mudou o par de moedas, o prazo, alguma atualização mt4 ou em dc.