Erros, bugs, perguntas - página 3126

 
Nikolai Semko #:

Forma-se uma estrutura de dados ou um conjunto de estruturas numa EA ou num indicador e envia-se para um recurso.

O próprio Kanvas trabalha com um recurso gráfico (OBJ_BITMAP_LABEL/ OBJ_BITMAP). Assim tudo o que resta a fazer é comunicar o nome do recurso a outra aplicação e este terá facilmente acesso aos pixéis. Terá também de passar o formato de pixel. E pode ler os pixéis ou alterá-los com outro CCanvas. Tem um método, CCanvas::Attach, para anexá-lo a um recurso existente.

 
Nikolai Semko #:

Qual é o problema, Andrei?
Formação de uma estrutura de dados ou de um conjunto de estruturas

Sem qualquer problema! São apenas os passos extra, é disso que estou a falar.

Qualquer indicador tamponado pode ser lido por qualquer outro indicador ou Expert Advisor.

Por exemplo, tenho uma EA que obtém uma lista de indicadores em funcionamento e depois os cria numa lista específica de instrumentos/TF e depois recolhe sinais deles (e envia-os para telegrama). Assim, qualquer indicador tampão pode simplesmente ser executado num gráfico e será recolhido automaticamente. Mas o indicador kanvas terá de ser ligado manualmente e depois o resto do trabalho deverá ser feito manualmente.

Precisamos de unificar o trabalho com indicadores kanvas. Receio que esta unificação resulte em ... indicadores tampão)))

 
Nikolai Semko #:

Qual é o problema, Andrei?

Não encontrei nenhum e nem sequer procurei por um

 
Andrey Khatimlianskii #:

Não há problema! São apenas gestos desnecessários, é disso que estou a falar.

Qualquer indicador tampão pode ser lido por qualquer outro indicador ou EA, e um Kanvas precisa de uma camada de kastum.

Por exemplo, tenho uma EA que recebe uma lista de indicadores de funcionamento e depois cria-os numa lista específica de instrumentos/TF e depois recolhe sinais dos mesmos (e envia-os para telegrama). Assim, qualquer indicador tampão pode simplesmente ser executado num gráfico e será recolhido automaticamente. Mas o indicador kanvas terá de ser ligado manualmente e depois o resto do trabalho deverá ser feito manualmente.

Precisamos de unificar o trabalho com indicadores kanvas. Receio que esta unificação resulte em ... indicadores tampão))).

Estou a falar de alargar as possibilidades, incluindo a utilização das mesmas classes para visualização, tanto em indicadores como em Conselheiros Especializados. Nos indicadores, claro, existe sempre um método de transferência de tampão e ninguém proíbe a sua utilização no caso de tela pura.
E a propósito, já implementei um método híbrido de transferência, quando um conjunto de estruturas é transferido num buffer através de um sindicato. Embora haja um suplemento adicional do lado receptor, mas em primeiro lugar, não é complicado, e em segundo lugar, torna o trabalho com dados de outro indicador mais fácil e mais conveniente para o utilizador devido às estruturas, e não aos conjuntos de duplas. Os utilizadores irão certamente gostar disto.
 
Mihail Matkovskij #:

O próprio Kanvas trabalha com um recurso gráfico (OBJ_BITMAP_LABEL/ OBJ_BITMAP). Assim, resta comunicar o nome do recurso a outra aplicação e o acesso aos pixels será fácil. Terá também de passar o formato de pixel. E pode ler os pixéis ou alterá-los com outro CCanvas. Tem um método chamado CCanvas::Anexar para anexá-lo a um recurso existente.

É improvável que haja uma tarefa de transferência de um gráfico, uma vez que é frequentemente sincronizado com as barras e o preço da outra janela, e está integrado com o modelo do Evento.
A janela indicadora não se formará se não estiver presente ou se não estiver activa.
Se a janela indicadora não existir, só há passagem através do iCustom utilizando tampão ou amortecedores. Mas, como disse antes, é possível colocar uma estrutura ou um conjunto de estruturas nestes amortecedores.
 
Andrei Trukhanovich #:

Não consegui encontrá-lo e nem sequer estava à procura.

Obrigado por relatar.
Agora sabemos que não
 
