Erros, bugs, perguntas - página 763

 
x100intraday:

...Se os pontos de magnitude estão ligados aos extremos (casos especiais) ou às coordenadas do gráfico em geral - preço/tempo, então a que é que a "escala" está ligada, pergunto-me? Se houver alguns valores exactos de escala a serem despejados no modelo ao escrever... ou pips por barra, não permite a restauração do esboço original numa nova sessão. Apenas as coordenadas exactas do primeiro ponto são retidas. Grosso modo, os padrões baseados em pontos de ancoragem a coordenadas explícitas e simples são mais fiáveis.

1º ponto é preço e tempo, 2º ponto é tempo, o preço é calculado considerando a escala em n/b.

Não sei o que está escrito no modelo, penso que deveria ter os 4 valores: 2 vezes, preço do primeiro ponto, escala.

Então pode haver problemas se faltarem barras, acho eu.

 
Silent:

Não é um problema de remoção, é um problema de criação :)

Tinha um guião com o laço errado a fazer a mesma coisa. Imprimiu o laço, mesmo depois de apagar à força o guião através da"Lista de Peritos", até que este apareceu com um erro.

Não sabe porquê o erro de criação?

Eu crio sem loop, não preciso dele para 3 objectos.

Apenas o faço para cada um deles:

if(ObjectFind(0,_name)!=0)//если не нашли создаем
     {
      ObjectCreate(0,_name,OBJ_RECTANGLE,0,_begin_time,_open,_end_time,_close);
         ObjectSetInteger(0,_name,OBJPROP_STYLE,STYLE_SOLID);
         ObjectSetInteger(0,_name,OBJPROP_WIDTH,Width);
         ObjectSetInteger(0,_name,OBJPROP_BACK,_Top);
         ObjectSetInteger(0,_name,OBJPROP_FILL,_BG);
         ObjectSetInteger(0,_name,OBJPROP_SELECTED,false);
         ObjectSetInteger(0,_name,OBJPROP_COLOR,_Color);
     }
else //если нашли модифицируем
     {
      ObjectMove(0,_name,0,_begin_time,_open);
      ObjectMove(0,_name,1,_end_time,_close);
      ObjectSetInteger(0,_name,OBJPROP_COLOR,_Color);
     }

Em geral, as primeiras pistas estão a aparecer, mas é demasiado cedo para dizer.

 

Verificam a criação do objecto no código?

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 
kPVT:

Não compreendo porquê o erro de criação?

...

Porque.
kPVT:

...

Os objectos são eliminados, mas recriados e continuam a "agitar" como se o indicador ainda estivesse a funcionar.

Se eliminados manualmente, são novamente criados com o mesmo nome e continuam a "mover-se" à medida que novas carraças entram.

...

O indicador procura-os a cada tique e ou cria ou modifica, como eu o entendo.

Talvez: se já estiver presente e modificado - nada a fazer (bloco)?

 
alexvd:

Verificam o facto de o objecto ter sido criado no código?

Silencioso:
Talvez: se já existir e for modificado - não falta nada para fazer (bloco)?

A razão é a seguinte.

Se obtiver o manípulo indicador #1 do indicador #2, este não completa o indicador #1, até apagar o indicador #2.

Se houver construções tampão, estas são removidas, mas os objectos gráficos permanecem.

Aqui estão dois indicadores para testes.

1. Anexamos test_del_obj, depois test_id.

2. Removemos test_del_obj - o cubo dos restos de test_del_obj.

3. Remove test_id - o cubo é removido e vemos no registo que só agora o indicador test_del_obj é executado.

Arquivos anexados:
 

Outra questão.

O manípulo indicador é único?

Se alterar o indicador test_id adicionando uma sondagem cronometrada do manípulo do indicador test_del_obj, pode ver que o valor aumenta em 1 para cada pedido.

Arquivos anexados:
 

ArrayResize() não funciona correctamente

Ao diminuir o tamanho de uma matriz dinâmica, o ArrayResize() apara elementos do lado errado da matriz.

Código:

   double Arr[];
   ArrayResize(Arr,5);
   Arr[0]=101;
   Arr[1]=102;
   Arr[2]=103;
   Arr[3]=104;
   Arr[4]=105;   
   Print("Начальный массив: ",Arr[0],":",Arr[1],":",Arr[2],":",Arr[3],":",Arr[4]);
   ArraySetAsSeries(Arr,true);
   ArrayResize(Arr,4);
   Print("Обрезанный массив: ",Arr[0],":",Arr[1],":",Arr[2],":",Arr[3]);

Resultado:

2012.07.04 21:28:53     Ind2 (EURUSD,H4)        Обрезанный массив: 104.0:103.0:102.0:101.0
2012.07.04 21:28:53     Ind2 (EURUSD,H4)        Начальный массив: 101.0:102.0:103.0:104.0:105.0

O mesmo código e resultado em MetaTrader 4:

2012.07.04 21:28:35     ind2 EURUSD,H4: Обрезанный массив: 105:104:103:102
2012.07.04 21:28:35     ind2 EURUSD,H4: Начальный массив: 101:102:103:104:105
Arquivos anexados:
Ind2.mq5  2 kb
 

Caros programadores do MT5. Chamo a vossa atenção - a coisa mais importante para um servidor Forex é a exactidão das cotações. Portanto, investigue a incorrecção no seu MT5 (servidor MetaQuotes-Demo):

1) Mudando o volume nos castiçais previamente carregados - por exemplo, hoje às 8:00 EURUSD H4, os valores eram 0:00 - 6171, 4:00 - 7049, 8:00 - 13361. E ao carregar às 20:00 (na Europa), os valores eram 0:00 - 7701, 4:00 - 8859, 8:00 - 16306. Em geral, não será difícil para si ver que o volume se está a passar em russo. Como tenho a honra de falar não só em meu nome, mas também a pedido dos camaradas, digo - é muito frustrante para aqueles que utilizam o modelo com volume e com a sua acumulação.

2) Vamos colocar Alpari MT4 à esquerda e Metaquotes MT5 à direita e ficar surpreendidos que os minutos em Metaquotes estejam a fechar muito mais cedo do que em Alpari. Verificamos com time.windows.com e o relógio na nossa mão - a hora do servidor de metaquotas está a contar! - Os negociantes de Pips estão aqui a queixar-se - existe uma fonte aleatória significativa no comércio.

3) Um desejo geralmente ultrajante - podemos fazer ofertas e pedidos para poupança e visualização, separadamente e/ou em conjunto. Perguntaram-me, mas apercebi-me que isso não é realista. Tanto quanto sei, em MT3 em geral, havia algo entre licitar e perguntar, e provavelmente está na história. Agora só licitar.

 
MoneyJinn:

ArrayResize() não funciona correctamente

É isso mesmo. A AsSeries é apenas uma bandeira.
 
TheXpert:
Tudo está correcto. A AsSeries é apenas uma bandeira.

Ver comportamento dos elementos da matriz influenciados peloArraySetAsSeries(Arr,true) e como funciona em 4.

Gostaria de acrescentar que no final de 2011 tudo funcionou correctamente, porque escrevi um código sobre este tema, que agora já não funciona.