Erros, bugs, perguntas - página 245

 

Será que a história salta por acaso?

Está sempre apenas sobre um símbolo ou está também sobre GBPUSD?

Que construção? Que servidor?

 

A história que salta é uma coisa do passado,

Não em todos os pares de moedas no simbol1, bem como no simbol2,

Bild 370, conta de demonstração (alpari-demo)


Gostaria de reparar que só tenho um comerciante (a partir da imagem acima) o excesso é

Gostaria de notar que se eu deixar um indicador (na imagem acima), o redesenho não é tão perceptível,

pode voltar a desenhar várias vezes.

Pensei que o computador pudesse ser lento, mas é o mesmo num computador de 2 núcleos e o gráfico não se desloca

Provavelmente, está à espera do tempo ocioso ou de outra coisa qualquer?

À noite, nos seis núcleos, serão testados!

Quero também salientar que nada aconteceu com outros perus semelhantes.

Não pode ser por causa de cálculos complicados! E a mesa giratória é simples

e funciona a preços abertos.

 
alexluek:

Socorro! O indicador funciona bem, mostra e calcula tudo, mas

quando um novo tick chega, é reiniciado e as linhas são recalculadas.

Tenho isto a acontecer regularmente com perda de ligação. Após o terminal de reconexão recalcular os valores indicadores, o recálculo leva tempo. De Referência:

A relação entre o valor devolvido pela OnCalculate() e o segundo parâmetro de entrada pré_calculado deve ser notada. O parâmetro prev_calculado quando a função é chamada contém o valor devolvido pela OnCalculate() na chamada anterior. Isto permite algoritmos económicos para calcular o indicador personalizado, a fim de evitar cálculos repetidos para as barras que não mudaram desde a chamada anterior desta função.

Para isso, é normalmente suficiente devolver o valor do parâmetro rate_total, que contém o número de barras na chamada de função actual. Se desde a última chamada do OnCalculate() os dados de preço mudaram (um histórico mais profundo foi bombeado ou o histórico foi preenchido), então o valor do parâmetro de entrada pré_calculado será ajustado a zero pelo terminal.

Não sei exactamente qual é a vossa situação, mas por mim mesmo explico comportamentos como o "preenchimento de lacunas na história". Ou talvez o seu indicador funcione ineficientemente, recalculando toda a gama de valores em cada chegada de um tick?

 

Não houve perda de comunicação, o sobredesenho de carraças, e quanto maior for a TF, mais raro será.

E o método de cálculo desde a data inicial até à data final (descobri que são 3) sem

Provavelmente acontece (recalcula todas as barras), mas ainda não é exacto e não sei como o verificar.

mas é apenas um pensamento - vamos verificar...

Talvez haja outra abordagem para se livrar dele...

 
alexluek:

Não houve perda de comunicação, o sobredesenho de carraças, e quanto maior for a TF, mais raro será.

E o método de cálculo desde a data inicial até à data final (descobri que são 3) sem

Provavelmente acontece (recalcula todas as barras), mas ainda não é exacto e não sei como o verificar.

mas é apenas um pensamento - vamos verificar...

Talvez haja outra abordagem para se livrar dele...

É claro que existe uma abordagem. Se(prev_calculated==0), efectuamos o cálculo inicial para todas as barras. Subsequentemente, para cada novo tick (se 0 < pré-cálculo < taxas_total) fazemos cálculos como for(int i=prev_calculado-1;i<rates_total;i++) apenas para as últimas barras aparecidas.
 
Yedelkin:
É claro que existe uma abordagem. Se(prev_calculated==0), efectuamos o cálculo inicial para todas as barras. Mais tarde, para cada novo tick (se 0 < prev_calculado < taxas_total) efectuamos cálculos do tipo para(int i=prev_calculado-1;i<taxas_total;i++) apenas para as últimas barras aparecidas.
Boa ideia - vamos tentar e responder! Obrigado!
 

Quero obter o valor temporal do gráfico actual como uma cadeia. Estou a escrevê-lo assim:

ENUM_TIMEFRAMES period1=Period();
string periodStr;
periodStr=PeriodStr(period1);

O compilador diz-me que 'PeriodStr' - a função não está definida...

Qual é o objectivo? Colegas, por favor ajudem :-)

Existe uma função deste tipo na Ajuda:

PeriodStr

Converte o valor da enumeração ENUM_TIMEFRAMES em cadeia.

stringPeriodStr(
int val// valor
)

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - Документация по MQL5
 

Caros programadores, por favor digam-me que chamada ambígua a uma função sobrecarregada (é sobre isto que o compilador está a jurar):

'set' - chamada ambígua para função sobrecarregada

class CA
  {
public:
   void set(int i,int j,long n){Print("перегрузка long");};
   void set(int i,int j,int n){Print("перегрузка int");};
  };

void OnStart()
  {
//---
   CA a;
   int Int=3;
   long Long=4;
   a.set(1,2,Int);
   a.set(1,2,Long);
  }

HH Descobri a forma como se substitui as constantes no primeiro e segundo parâmetro pela variável tipo int, então o palavreado pára.

Mas não compreendo a lógica do compilador, os dois primeiros parâmetros são os mesmos em todas as sobrecargas, sem parâmetros por defeito.

Então porque é que o compilador jura, qual é a ambiguidade da chamada?

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Типы char, short, int и long - Документация по MQL5
 
denkir:

Quero obter o valor temporal do gráfico actual como uma cadeia. Estou a escrevê-lo assim:

O compilador diz-me que 'PeriodStr' - a função não está definida...

O que é que se passa? Colegas, por favor ajudem-me :-)

Como vê, o ficheiro de Ajuda tem esta função:

PeriodStr

Converte o valor de enumeração de ENUM_TIMEFRAMES em cadeia.

stringPeriodStr(
int val// valor
)

Estranho, não encontrei tal função - PeriodStr - no manual
 
denkir:

Quero obter o valor temporal do gráfico actual como uma cadeia. Estou a escrevê-lo assim:

O compilador diz-me que 'PeriodStr' - a função não está definida...

Qual é o problema? Colegas, por favor ajudem-me :-)

Existe tal função na Ajuda:

PeriodStr

Converte o valor da enumeração ENUM_TIMEFRAMES em cadeia.

stringPeriodStr(
int val// valor
)

Este é um método de Classe

https://www.mql5.com/ru/docs/standardlibrary/technicalindicators/cindicator

#Incluir<Indicadores\Indicador.mqh>