Nikolai Semko #:
Além disso, penso que o recurso gráfico não será sequer gerado se a janela indicadora não existir ou não estiver activa.

Em que casos será que um indicador está a funcionar e a sua janela não existe? E quando a janela está inactiva (o utilizador mudou para outro gráfico ou minimizou-o), que recurso é descarregado da memória, é simplesmente apagado?

Nikolai Semko #:
Mas, como eu disse, pode-se colocar uma estrutura ou um conjunto de estruturas nestes amortecedores.

Penso que concordo convosco. Tive de criar um robô multitarefa. A primeira instância de aplicação cria tarefas e cria gráficos para elas, depois aplica um modelo especial com o mesmo robô. Depois o primeiro robô cria as tarefas e os robôs criados pelo autómato executam-nas. A transferência de dados é feita através de recursos. As cadeias de números e estruturas são transferidas para lá. Há um exemplo de transferência de dados via http aqui no sítio web (se a memória me serve correctamente). Mas os dados sobre estruturas, os seus tamanhos e tipos vão primeiro para lá, e depois os próprios dados. Decidi facilitar no meu Conselheiro Especialista, passando as cordas e números através de uma série de uchar-tipos sob a forma de cordas que simplificam muito o processo de leitura/escrita. Mas eu nunca escrevi bytes para os amortecedores indicadores e li-os a partir daí. Mas já vejo uma desvantagem deste método - o número limitado de bytes nas barras indicadoras. Embora, existem 8 bytes em cada célula da matriz. Talvez não seja uma desvantagem tão grande. Quem sabe...

 
Mihail Matkovskij #:

Em que casos será que um indicador está a funcionar mas a sua janela não existe?

Referia-me à utilização do iCustom

E quando a janela está inactiva (o utilizador mudou para outro gráfico ou minimizou-o), que recurso é descarregado da memória, é simplesmente apagado?

esta era apenas a minha suposição, pois não há nenhum ponto especial na formação de imagens quando a janela é minimizada. Como é implementado na MT - não verificou, mas deparou-se com algo semelhante. Esqueci-me de todas as nuances.
De qualquer modo é improvável que o recurso seja eliminado, mas também não é actualizado com o tempo. I.e. CCanvas::Actualização não funciona

void CCanvas::Update(const bool redraw)
  {
//--- check
   if(m_rcname==NULL)
      return;
//--- update resource and redraw
   if(ResourceCreate(m_rcname,m_pixels,m_width,m_height,0,0,0,m_format) && redraw)
      ChartRedraw(this.m_chart_id);
  }
 
Nikolai Semko #:

Referia-me à utilização do iCustom

Acontece que se pode passar valores através do recurso e amortecedores, mas não através do recurso Kanvas. É uma tarefa interessante, chamar um indicador com saída para Kanvas usandoiCustom. Ainda não o experimentei. Parece-me que, neste caso, pode haver erros. Talvez, tal indicador carregado através do iCustom não funcione de todo?

Em qualquer caso, é improvável que o recurso seja eliminado, mas também não é actualizado ao longo do tempo. I.e. CCanvas::Actualização não funciona.

Penso que ResourceCreate está a funcionar, mas o resultado não é apresentado usando ChartRedraw. As chamadas para a função vão, mas o sistema entende que o gráfico não precisa de ser actualizado enquanto está inactivo. Mas se oResourceCreate não funcionar,imagine que o indicador tem dados actualizados ao acaso quando o gráfico está inactivo, mas o recurso de Kanvas não foi actualizado. E então o utilizador decidiu activar este gráfico inactivo e olhar para o indicador (Kanwa). E acontece que havia um carrapato, mas o Canva permanece o mesmo que era antes de o utilizador ter alterado o gráfico. E se, durante o período de inactividade, houvesse muitas carraças? Claro que o indicador os processaria, mas nenhum dos resultados seria mostrado na tela.

 
Mihail Matkovskij #:

Penso que ResourceCreate funciona, mas o resultado não é apresentado com ChartRedraw.

Sim, provavelmente tem razão. É provável que seja este o caso.
E, para poupar recursos, seria correcto monitorizar a actividade da janela e não gerar um bitmap se a janela não estiver activa.

Vale a pena verificar em vez de fazer suposições.