Minha abordagem. O núcleo é o motor. - página 90

 
fxsaber:

Caro fxsaber.

Eu sei que qualquer dado pode ser trocado através de recursos.

Mas primeiro, elas devem ser convertidas em cadeia e depois, usando StringToChar(), convertidas em uint, e salvas em um recurso. E o código para isso é muito mais simples.

MAS, eu provei que este método é mais lento do que transferir a mesma seqüência, através da descrição do objeto.


Meus oponentes desprezam o tipo de fio e falam sobre o uso de um método mítico de transferir todos os dados de uma só vez através do sindicato.

Além disso, as cordas também devem ser convertidas em uint através da união.


E por que as cordas devem ser convertidas em uint via union quando há StringToChar()???

 
Maxim Kuznetsov:

Internamente, existem apenas e somente GlobalVariables e arquivos para o intercâmbio de dados entre EAs, indicadores e scripts.

Todos os 4 itens acima são "hacks" locais por falta de peixe. Todos estes 4 pontos estão usando mecanismos não projetados para trocar dados arbitrários, muito menos conjuntos de dados.

п1. 100% leva ao bloqueio temporário do fio de interface (sim, os objetos vivem lá e suas "descrições" também) e não funciona no otimizador. As descrições dos objetos são para a descrição dos objetos que podem ser lidos pelo homem,

p2. n2. não funciona em testador e otimizador, e serve para notificar de eventos

P3. p4. Os recursos (mesmo nomeados) são destinados ao armazenamento a longo prazo, não à troca rápida. Eu não posso dizer nada sobre a usabilidade no testador/optimizador :-) Eu utilizo recursos somente leitura

não adianta falar sobre a velocidade das soluções curvas.

ps/ a propósito, você pode usar arquivos, mais precisamente tubos

Você escreveu tudo certo.

Mas os "hacks" são tudo para nós).

No testador, no modo de otimização, a conexão entre o Expert Advisor e o motor não funcionará. Não há necessidade disso.


Para uma troca significativa de valores de parâmetros em eventos, a EA e o motor devem enviar um ao outro dados de até 2000 caracteres em tamanho. Isto não é muito. Mas não é tanto assim.


O hack mais útil é o número 1.

Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
В данном режиме происходит полный перебор всех возможных комбинаций значений входных переменных, выбранных для оптимизации на соответствующей вкладке. Быстрая (генетический алгоритм) В основу данного типа оптимизации заложен генетический алгоритм подбора наилучших значений входных параметров. Данный тип оптимизации значительно быстрее полного...
 
Реter Konow:

Meus oponentes desprezam a cadeia de caracteres e falam sobre o uso do método mítico de transferir todos os dados de uma só vez para o uint, através do sindicato.

Além disso, as cordas também devem ser convertidas para uint via união.

Código acima, que traduz vários tipos ao mesmo tempo (incluindo não apenas cordas, mas um conjunto de cordas) para uint e para trás.

Mas não creio que seja útil nesta discussão.


SZY Se você realmente quiser usar cordas.

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Bibliotecas: HistóriaTicks

fxsaber, 2018.12.04 09:11

// Пример передачи/обмена данных между программами через поле комментария чартов

#include <fxsaber\HistoryTicks\Data_String.mqh> // https://www.mql5.com/ru/code/20298

void OnStart()
{
  int ArrayIn[] = {0, 1, 2, 3, 4, 5};  
  ChartSetString(0, CHART_COMMENT, DATA_STRING::ToString(ArrayIn));    // Записали данные в комментарий чарта

  int ArrayOut[];    
  DATA_STRING::FromString(ChartGetString(0, CHART_COMMENT), ArrayOut); // Прочли данные из комментария чарта
  
  ArrayPrint(ArrayOut);
}
 
fxsaber:

Acima está o código que traduz vários tipos ao mesmo tempo (incluindo não apenas cordas, mas um conjunto de cordas) para uint e para trás.

Mas não creio que seja útil nesta discussão.

Então, você pode traduzir uma série de cordas para uint através do sindicato?

E é mais rápido do que viaStringToChar()?

Se você puder, dê um pequeno e simples exemplo. Eu não consigo entender seu código.

 
Реter Konow:

Então você pode converter um conjunto de cordas para uint via união?

E é mais rápido queStringToChar()?

Se possível, por favor, dê um pequeno e simples exemplo. Não consigo entender seu código.

O exemplo estava nesta linha aqui.

Para reproduzi-la, é necessário fazer um link para a biblioteca referenciada no código do exemplo.

Мой подход. Ядро - Движок.
Мой подход. Ядро - Движок.
  • 2018.12.19
  • www.mql5.com
В этой ветке, я хочу рассказать о своем подходе в программировании. Заранее предупреждаю, - здесь не будет обсуждений GUI...
 
fxsaber:

...

ZS Se você realmente quer passar pelas linhas

Qual é o tamanho máximo de comentário?

 
Реter Konow:

Você escreveu tudo bem.

Mas "hacks" são nosso tudo)).

No testador, no modo de otimização, a ligação entre o Expert Advisor e o motor não funcionará. Você não precisa disso.


Para uma troca significativa de valores de parâmetros em eventos, a EA e o motor devem enviar um ao outro dados de até 2000 caracteres em tamanho. Isto não é demais. Mas também não é um pouco.


O hack mais conveniente é o número 1.

Com este "hack mais amigável", é possível pisar no "ancinho das crianças", ou seja, nos modelos que são muito apreciados pelos usuários e utilizados quando da recarga.
 
fxsaber:
...


ZS Se você realmente quer passar pelas linhas

O comentário do gráfico tem um tamanho limitado. Ou será que sim? Eu meio que tropecei nele.

 

Outra questão séria.

Eu mesmo ainda não tentei, mas há dúvidas sobre a eficácia da troca rápida através de recursos.

Troca rápida, - 16 milissegundos para frente e para trás em uma base constante.

O disco não será sobrecarregado?

 
Maxim Kuznetsov:
Com este "hack mais conveniente" você pode pisar em um "ancinho infantil", ou seja, modelos, muito preferidos pelos usuários e usados na recarga.

Por favor, explique.

ZS. Objetos com nomes especiais serão usados para comunicação. A fim de evitar coincidências com objetos do usuário.

Razão: