Il mio approccio. Il nucleo è il motore. - pagina 90

 
fxsaber:

Caro fxsaber.

So che qualsiasi dato può essere scambiato tramite risorse.

Ma prima, devono essere convertiti in stringa e poi, usando StringToChar(), convertiti in uint, e salvati in una risorsa. E il codice per questo è molto più semplice.

MA, ho dimostrato che questo metodo è più lento del trasferimento della stessa stringa, tramite la descrizione dell'oggetto.


I miei avversari disprezzano il tipo stringa e parlano di usare il metodo mitico di trasferire tutti i dati a uint in una volta sola attraverso l'unione.

Inoltre, le stringhe devono anche essere convertite in uint attraverso l'unione.


E perché le stringhe dovrebbero essere convertite in uint tramite union quando c'è StringToChar()?

 
Maxim Kuznetsov:

Internamente, ci sono solo e soltanto GlobalVariables e file per lo scambio di dati tra EA, indicatori e script.

Tutti e 4 gli articoli di cui sopra sono "hack" locali per mancanza di pesce. Tutti questi 4 punti utilizzano meccanismi non progettati per scambiare dati arbitrari, tanto meno array di dati.

п1. Il 100% porta al blocco temporaneo del thread di interfaccia (sì, gli oggetti vivono lì e anche le loro "descrizioni") e non funziona nell'ottimizzatore. Le descrizioni degli oggetti sono per la descrizione leggibile dall'uomo degli oggetti,

p2. n2. non funziona nel tester e nell'ottimizzatore, e serve a notificare gli eventi

P3. p4. le risorse (anche nominate) sono destinate alla conservazione a lungo termine, non allo scambio rapido. Non posso dire nulla sull'usabilità in tester/optimizer :-) Uso risorse di sola lettura

non ha senso parlare della velocità delle soluzioni curve.

ps/ a proposito si possono usare i file, più precisamente i tubi

Hai scritto tutto bene.

Ma gli "hack" sono il nostro tutto).

Nel tester, nella modalità di ottimizzazione, la connessione tra l'Expert Advisor e il motore non funziona. Non ce n'è bisogno.


Per uno scambio significativo di valori di parametri durante gli eventi, l'EA e il motore devono inviarsi reciprocamente dati fino a 2000 caratteri. Questo non è molto. Ma non è così tanto.


L'hack più utile è il numero 1.

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

I miei avversari disdegnano il tipo stringa e parlano di usare il mitico metodo di trasferire tutti i dati in una volta in uint, attraverso l'unione.

Inoltre, le stringhe devono anche essere convertite in uint tramite l'unione.

Sopra il codice che converte diversi tipi in una volta (incluso non solo stringhe ma un array di stringhe) in uint e viceversa.

Ma non credo che sia utile in questa discussione.


SZY Se volete davvero usare le stringhe.

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Biblioteche: HistoryTicks

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:

Qui sopra c'è del codice che traduce diversi tipi in una volta (incluso non solo stringhe, ma un array di stringhe) in uint e viceversa.

Ma non credo che sia utile in questa discussione.

Quindi, potete tradurre un array di stringhe in uint attraverso l'unione?

Ed è più veloce che tramiteStringToChar()?

Se potete, fate un piccolo e semplice esempio. Non riesco a capire il tuo codice.

 
Реter Konow:

Quindi si può convertire un array di stringhe in uint tramite l'unione?

Ed è più veloce diStringToChar()?

Se possibile, fate un piccolo e semplice esempio. Non riesco a capire il tuo codice.

L'esempio era in questo thread qui.

Per riprodurlo, è necessario collegarsi alla libreria a cui si fa riferimento nel codice di esempio.

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

...

ZS Se vuoi davvero passare attraverso le linee

Qual è la dimensione massima dei commenti?

 
Реter Konow:

Hai scritto tutto bene.

Ma gli "hack" sono il nostro tutto)).

Nel tester, nella modalità di ottimizzazione, il collegamento tra l'Expert Advisor e il motore non funziona. Non ne hai bisogno.


Per uno scambio significativo di valori di parametri durante gli eventi, l'EA e il motore devono inviarsi reciprocamente dati fino a 2000 caratteri. Questo non è troppo. Ma non è nemmeno poco.


L'hack più conveniente è il numero 1.

con questo "hack più user-friendly", è possibile calpestare il "rastrello dei bambini", cioè i template molto amati dagli utenti e utilizzati quando si ricarica.
 
fxsaber:
...


ZS Se vuoi davvero passare attraverso le linee

Il commento del grafico ha una dimensione limitata. O forse sì? Mi ci sono imbattuto per caso.

 

Un'altra domanda seria.

Non l'ho provato personalmente, ma ci sono dubbi sull'efficacia dello scambio rapido attraverso le risorse.

Scambio veloce, - 16 millisecondi avanti e indietro su base costante.

Il disco non sarà sovraccaricato?

 
Maxim Kuznetsov:
Con questo "hack più comodo" si può calpestare un "rastrellamento infantile", cioè i template, molto preferiti dagli utenti e utilizzati al ricaricamento.

Si prega di spiegare.

ZS. Gli oggetti con nomi speciali saranno usati per la comunicazione. Per evitare la coincidenza con gli oggetti dell'utente.

Motivazione: