GUI de origem popular. Testes beta abertos. - página 18

 
Реter Konow:

Esclareça, esses 'nós' são objetos dinâmicos e interativos, assim como as ligações entre eles? Não é apenas um esquema, não é? Se assim for, eu vi algo semelhante no construtor de estratégias gráficas de Andrei Barinov. É isso que você quer dizer?

A lógica de ligações entre nós é imutável e segue regras predefinidas, ou é um esquema frívolo criado a seu gosto?

Em princípio, não vejo nada de difícil para criá-lo. É um trabalho de dois ou três dias. Eu não preciso de nenhum código extra. Eu mesmo o farei, depois das coisas principais que são uma prioridade neste momento.

Sim, esta é uma representação da estratégia, só não a de Andrei Barinov, meus próprios desenvolvimentos.

A edição visual não é esperada. Haverá geração automática.

"Não há necessidade de código adicional". - Portanto, pode não haver uma estratégia sob a forma de um arquivo. Então você quer fazer um interpretador? Nós já temos um, por que você precisa dele :) ? Posso lhe enviar exemplos de como trabalhar com a estratégia, é fácil e conveniente.

Aqui está um exemplo:

#include <Greshnik\\Strategy.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   cStrategy *st=new cStrategy();
   st.Read_from_file("Strategy\\Test\\1.txt");  //Читаем с файла
   st.Print_strategy();                         //Вывести в лог
   int count_top_nodes=st.Get_top_nodes_count();//Количество узлов на вершине
   int my_node=-1;
   for(int i1=0; i1<count_top_nodes; i1++)
     {
      int node_id=st.Get_top_node(i1);
      if(node_id<0)
        {
         Print("Узла на вершине нету по индексу:",i1);
        }
      else
        {
         my_node=node_id;
        }
     }
   if(my_node>=0)
     {
      Print("Тип узла: ",EnumToString(st.Get_node_type(my_node)));
      Print("Количество родительских узлов: ",st.Get_parents_nodes_count(my_node));
     }
   delete st;
  }

Quando há um erro, você precisa olhar o registro, lá em russo tudo.

E no código fonte, tudo é descrito.

 
Aliaksandr Hryshyn:

Tal exemplo, não reflete como eu quero que ele seja, mostra a estrutura e algumas características. Os nós também têm algumas informações a mostrar. Direção de baixo para cima.

Não há como sem código adicional, ele permite ler este tipo de estrutura a partir de um arquivo de texto e obter todas as informações sobre ele.

Eu gostaria de uma boa apresentação desta estrutura.

Ela precisa de criação dinâmica de elementos gráficos.

Aqui está um exemplo de um arquivo com este tipo de estrutura, você pode ver para que serve a estrutura :)

Este arquivo pode ser lido por código e há fácil acesso a todos os parâmetros da estrutura. Nem todos os tipos de nós estão representados aqui.

Não insisto na ajuda, sei que ela requer algum esforço. É necessário algum problema de posicionamento ótimo do nó, não é bom colocar por lista devido à má legibilidade da estrutura.

A estrutura não tem laços. Para atravessar o gráfico você pode usar a recursividade a partir de um vértice, marque os nós onde você já esteve. Então você escolhe qualquer nó não marcado e define todos os nós a partir dele, que formam outro gráfico não conectado ao principal, etc.

Eu mesmo poderia ter feito tudo isso, mas agora há muitas outras tarefas.

Isto não é mais para Peter. Não o distraia, por favor.
É mais para você.

 
Aliaksandr Hryshyn:

Sim, esta é uma apresentação da estratégia, mas não por Andrei Barinov, seu próprio trabalho.

Nenhuma edição visual está prevista. Haverá geração automática.

"Não há necessidade de código extra". - Portanto, pode não haver uma estratégia sob a forma de um arquivo. Então você quer fazer um interpretador? Nós já temos um, por que você precisa dele :) ? Posso lhe enviar exemplos de como trabalhar com a estratégia, é fácil e conveniente.

Aqui está um exemplo:

Quando há um erro, você precisa olhar o registro, lá em russo tudo.

E na fonte tudo é descrito.

Eu posso criar uma solução geral para todos esses esquemas interativos e flexíveis, mas não é cedo. No seu caso, você precisa de uma solução específica, adequada a uma determinada idéia. Não tenho certeza se posso ajudar com isso. É preciso criar primeiro a "mecânica" gráfica dos nós e links, e depois ajustar para idéias específicas. Eu posso criar a mecânica, mas mais "afinação", irá reduzir o alcance da aplicação e torná-la um projeto individual. Talvez o Nikolay possa ajudar. Estou muito ocupado no momento.

 
Реter Konow:

