[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 875

 
reag:

Sim, a primeira opção não funciona, embora eu esteja trabalhando em um cronograma não-padrão, a segunda funciona. Obrigado a todos vocês!


A primeira opção funciona - pelo menos 20 dias em uma conta demo (não há mais tempo para verificar) e no testador sobre o histórico por 10 anos

ZS: Bem, se não funciona, não funciona :)

 
IgorM:


a primeira opção funciona - pelo menos 20 dias em uma conta demo (não há mais tempo para verificar) e no testador sobre o histórico por 10 anos

SZS: bem, não trabalhar significa não trabalhar :)

O primeiro funciona em uma conta real. Para mim funciona provavelmente porque a janela do gráfico é muito grande. Provavelmente funciona porque a janela do gráfico é muito grande e não atinge o máximo... mas talvez o EA seja assim - ele vai se sair muito bem... :)
 
Andrei01:
não é assustador na demonstração. :) mas no site real, provavelmente é melhor não correr riscos e fazê-lo normalmente ... Provavelmente funciona porque a janela do gráfico é muito grande e não atinge o máximo ... mas talvez a EA seja assim - vai dar certo... :)


não realmente - contando o número de barras eu não posso "não perder" o momento do carregamento da história - e nesses momentos, é melhor esperar um pouco, a história não só é carregada no final do TF, mas às vezes também carrega o início do TF - ok, é um grande segredo shhhhhhhhhh

:)

 
IgorM:


não é bem assim - contando o número de barras eu não posso "não perder" o momento do carregamento da história - e nesses momentos, é melhor esperar um pouco, a história não só é carregada no final do TF, mas às vezes o início do TF também é carregado - ok, este é um grande segredo shhhhhhhhhh

:)


Acontece que a segunda variante também não funciona ... Os números de barras na matriz de indicadores não mudam de qualquer maneira! Entendo que é por causa do prazo não-standard. Ele é formado pelo padrão Period_Converter_Opt, eu o obtenho de M1 a M2, quando abro barras M2 são iguais a metade da barra Max na janela, e quando chego ao valor da barra Max na janela, o fomento da matriz SetIndexBuffer pára...(
 
reag:

Acontece que a segunda opção também não funciona ... os números de barras na matriz de indicadores não mudam de qualquer maneira! Acho que isso se deve ao prazo não-padrão. Ele é formado pelo padrão Period_Converter_Opt, eu o obtenho de M1 a M2, quando abro barras M2 são iguais a metade da barra Max na janela, e quando chego ao valor da barra Max na janela, o fomento da matriz do índice SetIndexBuffer pára...(


mas pelo menos alguns parâmetros da nova barra podem ser comparados com a barra memorizada?

Se você tem um TF não-padrão - é possível que a barra que você pensa ser zero - tenha um índice não 0, 1 ?

 
IgorM:


mas pelo menos alguns parâmetros da nova barra podem ser comparados com a barra memorizada?

Se você tem um TF não-padrão - é possível que a barra que você acha que é zero tenha um índice diferente de 0, 1 ?


O algoritmo para reconhecer uma nova barra funciona, mas o gráfico pára após atingir uma barra máxima na janela; presumo que fomentando a matriz de índices SetIndexBuffer pára. Aqui está o problema, ou seja, depois de permitir que tudo funcione bem e então o gráfico congela e as barras se movem... e, consequentemente, o indicador não funciona!
 
reag:

O próprio algoritmo reconhece uma nova barra, mas o gráfico pára após atingir uma barra máxima na janela, presumo que o fomento da matriz do índice SetIndexBuffer pára. Aqui está o problema, ou seja, depois de permitir que tudo funcione bem, e então o gráfico congela e as barras se movem... e, consequentemente, o indicador não funciona!

Onde está o código? Se ele funciona na inicialização, talvez o problema seja que o número de barras a serem redesenhadas esteja definido incorretamente.
 
IgorM:

Onde está o código? Se ele fizer isso na inicialização, o problema pode ser que o número de barras a serem redesenhadas não esteja definido corretamente.

#janela_do_cartão_indicador de propriedade
#property show_inputs
#property indicator_buffers 3 // número de buffers
#Indicador de propriedade_color1 DarkSeaGreen // cor da primeira linha
#Indicador de propriedade_color2 SaddleBrown // cor da segunda linha
#Indicador de propriedade_color3 SaddleBrown // cor da segunda linha

intHistória externa=300; // Número de barras na história calculada
setas internas externas=1;
linha int externa=0; // Número de barras para cálculos
//externa int Esquerda_Direita= 5; // Offset horizontal (barras)
int externo Up_Right=8; // offset vertical (pontos)
estática int up = 1, intPost=600;
data estática VPPosLStr,tempo0novo,tempo0velho;
dupla Linha_0[],Linha_1[],Linha_2[]; //declaração de matrizes de dados

//--------------------------------------------------------------------
int init() //Special function init()
{

if (Setas===1 && Linha===1)int Estilo=1;
se (Setas===1 && Linhas!=1)estilo=3;
se (Setas!=1 && Linhas===1)estilo=2;
interruptor(Estilo) // Interruptor de cabeçalho
{ // Chave de partida do corpo
caso 1 :
//--------------------------------------------------------------------
SetIndexBuffer(0,Line_0); // Atribuir array ao buffer 0
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT,1);// Estilo de linha
SetIndexEmptyValue(0,0,0.0);
//--------------------------------------------------------------------
SetIndexBuffer(1,Line_1); // Atribuir array ao buffer 1
SetIndexStyle(1,DRAW_ARROW,EMPTY,1); // Estilo de linha
SetIndexArrow (1.217);
//--------------------------------------------------------------------
SetIndexBuffer(2,Line_2); // Atribuir array ao buffer 2
SetIndexStyle (2,DRAW_ARROW,EMPTY,1); // Estilo de linha
SetIndexArrow (2.218);
//--------------------------------------------------------------------
pausa; // Opções.
caso 2 :
//--------------------------------------------------------------------
SetIndexBuffer(0,Line_0); // Atribuir um array ao buffer 0
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT,1);// Estilo de linha
SetIndexEmptyValue(0,0,0.0);
pausa;
caso 3 :
//--------------------------------------------------------------------
SetIndexBuffer(1,Line_1); // Atribuir array ao buffer 1
SetIndexStyle(1,DRAW_ARROW,EMPTY,1); // Estilo de linha
SetIndexArrow (1.217);
//--------------------------------------------------------------------
SetIndexBuffer(2,Line_2); // Atribuir array ao buffer 2
SetIndexStyle (2,DRAW_ARROW,EMPTY,1); // Estilo de linha
SetIndexArrow (2.218);
//--------------------------------------------------------------------
pausa;
padrão: pausa; // caso não corresponde
}
int k=barras; // interruptor final do corpo

retorno(0); // Sair init especial()
}
//--------------------------------------------------------------------
int start() // Início de função especial()
{
//----+ verificar o número de barras para o correto
//calcule o indicador
if(História-1 < 15)
retorno(0);

//+--- +==========================================+
int i, // Índice de barras
n, // parâmetro formal (índice)
k, // índice do elemento índice da matriz de índices
Barras_contadas; // Número de barras calculadas
Linha dupla;
iBarShift(NULL, 0, VrPostStr);
//Comentário (indpostr," ",up);
//--------------------------------------------------------------------
/* Barras_contadas=IndicadorContado(); // Número de barras calculadas
//---- verificar possíveis erros
if(Barras_contadas < 0)
retorno(-1);
i=Bars-Counted_bars-1+indicatorCounted; // Índice do primeiro não contado
se (i>História-1) // Se houver muitas barras, então .
i=História-1; // ...calcular o número dado
time0new=Time[0];
if(time0old!=time0new)
{
i=História-1;
time0old=time0new;
Comentário ("Bares ",Bares",", História ",História,", i ",i);
}

for(i=i-1; i >= 3; i--) // Laço sobre barras não contadas
{
if(up==0)
{
Line=Low[i];

if (Line<Low[i-1] && Line<Low[i-2] && Bpostr<Time[i])
{
Linha_0 [i] = Linha[i];
Linha_0 [i] = Linha;
Linha_2[i] = Line-up_down*Point;
up=1;
continuar;
}
}
if(up===1) //construir grade de fibo pelo critério de dois castiçais de enrolar
{
Line=High[i];

if (Linha>High[i-1] && Linha>High[i-2]&& Bpostr<Time[i])
{
Linha_0[i] = Linha[i];
Linha_0[i] = Linha;
Linha_1[i] = Linha+Up_down*Ponto;
acima de=0;
}
}
//Cálculo Index para a próxima barra
}
// WindowRedraw();
//--------------------------------------------------------------------
retorno(0);
}
//--------------------------------------------------------------------
int deinit()
{

retorno(0);
}
 
reag:


   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for(int i=0; i<limit; i++){
Eu escrevo indicadores desta forma, este é o meu começo padrão - é um pouco esticado, mas quando eu estava lidando com mql, eu escrevi desta forma e é assim que ele permanece
é difícil entender seu código - os nomes das variáveis em letras cirílicas me assustam - eu me confundo com comentários
 
IgorM:
Eu escrevo indicadores desta maneira, este é meu indicador padrão de início
é difícil entender seu código - os nomes das variáveis em letras cirílicas me assustam - eu me confundo com comentários

Sim, sou só eu tentando... Cyrillic )), a combinação de Barras e IndicadorContado() em um período de tempo não-padrão não funciona exatamente, quando a barra Max na janela de Barras é excedida ela não vai mais longe.