Errori, bug, domande - pagina 2264

 

Per favore aiutatemi, non riesco ancora a capire le ragioni.


Questo codice si compila per qualche ragione sconosciuta

class A {};

class B : public A
{
public:
  void f()
  {
    Print(__FUNCTION__);
  }
};

void OnStart()
{
  A a;
  
  ((B*)(&a)).f(); // OK
}

ma si blocca in fase di esecuzione. Pensavo fosse un bug di compilazione - niente di che.


Ma poi ho scritto il codice in questo modo

#property script_show_inputs

input string FileName = "Alpari_GBPAUD.ZIP";

#include <Zip\Zip.mqh> // https://www.mql5.com/ru/articles/1971

void OnStart()
{
  CZip Zip;

  Zip.LoadZipFromFile(FileName, 0);

  uchar Bytes[];

  ((CZipFile*)Zip.ElementAt(0)).GetUnpackFile(Bytes);
  Print("UnZip - unpack size " + (string)ArraySize(Bytes) + " bytes.");  
}


Non solo compila, ma viene anche eseguito con successo! Devo essere molto stupido da qualche parte, ma non sono riuscito a capire perché funziona senza problemi.

Purtroppo non sono riuscito a localizzarlo, quindi l'esempio con ZIP-bibble. E, molto probabilmente, sarebbe una seccatura capirlo. Ma non importa.

 

Il terminale (1881) va in crash durante il debug se la variabile è in formato binario

Gioca l'animazione per vedere

Questo probabilmente si applica solo alle variabili di unione

 
Nikolai Semko:

Il terminale (1881) va in crash durante il debug se la variabile è in formato binario

Gioca l'animazione per vedere

Questo probabilmente si applica solo alle variabili di unione

Grazie per il messaggio.

Riparato.
La correzione sarà inclusa nella prossima build.

 
fxsaber:

Per favore aiutatemi, non riesco ancora a capire le ragioni.


Questo codice si compila per qualche ragione sconosciuta

ma si blocca in fase di esecuzione. Ho pensato - beh, è un bug di compilazione - niente di che.

...

State cercando di lanciare un puntatore a un oggetto di tipo A a un puntatore a un oggetto di tipo B, il che è un chiaro errore, perché A non è ereditato da B
 
Ilyas:
State cercando di lanciare un puntatore a un oggetto di tipo A a un puntatore a un oggetto di tipo B, il che è un errore evidente poiché A non è ereditato da B

Questo lo capisco. Ma non è affatto chiaro perché la stessa azione nell'esempio ZIP-bibbia funzioni. Lì è esattamente lo stesso fantasma.

ZS L'ho capito.

 

La retroilluminazione si spegne... poi riappare


File:
Error1.mqh  1 kb
 

Ho affrontato un tale problema quando ho testato irisultati su quattro e cinque cifre (specialmente su MT4 piccolo) in MT4. I risultati sono significativamente diversi (il riconoscimento a 5 e 4 cifre è implementato nell'Expert Advisor) almeno il numero di operazioni aumenta significativamente. Chi sa o ha suggerito la ragione? Forse non dipende dal segno, ma dal tipo di esecuzione dell'ordine - normale e a mercato?

P.S. In entrambi i casi le citazioni sono state caricate attraverso Tisckstory.


Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Buon pomeriggio. Potete dirmi se è possibile cambiare le impostazioni di visualizzazione dell'indicatore dal codice dell'Expert Advisor? Per esempio, il colore o lo spessore delle linee. Grazie in anticipo.
 
SuhanovDM94:
Salve, vorrei condividere con voi i miei pensieri su questo argomento. Sai se è possibile cambiare le impostazioni di visualizzazione dell'indicatore dall'interno del codice di Expert Advisor? Per esempio, il colore o lo spessore delle linee. Grazie in anticipo.

Si può, ma

  1. Solo al momento della creazione dell'indicatore
  2. Solo se il colore dell'indicatore e le impostazioni della linea sono inclusi nei parametri di ingresso (un esempio di tale indicatore èCustom Moving Average Inputs)

 
SuhanovDM94:
Salve. Sapete se è possibile cambiare le impostazioni di un indicatore di visualizzazione dall'interno del codice di un Expert Advisor? Per esempio, il colore o lo spessore delle linee. Vorrei ringraziarvi in anticipo.

Perché vuoi cambiare il colore e lo spessore dell'EA? Non influisce in alcun modo sulle sue prestazioni. Ti serve per una foto? Quindi cambiatelo in un modello nelle impostazioni dell'indicatore.