Contagem de barras, incluindo fins de semana - página 8

 
Integer, Rena - você está sendo oferecido para puxar um espaço em branco sem muito disfarce. Eu não quero cair nessa.
 
Renat Akhtyamov:

aqui vamos nós.

Tempo[i -(int)Fr]

O laço é assim

for(i=100; i>=0; i--)

com análise não inferior a zero isto: i -(int)Fr

mas a linha para o futuro (em i<0) de qualquer forma - apenas pelo tempo ou acrescente o fim de semana

embora...

pode ser uma pista - como mudar para um número negativo de barras, eu não me lembro

Agora fiz Time[(i+Fr)-x_bar] a partir do ponto fractal até o futuro,
agora todas as linhas estão nos lugares certos a partir do fractal mais as barras necessárias à frente, mas além da barra zero as linhas não se elevam mais

 
forex2030:

Agora do ponto fractal para o futuro eu fiz Time[(i+Fr)-x_bar],
agora todas as linhas ficam nos lugares necessários a partir do fractal mais as barras necessárias à frente, mas as linhas não ficam mais atrás da barra zero

talvez tentar, neste caso, desenhar outro amortecedor no tempo presente e mudar para o futuro?

https://docs.mql4.com/ru/customind/setindexshift

SetIndexShift - Пользовательские индикаторы - Справочник MQL4
SetIndexShift - Пользовательские индикаторы - Справочник MQL4
  • docs.mql4.com
При положительном значении изображение линии смещается вправо, при отрицательном - влево. Значение, рассчитанное на текущем баре, рисуется с указанным смещением относительно текущего бара.
 
Renat Akhtyamov:

talvez tentar desenhar no presente tenso e mudar para o futuro neste caso?

Hmm, vou ter que tentar isso.
Isto é, eu traço uma linha no primeiro ponto e mudo por barras.
Minha linha não é um amortecedor, mas um objeto, como organizo isto.

 
forex2030:

Hmmm, vou ter que tentar isso.
Isto é, eu traço uma linha no primeiro ponto e mudo por barras.
Eu não tenho a linha como um buffer, mas como um objeto, como organizo isto.

se um objeto, calcular a hora da futura barra, levando em conta o fim de semana

mas se for um indicador, então dois buffers em >=0 e em <0

no último caso, o comando a partir do link acima dentro do laço

neste caso, somente a última linha do indicador para o segundo buffer e tudo para o primeiro buffer será verdadeiro

 

O que há de errado com isso? Há uma hora de início, há uma hora atual.

int  Bars(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период
   datetime         start_time,      // с какой даты
   datetime         stop_time        // по какую дату
   );
 
Renat Akhtyamov:

se um objeto, então calcular o tempo da futura barra levando em conta as saídas
e se for um indicador, então dois buffers em >=0 e em <0
no último caso, o comando seguindo o link acima seria correto
neste caso, somente a última linha indicadora estará correta

OK, obrigado.
Acho que isso é suficiente por hoje, vou tentar amanhã, vou colocar a linha no amortecedor e deslocá-la por barras para frente.

Konstantin Nikitin:

O que há de errado com isso? Há uma hora de início, há umahora atual.

Não funciona, eu já tentei.

//+------------------------------------------------------------------------+ 
int NumData(datetime d_start,datetime d_stop){
   int bar=Bars(Symbol(),0,d_start,d_stop);
return(bar);}
 

forex2030:

Não funciona, eu já tentei.

Tanto quanto está claro de todos os seus postos. Não é possível definir corretamente a hora de início para a contagem da abertura da barra.
É uma variante do que você precisa. Início da semana/mês/ano anterior ou atual

int  Bars(
   _Symbol,
   PERIOD_CURRENT,
   iTime(_Symbol, PERIOD_W1, 1),
   TimeCurrent()
   );
 
forex2030:

Muito bem, obrigado.
Isso provavelmente é suficiente por hoje, tentarei amanhã, colocarei a linha no buffer e a deslocarei para frente por barras.

Não funciona, eu já tentei.

Os indicadores mais interessantes, é claro, são os que desenham o futuro.

 
forex2030:

Agora fiz Time[(i+Fr)-x_bar] desde o ponto fractal até o futuro,
agora todas as linhas ficam nos lugares corretos do fractal mais as barras necessárias à frente, mas as linhas não ficam atrás da barra zero

Faça um cheque, se a barra for negativa, então acrescente tempo à barra zero. Você deve escrever sua própria função MyTime(int bar), se a barra for menor que zero, adicione tempo à barra zero, caso contrário use Time[].

Razão: