Errori, bug, domande - pagina 1231

 

P./S.: Sono riuscito a scaricare un prodotto dal mercato in MT5 senza autorizzazione del mio conto in MQL5 (non ho provato in MT4 senza autorizzazione).

Non sapevo di questa possibilità prima.

 
meat:

E francamente, i suoi argomenti sono strani. Quelli che non sanno come usarlo, non lo usano. Avete visto molte stronzate in cui si usa FileFlush? Io non ne ho viste .

Quasi tutti l'hanno usato in modo scorretto, e poi hanno "Metatrader lags". Questa funzione WinAPI è estremamente lenta.

Quando siamo passati a 600 builds, abbiamo riscritto completamente l'intera operazione di file e l'abbiamo accelerata decine di volte sulle solite modalità di funzionamento a piccoli morsi.


Eriaprire il file rende il codice più difficile.

Ma ti fa subito pensare alle conseguenze, non mettere FileFlush su ogni tick e poi non essere sorpreso con i risultati nel tester delle strategie di trading.

 
Renat:

Quasi tutti l'hanno usato male, e poi hanno "i freni di Metatrader".

Stai esagerando. Forse c'erano alcuni cattivi codificatori, ma non generalizzare. Dalle tue parole risulta come se tutti qui fossero idioti e idioti.

Ma ti fa subito pensare alle conseguenze...

Renat, non puoi essere serio, per l'amor di Dio! Si ha l'impressione che si diano compiti a casa agli studenti, come se potessero soffrire, ma impareranno a pensare, ecc. ("Duro nello studio - facile in battaglia"). Posizionate MQL come un manuale di formazione per dummies o come uno strumento di lavoro per programmatori? Se il secondo, allora perché mettete bastoni artificiali nella ruota?

Se qualcuno non sa o non è in grado di fare qualcosa - questo è un suo problema personale, lasciatelo imparare. Perché dovrebbero ridurre la funzionalità per tutti gli altri?

 
meat:

Stai esagerando. Forse c'erano alcuni cattivi codificatori, ma non generalizzare. Dalle tue parole risulta come se tutti qui fossero idioti e idioti.

Renat, non puoi essere serio, per l'amor di Dio! Si ha l'impressione che si diano compiti a casa agli studenti, come lasciarli soffrire, ma impareranno a pensare, ecc. ("Duro nello studio - facile in battaglia"). Posizionate MQL come un manuale di formazione per dummies o come uno strumento di lavoro per programmatori? Se il secondo, allora perché mettete bastoni artificiali nella ruota?

Se qualcuno non sa o non è in grado di fare qualcosa - questo è un suo problema personale, lasciatelo imparare. Perché dovrebbero tagliare la funzionalità per tutti gli altri?

Guardate i nostri forum e kodobase, per favore.

Non siamo in una scuola. Siamo in un posto molto peggiore dove si ha un sacco di codice cattivo e dove MetaQuotes è sempre incolpato a priori. Se lo fai così, è colpa tua, e se lo fai al contrario, è ancora colpa tua.

La decisione di sconfiggere FileFlush è venuta dalla comprensione che disabilitarlo è il male minore che vedere i commercianti rallentare e lamentarsi. Non ci siamo limitati a disabilitarlo, abbiamo riscritto completamente l'intero funzionamento dei file in modo che ora sia un motore estremamente efficiente e veloce che mitiga qualsiasi bug e pratiche di sviluppo inefficienti. Abbiamo pensato molto bene.


Per informazione, non sto esagerando, dato che ho personalmente condotto discussioni pubbliche nei nostri forum per oltre 13 anni:


 
crOss:
Prendi un qualsiasi Expert Advisor (dagli esempi di MetaQuotes), eseguilo sotto la build 975 su un certo periodo e con gli stessi parametri,
Ottenere i risultati, cioè il grafico della curva dei rendimenti e la tabella delle offerte.


Ora esegui lo stesso Expert Advisor sotto 1010 build sullo stesso periodo e con gli stessi parametri, otterrai risultati completamente diversi...

P.S. Metatester è a 32 bit.

Cosa mostra la deal analysis nel tester della build 975 e della build 1010?

Trova il punto di divergenza per cominciare. Confrontare il valore degli swap. Guarda i volumi degli scambi

 
Dato che non ho sentito nulla dal Service Desk per una settimana, solleverò il problema qui(MT4 745 build):
1. Ho un indicatore con questo codice:
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   EventSetTimer(10);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start ()
{
   return 0;
}
//+------------------------------------------------------------------+

void OnTimer()
{
   ChartSetSymbolPeriod(0, _Symbol, 1);
}
2. Ho un Expert Advisor con questo codice:
#include <ChartObjects\ChartObjectsTxtControls.mqh>     


CChartObjectButton *p_button1 = NULL;                              
int OnInit()
{
   p_button1 = new CChartObjectButton; 
   p_button1.Create(0, "ddd", 0, 10, 20, 30, 40); // create button
 
   return INIT_SUCCEEDED;
}

void OnDeinit(const int reason)
{
   if (p_button1 != NULL)
   {
      p_button1.Delete();
      delete p_button1;
   }
}
void OnTick(void)
{
}

3. Attacca prima l 'indicatore, poi l'Expert Advisor
4. Rubiamo il grafico e aspettiamo che si blocchi quando si usaChartSetSymbolPeriod
5. Tutto funziona con la commutazione manuale di TF econ la commutazione manuale delle coppie di valute. Ma non funziona con il software (o stack su rilascio curva o qualche perdita ....)


Sono riuscito a risolvere il problema con il TF switching - API come ancora una volta risulta essere più affidabile
Ma come cambiare una coppia di valute con API?

 
ALXIMIKS:
Dato che non c'è alcun feedback dal Service Desk per una settimana, sollevo il problema qui(MT4 745 build):
1. C'è un indicatore con questo codice:
2. C'è un Expert Advisor con questo codice:

3. Attaccare prima l 'indicatore, poi l'esperto
4. Rubiamo il grafico e aspettiamo che si blocchi quando si usaChartSetSymbolPeriod
5. Tutto funziona con la commutazione manuale di TF econ la commutazione manuale delle coppie di valute. Ma non funziona con il software (o stack sul rilascio della curva o qualche perdita ....)


Sono riuscito a risolvere il problema con la commutazione TF - API come ancora una volta risulta essere più affidabile
Ma come passare la coppia di valute a quella desiderata con l'API?

La sua domanda non è persa.

Vi risponderemo sicuramente.

 
Qualcuno può chiarire: ho avuto il mio grado (profilo) in calo negli ultimi giorni. È una nuova caratteristica, solo qualcosa di modificato nell'algoritmo del sito, o qualcos'altro?
 
Renat:

Guardate i nostri forum e kodobaza, per favore.

Non siamo in una scuola. Siamo in un posto molto peggiore, dove c'è un sacco di codice cattivo e dove MetaQuotes è sempre a priori la colpa di tutto. Se lo fai così, è colpa tua; se lo fai al contrario, è ancora colpa tua.

Ha mai pensato che forse lei stesso è responsabile della diffusione di questa storia? Così si scopre che lei si incolpa a priori.Alcuni neofiti si rivolgono a voi con una lamentela che qualcosa non funziona, e invece di spiegare loro educatamente o mandarli a studiare i fatti, vi piegate sotto i loro piedi e rifate il vostro prodotto per soddisfare la loro ignoranza. Alla fine la qualità del prodotto ne risente e questa gente non impara niente.

Capisco se stessimo parlando di una piattaforma di trading. Ma stiamo parlando di un linguaggio di programmazione in cui la flessibilità è importante. E tu togli questa flessibilità. Tu stesso sei un programmatore e probabilmente capisci che non ci sono soluzioni universali. Il tuo presunto meccanismo efficace è adatto solo per alcuni casi particolari ed è assolutamente inutile in altri casi.Uno ha bisogno di scaricare i dati su disco ogni 10 secondi, l'altro - ogni 10 MB, il terzo - ad ogni tick (sì, sì, c'è una tale necessità, se le informazioni sono molto importanti). E ancora, se una persona usa qualcosa in modo scorretto - è un suo problema personale, non c'è bisogno di assecondare la sua ignoranza e piegarsi ad essa.

Non ho iniziato tutto questo per niente. Avevo un codice in cui FileFlush scaricava periodicamente informazioni su disco. E ho notato ultimamente che non viene scaricato nulla, anche se la quantità di dati che salvo è di 30-40 Mb. Infine, quando il terminale va in crash (il che non è un evento raro), tutto è perso. E non vi siete nemmeno preoccupati di avvisarci almeno di questo. Mina completamente la fiducia in MQL, se qualsiasi funzione può smettere di funzionare in qualsiasi momento.

 
meat:

Hai pensato al fatto che potresti essere tu a contribuire alla diffusione di questa storia? Così si scopre che ti consideri a priori in difetto.Alcuni neofiti si rivolgono a voi con una lamentela che qualcosa non funziona, e invece di spiegare loro educatamente o mandarli a studiare i fatti, vi piegate sotto i loro piedi e rifate il vostro prodotto per soddisfare la loro ignoranza. È così che funziona, no? Alla fine la qualità del prodotto ne soffre e questa gente non impara nulla.

Pensiamo costantemente e abbastanza profondamente. Di conseguenza, prendiamo tali decisioni in modo che tutti abbiano meno errori.


Capisco se stessimo parlando di una piattaforma di trading. Ma stiamo parlando di un linguaggio di programmazione in cui la flessibilità è importante. E tu togli questa flessibilità. Tu stesso sei un programmatore e probabilmente capisci che non ci sono soluzioni universali. Il tuo presunto meccanismo efficace è adatto solo per alcuni casi particolari ed è assolutamente inutile in altri casi.Uno ha bisogno di scaricare i dati su disco ogni 10 secondi, l'altro - ogni 10 MB, il terzo - ad ogni tick (sì, sì, c'è una tale necessità, se le informazioni sono molto importanti). E ancora, se una persona usa qualcosa in modo scorretto - è un suo problema personale, non c'è bisogno di assecondare la sua ignoranza e piegarsi ad essa.

Lascia che tu risponda per noi così "questi sono i tuoi problemi personali" sui nostri forum. Vediamo quante ore potete sopportare prima che vi dicano come fare affari e perché vi sbagliate.


Non ho iniziato tutto questo per niente. Avevo un codice in cui FileFlush scaricava periodicamente informazioni su disco. E ultimamente ho notato che non viene scaricato nulla, anche se la quantità di dati raccolti è di 30-40 Mb. Come risultato, quando il terminale va in crash (e questo non è un evento raro) tutto è perso. E non vi siete nemmeno preoccupati di avvertire di questo. Mina completamente la fiducia in MQL, se qualsiasi funzione può smettere di funzionare in qualsiasi momento.

Ho sottolineato sopra che la nostra priorità è quella di lavorare in modo efficiente e massimizzare il rendimento della nostra piattaforma da sola, non di lavorare a parte. Questo si applica principalmente a tutte le operazioni sui file: registri, database e file esperti.

Se siete così desiderosi di lavorare all'esterno con file aperti(e questo di per sé è un problema serio), allora prendete provvedimenti.

Non c'è bisogno di colpire il muro - questa decisione è consapevole e non sarà cambiata.