Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 877

 
evillive:
Certo, ao usar as Bandas Bollinger, você não precisa chamar iCustom, você chama iBands, para cada linha indicadora - separadamente. A maneira alternativa sem chamar o indicador ("sem usar buffers, matrizes e loops") é implementar no Expert Advisor o algoritmo do cálculo do indicador e ler o valor correto quando necessário (você pode ler apenas o valor correto, por exemplo, apenas o resultado final). Mas completamente sem loops e arrays não é possível.

OK. Então como escrever isto corretamente?

MB_2=iBands(NULL,0,10,0,2.0,PRICE_CLOSE,2);
Delta_0=iBands(ExtUpperBuffer[0]-ExtLowerBuffer[0]));

Como extrair valores de ExtUpperBuffer[0] e ExtUpperBuffer[1], e inferiores, respectivamente?

 
rapid_minus:

OK. Então como escrever isto corretamente?

MB_2=iBands(NULL,0,10,0,2.0,PRICE_CLOSE,2);
Delta_0=iBands(ExtUpperBuffer[0]-ExtLowerBuffer[0]));

Como extrair valores de ExtUpperBuffer[0] e ExtUpperBuffer[1], bem e fundo, respectivamente?

Aqui novamente a chamada indicadora é escrita incorretamente.

Eu já o escrevi corretamente aqui. Você não precisa inventar nada de si mesmo, tudo está na referência.

Mais uma vez:

High_2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,2); //это и есть ExtUpperBuffer[2]
High_1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,1); //ExtUpperBuffer[1]
High_0=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0); //ExtUpperBuffer[0]
Low_2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,2); //ну и нижние соответственно, ExtLowerBuffer[2]
Low_1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,1); //ExtLowerBuffer[1]
Low_0=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0); //ExtLowerBuffer[0]
 
evillive:

Aqui novamente, a chamada indicadora é anotada incorretamente.

Já escrevi o caminho correto aqui. Você não tem que inventar nada para si mesmo, tudo está no manual.

Mais uma vez:

Bem, eu consegui pela terceira vez. Parece que sim.

Então o erro em MB_2 é que não há designação de linha chamável, certo? Mas eu ainda não descobri como chamar o Bollinger de linha média. Ou apenas como uma média móvel? MODE_SMA ?

 
rapid_minus:

Bem, eu consegui na terceira vez. Parece que sim.

Então o erro na MV_2 é que não há designação de linha chamável, certo? Mas eu ainda não descobri como chamar o Bollinger de linha média. Ou apenas como uma média móvel? MODE_SMA ?

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0); - a zero barra (último dígito entre parênteses - offset a barra desejada).

Não há necessidade de apressar, leia atentamente a ajuda.

 
evillive:

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0); - a zero barra (último dígito entre parênteses - offset para a barra necessária).

Não há necessidade de apressar, leia atentamente a ajuda.

Obrigado!

Somente como encontrá-la na ajuda quando você não sabe como formular a pergunta - essa é a pergunta!

Mais uma vez, obrigado. Fora para fazer mais algumas escavações.

 
rapid_minus:

Obrigado!

Somente como encontrá-la na ajuda quando você não sabe como formular a pergunta - essa é a pergunta!

Mais uma vez, obrigado. Estou indo para fazer mais algumas escavações.

Aprender a fazer as perguntas certas é a metade da resposta, de alguma forma ;)
 
mario065:
Aqui está um exemplo onde mostrei como medir uma barra após atravessar 2 muves.

experimente seu código

A pergunta é número de barra?

Eu expliquei seu valor, ele desenha números diferentes, incluindo zero no ponteiro das horas.

tentou passar por um testador, a mesma coisa.

Se o valor de um é o mesmo que o outro, ele tentará desenhar números como eu preciso

obrigado

 
sannin:

experimente seu código

A pergunta é número de barra?

Eu expliquei seu valor, ele desenha números diferentes, incluindo zero no ponteiro das horas.

tentou passar por um testador, a mesma coisa.

Se o valor de um é o mesmo que o outro, ele tentará desenhar números como eu preciso

Obrigado

Estou apenas tentando dar um exemplo.

Vejo que foi você que fez).

Aqui está o código:

//+------------------------------------------------------------------+
//|                                                    count bar.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

extern int limit = 300;
//+------------------------------------------------------------------+
int init(){return(0);}
int deinit(){Comment("");return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    static datetime time,timeup,timedn;
    double spread=MarketInfo(Symbol(),MODE_SPREAD);
    double maslow1,mafast1,maslow2,mafast2;
    int    shift,shift1,shift2,f,j;
    
    for(shift=limit;shift>0;shift--){
        shift1=shift+1;shift2=shift+2;
        maslow1 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift1);
        mafast1 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift1);
        maslow2 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift2);
        mafast2 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift2);
 
     if(mafast2<maslow2 && mafast1>maslow1){
        timeup=Time[shift1];
       } 
     if(mafast2>maslow2 && mafast1<maslow1){
        timedn=Time[shift1];
       } 
     
     if(timeup > timedn){
        time = timeup;
       } else {
        time = timedn;
       }
     }
 
      int b1=iBarShift(Symbol(), 0, time);      
      int b2=iBarShift(Symbol(), 0, TimeCurrent());
//Преброяване на баровете-от нулевия до началната дата
    for(j=b2;j<=b1;j++){
        f=b1-b2;
       }
      
   Comment("\n Време на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS)," Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
           "\n Текущ спред: ",DoubleToStr(spread/10,1),
           "\n=====================",
           "\n Начална дата:           ",TimeToStr(time,TIME_DATE|TIME_SECONDS), 
           "\n Брой барове:            ",f,
           "\n=====================" 
             ); 
   return(0);
  }
//+------------------------------------------------------------------+

 
mario065:

Eu o escrevi como exemplo.

Vejo que você conseguiu :)

Aqui está o código:

Muito obrigado.

Compartilharei quando for rico.

 
sannin:

Muito obrigado.

Compartilharei quando for rico.

O café é suficiente quando você fica rico ;)
Razão: