[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 322

 
gyfto:


Deixe-me explicar em outras palavras: isto é auto-educação, sou autodidata durante toda a minha vida, portanto NÃO sei que abordagem adotou. NÃO sei o que é aceito por você, o que não é.

OK, de volta às velas. Suponha que temos i_AnyBarsToHistory = 30, i_ѕеqceptBarsConnt = 3. Se em uma janela de 30 castiçais cntUp == i_ѕеԛceptBarsCount e cntDn == i_ѕеԛceptBarsCount uma vez, então o que deve acontecer? Ou conta sempre apenas um contador por passe?

Sim, e por que saímos prematuramente do loop antes de chegarmos a Close[1]?


O resultado final é o seguinte: se o ciclo é de 30 a 3, então o cálculo é do índice 30 ao índice 3 respectivamente, inclusive.

Se na barra atual o atributo requerido for passado, adicionamos 1 ao contador, se outro atributo requerido for passado, adicionamos mais 1 ao contador. E assim por diante, até encontrarmos uma barra que não atenda ao atributo exigido. Se a barra não atender ao atributo requerido, o contador é reinicializado, e então analisamos a situação, ou seja, realizamos mais cálculos, o ciclo, até chegarmos à barra com um índice de 3. Simplesmente tudo.

Espero ter explicado claramente.

 
hoz:

int signal = GetGeneralSignal();


você pode substituí-lo por

   if(GetMa(2)-GetMa(1)<σ) return; else int cross=MathAbs(GetMA(2)-GetMA(1))/(GetMA(2)-GetMA(1));
   for (int i=i_AnyBarsToHistory; i>=1; i--){
                if(cross*(Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt) cnt++; else cnt=0;
   }
   if(cnt >= i_sequentBarsСount){
                switch(cross+1){
                        case 0: OpenBuy(); break;
                        case 2: OpenSell(); break;
                }
   }

Verificar se cross=+1 ou -1 corresponde a OpenBuy() ou OpenSell() (e fechar-abrir ou abrir-fechar). σ Temos aqui um valor infinitesimal atribuído, análogo a zero.

tommy27:

Ajuda, não consigo entender como fazer um indicador comparar o número de barras mais recentes e calcular quantas delas estavam para cima, quantas estavam para baixo e quantas eram pinbars e quem tinha que preços fechar/abrir, alto/baixo e volumes?

Precisamos fazer isso exatamente no indicador.


Ajuste as Barras Contadas a uma certa janela de castiçais (por exemplo, 30), e percorra as Barras Contadas com decremento. Para cima ou para baixo, em alta ou em baixa, observe a diferença de dois Close[] adjacentes. Pinbar olha para o alto ou baixo local, e o desvio deste alto ou baixo em relação aos valores adjacentes. Se o desvio exceder uma determinada porcentagem especificada por você, é uma barra de pinos.

 
Boa tarde. Você pode me dizer como determinar a passagem do 38,2 em um objeto de arco de Fibonacci?
 

Olá,

Boas festas para todos!

Tenho um terminal comercial OEC que precisa de um simples indicador de spread

Talvez alguém possa escrever, ou pelo menos me ajudar com algo

É o que parece no mt4

Arquivos anexados:
 
ADGgeek:

Olá,

Boas festas para todos!

Tenho um terminal comercial OEC que precisa de um simples indicador de spread

Talvez alguém possa escrever, ou pelo menos me ajudar com algo

É o que parece no mt4


Posso aconselhá-lo a perguntar sobre a Aranha. Na verdade, só posso citar:

GaryKa:
Adicione em uma descrição da pontuação, e uma definição de seus conceitos (por exemplo, "seu número") eaqui. E neste ramo só ajudam aqueles que têm suas próprias mãos (e depois no humor)

Isto se aplica a todos. Não sei como usá-la, mas tenho certeza de que funcionará.

 

Era isso que eu estava procurando, obrigado Garyka! Boas festas passadas e futuras!

 

Boas festas para todos!

Você pode me dizer o que significa o terminal quando diz motivo 5 na guia "especialistas"?

Obrigado.

 
CYBOPOB:

Boas festas para todos!

Você pode me dizer o que significa o terminal quando diz motivo 5 na guia "especialistas"?

Obrigado.


https://docs.mql4.com/ru/constants/uninit
 
hoz:

Tão simples quanto isso.


Tanto quanto entendi ao comparar sua descrição com seu código, eles divergem, pois em seu código a saída antecipada do loop ocorre quandoi_seqentBarsCont:

hoz:

for (int i=i_AnyBarsToHistory; i>=1; i--)
   {
      if (directionMA == CROSS_UP)
      {
         if ((Open[i] - Close[i]) >= i_sizeOfSequentialCorrectionBar * pt)
             cntDn++;
         if ((Close[i] - Open[i]) >= i_sizeOfTrandBar * pt)
             cntDn = 0;
                                                                                        
         if (i == 1)
            Print(" directionMA ", directionMA, "; i = ", i, "; Open[i] - Close[i] = ", Open[i] - Close[i], "; cntDn = ", cntDn);

         if (cntDn == i_sequentBarsСount)            //<--
             return (REQUIRED_SEQUENTIAL_BEARS_GOT); //<--
      }

      if (directionMA == CROSS_DN)
      {
         if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt)
             cntUp++;
         if ((Open[i] - Close[i]) >= i_sizeOfTrandBar * pt)
             cntUp = 0;
         if (i == 1)
            Print(" directionMA ", directionMA, "; i = ", i, "; Close[i] - Open[i] = ", Close[i] - Open[i], "; cntUp = ", cntUp);

         if (cntUp == i_sequentBarsСount)            //<--
             return (REQUIRED_SEQUENTIAL_BULLS_GOT); //<--
   }
hoz:

Se o ciclo for de 30 a 3, então o cálculo passa do índice 30 para o índice 3, respectivamente, inclusive.

Se a barra não corresponder ao índice requerido, então o contador é reinicializado, e então analisamos a situação, ou seja, continuamos a calcular pelo ciclo, até chegarmos à barra com índice 3.

 
gyfto:


Tanto quanto entendi ao comparar sua descrição com seu código, há uma discrepância, pois em seu código há uma saída antecipada do loop quandoi_seqentBarstCont:



Entendo que você provavelmente precisará ter um contador, que será incrementado após cada barra calculada e quando seu valor for igual a i_AnyBarsToHistory, então ele produzirá o que foi produzido até este ponto.

Vou jogar fora o que penso, e vou escrever de volta.

Razão: