Errori, bug, domande - pagina 1958

 
Anton Ohmat:

Ho testato FX8320 overcloccato fino a 4.2 e i7 5960 alla stessa frequenza (il prezzo è molto più alto e più recente) - quest'ultimo ha mostrato prestazioni 5 volte più veloci per lo stesso numero di core con la stessa ottimizzazione. Forse il test non è proporzionale alla novità del processore, ma comunque la frequenza è la stessa

Ho l'idea che il terminale sia personalizzato per Intel. È così? Se sì, allora cos'è esattamente


Non impossibile. A proposito, ho anche notato che MT4 è più veloce con la memoria a canale singolo che con quella a doppio canale - era l'estate scorsa su AMD.

Se si crede a questi dati http://cpuboss.com/cpus/Intel-Core-i7-5960X-vs-AMD-FX-8320 non dovrebbe esserci una differenza di 5 volte. Confrontare è una questione di confrontare l'overclock solo dopo aver controllato la stabilità, forse il surriscaldamento e AMD inizierebbe a trotterellare.

Tuttavia, fate attenzione al prezzo delle pietre nello stesso link - la differenza di prezzo è 12 volte!

Per un confronto più equo si dovrebbe confrontare con Ryzen 7 1800X che è due volte più economico e secondo questa risorsa http://www.ixbt.com/cpu/amd-r7-1800x.shtml è più veloce in molti compiti.

 
Vitaly Muzichenko:

Il modo corretto per dirlo non è che il terminale è orientato a Intel, ma Intel è orientato al computer. Anche con frequenze più basse, Intel è sempre stata diversi ordini di grandezza meglio di AMD. Non credo che ci sia alcun paragone in termini di consumo energetico e di temperatura.


Non fatevi ingannare, AMD è sempre stata più economica in termini di prestazioni in termini di calcolo/denaro, e nei primi anni 2000 ha superato anche Intel - ricordate gli Atloni.

 
Anton Ohmat:
La questione è aperta, che è meglio xeon 2pc su una scheda o i7 2pc su 2 schede.

Gli Xeon sono diversi: guardate le prestazioni e il prezzo, tutto il resto è secondario.

Oh, guardate anche il consumo di energia - nel corso degli anni potrebbe esserci una differenza significativa.
 
Aleksey Vyazmikin:

Non fatevi ingannare, AMD è sempre stata più economica in termini di costi/benefici Compute/Money, e nei primi anni 2000 ha superato Intel in termini di prestazioni - ricordate gli Atlon.

Li ho scambiati per 5 anni, e non solo parti ma assemblaggi di computer. Forse nei primi anni 2000 erano migliori. Anche la Volga una volta era una super car di classe business... anche se c'è chi le guida ancora oggi.

 
Vitaly Muzichenko:

Li ho scambiati per 5 anni, e non solo parti, ma assemblaggi di computer. Forse all'inizio del 2000 erano migliori. Anche la Volga era una super auto d'affari... anche se c'è chi la guida ancora oggi.


Se siete stati nel commercio dovreste essere consapevoli dei fatti che ho menzionato. Sì, c'è stato un periodo in cui AMD era inferiore nelle prestazioni, ma non nelle prestazioni azionarie. E ora c'èRyzen ed è molto interessante quali risultati avrà con MT4/MT5!

 

Errore durante la compilazione

struct A {
struct B {
} static const b; //error: 'static' - semicolon expected
};
ma per il resto...
struct A {
static const
struct B {
} b;
};
Ok. Ma la prima forma di registrazione è più familiare
 

MQL è OK, ma C++ genera l'errore E2040

void OnStart()
{
        int i1 = 1, const i2 = 2; //нормально
}
 

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

Bug, bug, domande

A100, 2017.08.12 19:50

Almeno qui (*) è un bug, oltre al metodo TrendTenkan da solo (nessuno lo chiama)

enum ENUM_TYPE_TREND {
   TYPE_TREND_FLAT       =3,           // no trend
};
class CSignalIchimoku {
        bool TrendTenkan(const double DiffTenkan);
};
bool CSignalIchimoku::TrendTenkan(const double DiffTenkan)
{
//...
        return(TYPE_TREND_FLAT); //(*) в скобках должно быть true, false или логическое выражение
//...
}
Generalmente, il compilatore avrebbe dovuto emettere un avvertimento in un caso del genere (*), ma tace

Non ha visto il bug. Questo dovrebbe funzionare

if (TYPE_TREND_FLAT)
// ...
 

È un bug o il comportamento corretto?

#define  AMOUNT (#ifdef __MQL5__ 1 #else 2 #endif)

void OnStart()
{
  int Array1[AMOUNT]; // 'AMOUNT' - undeclared identifier
  int Array2[#ifdef __MQL5__ 1 #else 2 #endif]; // no problem
}
 

Non è un errore che un metodo const possa ancora cambiare il campo della sua struttura?

struct STRUCT
{
  int i;
  
  void Func( STRUCT &Struct ) const
  {
    Struct.i = 7;
  }
};

void OnStart()
{
  STRUCT Struct;
  
  Struct.Func(Struct);
  
  Print(Struct.i); // 7
}
Motivazione: