[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 478

 

e seu principal erro aqui

      ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer4,0,МА_ТЛ,0,Вид_МА_ТЛ,0); //рассчет значения для расчета Третьей Линии (ТЛ)

você tem que ir assim.

      ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer4,0,МА_ТЛ,0,Вид_МА_ТЛ,i); //рассчет значения для расчета Третьей Линии (ТЛ)
 
midorum:

Primeiro, tente ligar o quarto tampão não-exibível ExtMapBuffer4 ao tampão indicador

porque você escreve

no início você descreve 3 linhas/buffers

a propósito, então você não precisará declará-lo como uma série de tempos e verificá-lo

Obrigado pela resposta... Para finalmente colocar os i's, eu gostaria de saber mais sobre isto:

1. Você escreveu: "primeiro tente associar o quarto tampão não mapeado ExtMapBuffer4 com o tampão indicador". Pensei que apenas aquelas matrizes deveriam ser vinculadas, que deveriam ser exibidas de uma forma ou de outra na tela do Terminal do Cliente, e o número total de todas as matrizes que participam do cálculo do indicador personalizado deveria ser especificado usando a função IndicadorBuffers. Então eu devo estar enganado?

2. Se você não se importa, por que não declara esta matriz como uma série cronológica? É de alguma forma auto-organizado como uma série de tempos?

 
7777877:

Obrigado por sua resposta... A fim de finalizar isto, gostaria de descobrir mais uma coisa:

1. Você escreve: "primeiro, tente conectar o quarto buffer não mapeado ExtMapBuffer4 com o buffer indicador". Pensei que apenas aquelas matrizes deveriam ser vinculadas, que deveriam ser exibidas de uma forma ou de outra na tela do Terminal do Cliente, e o número total de todas as matrizes que participam do cálculo do indicador personalizado deveria ser especificado usando a função IndicadorBuffers. Então eu estava errado?

2. Se não for difícil para você, por favor explique por que não devemos declarar esta matriz como uma série de tempos? É de alguma forma auto-organizadora como uma série de tempos?

exatamente assim, é automaticamente organizado como uma série de tempos

você descreve os amortecedores indicadores visíveis no início

usandoIndicatorBuffers() você pode aumentar o número de séries cronológicas organizadas automaticamente para 8 e ligá-las a suas matrizes

 
Duplicar a pergunta novamente, apagar a antiga, ajudar quem pode!


Ok. Vou tentar dar a essência do problema, talvez alguém o sugira ou ajude a implementá-lo mais facilmente.

Estamos trabalhando no gráfico de 1 minuto. Vamos pegar a barra de minutos (alto+baixo/2 - valor médio da barra) no gráfico de 29/10/12 às 00:00 - ela será um ponto de referência.

Depois verificamos o desvio deste preço para cima em 10 pips (cada desvio correto é +1).

Quando atingimos o desvio de 10 pontos do ponto de partida - o contador +1; e começamos a verificar outros desvios, mas a partir do ponto, onde atingimos o desvio de 10 pontos, e esperamos pelo próximo aumento de preço de 10 pontos.

Por exemplo, nós conseguimos:

Se (ponto inicial) + 10 pips <= preço (usamos todos os preços subseqüentes de barras a partir do ponto inicial.) Recebemos um contador = contador +1; e iniciamos o ponto inicial já a partir deste ponto - (ponto inicial + 10 pips).

Se (ponto inicial + 10 pips) + 10 pips <= preço (todos os preços subsequentes de barras do ponto de referência são usados) obtemos counter=Counter +1; e partimos deste ponto - (ponto inicial + 10 pips) + 10 pips.

Se (ponto inicial + 10 pips + 10 pips) + 10 pips <= preço (usamos todos os preços subseqüentes de barras a partir do ponto de referência.) obtemos counter=Counter +1; e partimos deste ponto - (ponto inicial + 10 pips + 10 pips) + 10 pips.

e assim por diante...

Até chegarmos a um contador de 10 (contador == 10).

E a cada nova barra formada de 1 minuto (alto+baixo/2 - valor médio da barra) verificamos esta condição e esperamos até que o contador chegue a 10 (contador == 10). Suponha que dois dias se passaram, cada nova barra formada nós verificamos e alteramos se as condições estavam corretas .....

E quando chegamos ao contador =10 - emitimos a mensagem de que "Contador == 10". Movemos o ponto de partida 2 dias antes do ponto inicial definido pelo usuário, ou seja, de 29/10/12 às 00:00 até 31/10/12 às 00:00 e repetimos o ciclo.

Repita o ciclo e assim se mova através do cronograma.

Ou seja, devemos pegar as barras recém-formadas e sacar (alto+baixo/2 - valor médio da barra). E verifique as condições e, se elas estiverem corretas, altere-as conforme descrito acima.

Eu tentei implementá-lo através de uma matriz, é muito confuso e dá valores errados! Ajude-me como implementar este algoritmo!
Arquivos anexados:
qawer.mq4  3 kb
 
merkulov.artem:

Eu tentei implementá-la através de uma matriz, ela fica muito confusa e dá valores errados!!! Ajude como implementar este algoritmo!

Seria muito bom se você pudesse comentar seu algoritmo em detalhes (cada comando e os dados utilizados), porque é muito difícil entender o que é feito e para que propósito

então, talvez você possa obter alguma ajuda, ou talvez você mesmo encontre o problema

 

De acordo com a ajuda, a funçãoSetIndexDrawBegin indica de qual barra começar a desenhar. Eu peguei um indicador AC padrão para testes e mudei lá nos parâmetros

SetIndexDrawBegin(0,8);
   SetIndexDrawBegin(1,38);
   SetIndexDrawBegin(2,38);

para

   SetIndexDrawBegin(0,8);
   SetIndexDrawBegin(1,8);
   SetIndexDrawBegin(2,8);

Nada mudou; começa a desenhar de ... não de 8 bar a 0 bar, mas de que bar não está claro.

Você pode ver que não é 8...


 
hoz:

De acordo com a ajuda, a funçãoSetIndexDrawBegin indica de qual barra começar a desenhar. Eu peguei um indicador AC padrão para testes e mudei lá nos parâmetros

para

Nada mudou; começa a desenhar de ... não de 8 bar a 0 bar, mas de que bar não está claro.

Você pode ver que não é 8...


O número de série da barra desde o início dos dados (leia-se "do início do gráfico" "do lado esquerdo"), a partir do qual a linha selecionada do indicador deve ser extraída. O desenho do indicador é realizado da esquerda para a direita.
 
midorum:
Definir o número de série da barra desde o início dos dados (leia-se "desde o início do gráfico" "do lado esquerdo do gráfico"), a partir do qual a linha indicadora indicada deve começar a ser traçada. O indicador é desenhado da esquerda para a direita.

E se eu precisar desenhar as últimas 30 barras, por exemplo, como devo fazê-lo então?

 
hoz:

E se eu quiser que as últimas 30 barras sejam puxadas, como faço então?

tente Bars-30
 
midorum:
experimente o Bars-30
Não, não é. Logicamente, ele recuaria na esquerda 30 barras e atrairia para a 0ª barra.
Razão: