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

 
fxsaber:
確認しなかった。
datetime NewTimeCurrent( void )
{
  static ulong PrevStartTime = GetMicrosecondCount();
  static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer()
  
  const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer()
  const ulong NowTime = GetMicrosecondCount();
  
  if (PrevTimeCurrent < NewTimeCurrent)  
  {
    PrevTimeCurrent = NewTimeCurrent;
    
    PrevStartTime = NowTime;
  }
  
  return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));
}
特に、時刻は「現実ではない」ものであり、多くの要因に左右されるため、このような精度は意味がないと思います。正確には、サーバーから時間を取得 する機能が必要です。つまり、SymbolInfoDouble( _Symbol, SYMBOL_SESSION_TIME_INTEREST ) を設定すれば、例えば SymbolInfoInteger( _Symbol, SYMBOL_SESSION_TIME_INTEREST ) ですぐに時間を取得できます(ミリ秒精度で)。それなら大丈夫!
 
fxsaber:
もっと正確に言うと例えば、SymbolInfoTick (+ CopyTicks) を照会することで、すべてのシンボルを実行することができます。そこから時間をミリ秒単位で掻い摘む。ただ、どんな実用的な使い方ができるのかがわからない。

単純なことですが、タイミングです。それが全てです!今は、ティック、センチメント、グラスなど、さまざまなデータがあります。ミリ秒はティックにのみ有効です残りのデータの到着時刻はどうでしょうか?グラスにはそれがない。センチメントも持っていない!?したがって、すべてのデータを一緒に集めると、同期がとれなくなるのです複雑な解析はできない!なぜ開発者がきちんと注意しないのか理解できない。データはあるのに、まともに仕事ができないのですだから、何か作らないといけないのですが、「松葉づえ」でも、結果的には、必ずしも正しく機能するとは限らないのです。

 
TimeCurrent()の バグが修正されました、今日からMQ-Demoに載るとのことです。
 
fxsaber:
TimeCurrentのミリ秒アナログは、GUIに反映されるのがずっと先です。
+1.しかし、上に書いたような値では、別途フェッチオプションを作った方が良い。
 
Alexey Kozitsyn:
TimeCurrent()のバグが修正されました、今日からMQ-Demoに載るとのことです。
ルール化するのが良いだろう
 
fxsaber:
ルール化するのが良いだろう
アプリケーションの作成者以外は何も理解できないので、議論の余地がある。細かい描写は十分だと思います。
 

コンパイルエラー:前に宣言した関数を後で定義することはできません。

int f(); //объявление
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
    return i2;
}
void OnStart()
{
    g();
}
int f() { return 0; }
 
A100:

コンパイルエラー:前に宣言があっても、後から関数を定義することはできません。

int f(); //объявление
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
    return i2;
}
void OnStart()
{
    g();
}
int f() { return 0; }

私には意味がある。

しかし、なぜここに誤りがないのかが不明です。

int f(); //объявление
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
    return i2;
}

class A
{
public:  
  A() { f(); }
};

A a;


void OnStart()
{
    g();
}
int f() { return 0; }
 
fxsaber:

理にかなっていると思う。

しかし、なぜここに誤りがないのか、その理由は明らかではありません。

エラーは、何らかの衝突があった場合にのみ論理的に発生します。すべてが正しく行われている場合 - 無駄なエラーは柔軟性を失わせる

class A; //не зря же такую запись придумали
 
また何かやらかしましたね。

バージョン1531でコンパイルされています。起動時に、出ました。

2017.02.16 18:55:19.101 MQL5 'TradePanel.ex5' はサポートされていない新しいバージョンです、クライアントターミナルを更新してください。

ライブアカウントでなくてよかった。