エラー、バグ、質問 - ページ 1958

 
Anton Ohmat:

4.2までオーバークロックしたFX8320と、同じ周波数のi7 5960(価格はずっと高く、新しい)をテストしたところ、後者は同じコア数で同じ最適化で5倍速い性能を示したのです。おそらく、このテストはプロセッサーの新しさに比例していないのだろうが、それでも周波数は同じである

端末はIntel用にカスタマイズされているのではと見当をつけました。そうなんですか?もしそうなら、それは具体的にどのようなものですか?


不可能ではありません。ちなみに、MT4はデュアルチャネルよりシングルチャネルメモリの方が速いということも、去年の夏、AMDで実感しました。

このデータ http://cpuboss.com/cpus/Intel-Core-i7-5960X-vs-AMD-FX-8320 を信じるなら、5倍もの差はないはずです。比較するのは、安定性を確認してからオーバークロックすることで、もしかしたらオーバーヒートしてAMDがトロトロし始めるかもしれません。

ただし、同じリンク先の石の価格には注意が必要で、価格差は12倍です

より公平な比較のためには、2倍安いRyzen 7 1800Xと比較する必要があり、このリソースによれば、http://www.ixbt.com/cpu/amd-r7-1800x.shtml、多くのタスクでより高速です。

 
Vitaly Muzichenko:

正しくは、端末がインテル向けなのではなく、インテルがコンピュータ向けなのです。周波数が低くても、Intelは常にAMDより数段優れています。消費電力や温度の面では比較にならないと思います。


誤解を恐れずに言えば、AMDは常にコンピュート/マネーの面で性能的に安く、2000年代初頭にはインテルも凌駕していました--アトロンを思い出してみてください。

 
Anton Ohmat:
1枚のボードに2個のxeonと2枚のボードに2個のi7、どちらが良いかは未定です。

Xeonは違います。性能と価格を見て、それ以外のことは二の次です。

あと、消費電力も見てください。何年か経つと、かなりの差が出るかもしれません。
 
Aleksey Vyazmikin:

誤解を恐れずに言えば、AMDは常にコスト/ベネフィットCompute/Moneyの面で安く、2000年代初頭には性能面でIntelを凌駕していました - Atlonsを思い出してください。

5年間、部品だけでなく、コンピュータのアセンブリも取引しました。2000年代前半はもっと良かったのかもしれませんね。ボルガ車もかつてはビジネスクラスのスーパーカーだった......今も乗っている人がいるけれどね。

 
Vitaly Muzichenko:

5年間下取りに出したのですが、部品だけでなく、コンピュータのアセンブリもありました。2000年初頭はもっと良かったかもしれませんね。ボルガも昔は超ビジネスカーだったんですけどね...今でも乗っている人がいますけど。


もし、あなたがこの業界にいたなら、私が述べたような事実を知っているはずだ。たしかに、AMDが性能で劣っていた時期はありましたが、株価のパフォーマンスで劣っていたわけではありません。そして、今度はRyzenですが、MT4/MT5でどのような結果になるのか、非常に興味深い です

 

コンパイル時のエラー

struct A {
struct B {
} static const b; //error: 'static' - semicolon expected
};
が、それ以外は...。
struct A {
static const
struct B {
} b;
};
OKしかし、最初の記録形式はより身近なものです
 

MQLはOKだが、C++はエラーE2040が発生する。

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

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

バグ、バグ、質問

A100, 2017.08.12 19:50

少なくともここ(*)は、TrendTenkanメソッド単体(誰も呼び出さない)の他に、バグがあります。

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 или логическое выражение
//...
}
一般的には、このような(*)場合、コンパイラは警告を発するはずですが、沈黙しています

バグを見なかったか。これは動作するはずです

if (TYPE_TREND_FLAT)
// ...
 

これはバグなのでしょうか、それとも正しい動作なのでしょうか?

#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
}
 

constメソッドでも構造体のフィールドを変更できるのは間違いではないか?

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

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