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

 
Andrey Dik:

つまり、SymbolInfoTick()関数でMqlTick構造体を満たした後、正しい値かどうかをチェックする必要があるのでしょうか?- なぜなら、AskとBidの値はマイナスを含む任意の値でよいからです。それとも、SymbolInfoTick()からtrueを取得すればよいのでしょうか?

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

MetaTrader 5 build 2755の新機能:Quotesウィンドウとデバッガの改善

fxsaber, 2021.02.15 03:02

ゼロ価格 COPY_TICKS_INFO-tic はエラー?

void OnStart()
{
  MqlTick Ticks[];
  
  CopyTicksRange("GBPUSD", Ticks, COPY_TICKS_INFO, D'2020.10.02 23:54:54' * 1000, D'2020.10.05 00:07:01' * 1000);
    
  ArrayPrint(Ticks);
  Print(AccountInfoString(ACCOUNT_SERVER));
}


結果

                         [time]   [bid]   [ask] [last] [volume]    [time_msc] [flags] [volume_real]
        [0] 2020.10.02 23:54:54 1.29378 1.29385 0.0000        0 1601682894091       4       0.00000
        [1] 2020.10.02 23:54:54 1.29377 1.29383 0.0000        0 1601682894404     134       0.00000
        [2] 2020.10.02 23:54:54 1.29375 1.29379 0.0000        0 1601682894471     134       0.00000
        [3] 2020.10.02 23:54:55 1.29375 1.29381 0.0000        0 1601682895248       4       0.00000
        [4] 2020.10.05 00:06:14 0.00000 1.29313 0.0000        0 1601856374091       6       0.00000
        [5] 2020.10.05 00:07:00 1.29271 1.29332 0.0000        0 1601856420497     134       0.00000
        [6] 2020.10.05 00:07:00 1.29271 1.29331 0.0000        0 1601856420497       4       0.00000
        RannForex-Server
 
inwinterborn:

デバッグ中にブレークポイントが次の関数に移動するのは、ヒストリー上でもオンライン(Ctrl+F5、F5)でも同じですが、なぜか教えてください。

何度も確認した。すべての説明は添付のスクリーンショットにあります。

これはバグなのでしょうか?


説明:

1.1) Series.mqh line 81; 2) TimeSeries.mqh line 48
2.手動でブレークポイントを2つ設定しました。ExpertMACD.mq5ファイル
3.に移動します。ヒストリカルデータまたはリアルデータでデバッグを開始する
4.Series.mqhというファイルで、ブレークポイントがない94行目でデバッガが停止してしまいます。その行は、私の手動ブレークポイントの次の関数の開始点であり、81行目から消えているか、移動しています。
5.TimeSeries.mqhの2つ目の手動ブレークポイントを確認すると、これも48行目から63行目に移動しており、やはり前のブレークポイントの次の関数に移動しています。


どのような問題が考えられるか教えてください。

 
inwinterborn:


説明:

1.1) Series.mqh line 81; 2) TimeSeries.mqh line 48
2.手動でブレークポイントを2つ設定しました。ExpertMACD.mq5ファイル
3.に移動します。ヒストリカルデータまたはリアルデータでデバッグを開始する
4.Series.mqhというファイルで、ブレークポイントがない94行目でデバッガが停止してしまいます。その行は、私の手動ブレークポイントの次の関数の開始点であり、81行目から消えているか、移動しています。
5.TimeSeries.mqhの2つ目の手動ブレークポイントを確認すると、これも48行目から63行目に移動しており、やはり前のブレークポイントの次の関数に移動しています。


どのような問題が考えられるか教えてください。

エディターの設定を確認する - 最適化をオフにする。

 
Vladimir Karputov:

エディターの設定を確認する - 最適化を無効にする。

返信ありがとうございます、でも役に立ちません。

確かにオプションは有効になっていました。

無効化する。それを繰り返した。結果は上記と同じです。

ターミナルを閉じて、新しい設定でエディタ。

再び開き直る。繰り返しています。結果は同じです。

他に何が問題なのでしょうか?


 
inwinterborn:

返信ありがとうございます、でも役に立ちません。

確かにオプションは有効になっていました。

解除した。それを繰り返した。結果は上記と同じです。

ターミナルを閉じて、新しい設定でエディタ。

再び開き直る。繰り返しています。結果は同じです。

他に何が問題なのでしょうか?


バージョン2833を試してみてください - 何かが変わったかもしれません...

 
Vladimir Karputov:

バージョン2833を試してみてください - 何かが変わったかもしれません.

2834への自動アップグレード がありました。

結果に変更はありません。ブレイクポイントがずれている

 
fxsaber:

このコードでは関数の戻り値をチェックしていないので、Ticks構造体の内容が正しいかどうか判断がつきません。

また、CopyTicksRangeを 呼び出したときにエラーがなければ、構造体のゼロ値を正常とみなすべきで、そうでなければ誰を信用すればいいのでしょうか?どんな価格なら正常と言えるのか(0.0価格でなくとも、"どんな!"価格でも良いという意味です)。価格が間違っていた場合、誰に文句を言えばいいのか、スポルトロート?ブローカーはMQを非難し、MQはブローカーを非難することになります。この問題は、案外深刻です。

 
Andrey Dik:

このコードでは関数の戻り値をチェックしていないので、Ticks構造体の内容が正しいかどうか判断がつきません。

また、CopyTicksRangeを 呼び出したときにエラーがなければ、構造体のゼロ値を正常と見なすべきで、そうでなければ誰を信用すればいいのでしょうか?どんな価格なら正常と言えるのか(0.0価格でなくとも、"どんな!"価格でも良いという意味です)。価格が間違っていた場合、誰に文句を言えばいいのか、スポルトロート?ブローカーはMQを非難し、MQはブローカーを非難することになります。この問題は、案外深刻です。

このコードは、価格がどのようになり得るかを示しています。自分のコードを見てみた。こういうのとか、くだらないチェックはやめましょう。MT5だけで様々な場所で100万回以上のトレードを間違いなく行っています。実践とはかけ離れた質問です。

 
fxsaber:

コードは、価格がどのようになるかを示して います。自分のコードを見てみた。こういうのとか、くだらないチェックはやめましょう。MT5だけで様々な場所で100万回以上のトレードを間違いなく行っています。実用とはほど遠い質問ですね。

それこそ、値段なんて何でもいいわけで、どれが正しいと思う?これ等の馬鹿なチェックはしないのに、同じように馬鹿 だけど ずっと高価な0.0値チェックはするんですか?

 
inwinterborn:

デバッグ中にブレークポイントが次の関数に移動するのは、ヒストリー上でもオンライン(Ctrl+F5、F5)でも同じですが、なぜか教えてください。

何度も確認した。すべての説明は添付のスクリーンショットにあります。

これはバグなのでしょうか?

CSeries::BufferResizeのエキスパートが全く入らないように、ブレークポイントが 移動される。