Eu poderia criar uma solução geral, para todos os tipos de esquemas interativos e flexíveis, mas é um tiro no escuro. No seu caso, você precisa de uma solução específica que se ajuste a uma idéia específica. Não tenho certeza se posso ajudar com isso. É preciso criar primeiro a "mecânica" gráfica dos nós e links, e depois ajustar para idéias específicas. Eu posso criar a mecânica, mas mais "afinação", irá reduzir o alcance da aplicação e torná-la um projeto individual. Talvez o Nikolay possa ajudar. Estou muito ocupado no momento.

Bom.

 
Nikolai Semko:

Isto não é mais para Peter. Não o distraia, por favor.
É mais para você.

Sim, é isso mesmo.

 
Aliaksandr Hryshyn:

Tal exemplo, não reflete como eu quero que ele seja, mostra a estrutura e algumas características. Os nós também têm algumas informações a mostrar. Direção de baixo para cima.

Não há como sem código adicional, ele permite ler este tipo de estrutura a partir de um arquivo de texto e obter todas as informações sobre ele.

Eu gostaria de uma boa apresentação desta estrutura.

Ela precisa de criação dinâmica de elementos gráficos.

Aqui está um exemplo de um arquivo com este tipo de estrutura, você pode ver para que serve a estrutura :)

Este arquivo pode ser lido pelo código e há fácil acesso a todos os parâmetros da estrutura. Nem todos os tipos de nós estão representados aqui.

Não insisto na ajuda, sei que ela requer algum esforço. É necessário algum problema de posicionamento ótimo do nó, não é bom colocar por lista devido à má legibilidade da estrutura.

A estrutura não tem laços. Para atravessar o gráfico você pode usar a recursividade a partir de um vértice, marque os nós onde você já esteve. Então você escolhe qualquer nó não marcado e define todos os nós a partir dele, que formam outro gráfico não conectado ao principal, etc.

Eu mesmo poderia fazer tudo isso, há apenas muitas outras tarefas agora.

Existem ferramentas clássicas para visualização gráfica: http: //www.graphviz.org/documentation/ aka https://en.wikipedia.org/wiki/DOT_(graph_description_language)

ou seja, você tem que gerar um arquivo .dot de seu gráfico de acordo com sua estrutura e executar o renderizador (há vários para escolher)

Se não estou enganado, o arquivo .dot pode ser aberto no yEd(https://www.yworks.com/products/yed) para corrigi-lo com o mouse :-)

A visualização gráfica PS. não é uma tarefa muito fácil, para dizer o mínimo :-) Ainda está sendo resolvido no mundo...

 
Portanto, eu gostaria de uma solução MQL. OK, eu mesmo terei que fazer isso :).
 

Podemos apenas especular como o código gerado pela ferramenta de Peter se ligará ao resto do programa.

"Kernel, markup" ..... sem comentários.

Entendo os seguintes tipos de marcação: xml, html, json, xaml e assim por diante.

Entendo a herança, que permite tanto modificar os controles de fonte quanto subscrever seus eventos sem mergulhar no código fonte dos controles.

Peter usa programação processual, portanto, referindo-se a um controle como um objeto, já que não há objetos a priori em Peter, é impossível.

O que significa que não se pode alterá-los na hora, muito menos ligá-los aos dados.

Esperamos... Estamos esperando para ver como isso vai acontecer. Mas seria melhor se Peter gerasse ex4 em vez de mqh para que não tivéssemos que cavar em ... núcleo.

 
Алексей Барбашин:

Podemos apenas especular como o código gerado pela ferramenta de Peter se ligará ao resto do programa.

"Kernel, markup" ..... sem comentários.

Entendo os seguintes tipos de marcação: xml, html, json, xaml e assim por diante.

Entendo a herança, que permite tanto modificar os controles de fonte quanto subscrever seus eventos sem mergulhar no código fonte dos controles.

Peter usa programação processual, portanto, referindo-se a um controle como um objeto, já que não há objetos a priori em Peter, é impossível.

O que significa que não se pode alterá-los na hora, muito menos ligá-los aos dados.

Esperamos... Estamos esperando para ver como isso vai acontecer. Mas seria melhor se Peter gerasse ex4 em vez de mqh para que não tivéssemos que cavar em ... núcleo.

Isso é engraçado :) Todo o miolo está recheado de objetos.

Alexey, você prometeu ajudar-me a testá-lo. É de seu crédito que este editor verá a luz do dia. Você me motivou a terminar o trabalho.

Assim que eu colocar o editor (na terça-feira), juntos criaremos um painel simples de botões, caixas de seleção e campos de entrada e o conectaremos a um simples Expert Advisor. E todas as perguntas serão respondidas de uma só vez).

 
Aliaksandr Hryshyn:
Portanto, eu gostaria de uma solução em MQL. OK, eu mesmo terei que fazer isso :).

é hora de sair da caixa de areia :-) uma espátula bebê não é suficiente...

tarefas diferentes requerem ferramentas diferentes

por outro lado: você pode martelar em parafusos com um martelo (mesmo um microscópio)

Razão: