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

 
Slava Botalov:

残念ですが、他の製品に乗り換えなければなりません。

提案はすべてGoogleで。ここでは、サードパーティに関するいかなる議論も禁じます。

 
Vladimir Karputov:

提案はすべてGoogleで。ここでは、サードパーティに関するいかなる議論も禁じます。

了解です。私の質問に答えていただき、ありがとうございました。

 
x572intraday:

そういう問題じゃないんです。問題は、特にプログラマーではなく、トレーダーにとって、どこで役に立つのか、ということです。ターミナルでそのような数字を見たことがありません。価格目盛も、発注画面も、すべてどこも同じです(どこか5桁、どこか違う)。

どこで使えるかという問題ではありません。コンピュータには0.72352という数字はなく、0.7235200000000001という数字だけが5桁に出力され、そのためにDoubleToStringという関数があることを知り、コンピュータで数字がどのように表現されるかを知ることである。
 

データをコピーできません。

MqlRates mql_rates[];
bar_kol = Bars("EURUSD", _Period);
copy_rates = CopyRates("EURUSD", _Period, bar_kol, 100, mql_rates);

bar_kolが6105になり、copy_ratesが-1(エラー)になっている。

ログには以下のように表示されています。

EURUSD:2007.01.02から2020.06.30までの履歴をシンクロ。

EURUSD,H1: ヒストリーキャッシュは74955本分あり、2008.01.02 10:00 から 2008.12.31 17:00 までの6105本が含まれています。

EURUSD,H1:履歴は2008.01.02 10:00から始まります。

履歴は74955本でキャッシュされていますが、2008年は同じ6105本が含まれています。すなわち、最大で1年間のコピーバー。6105本以上のコピーはできません。ウィンドウ内のバーの最大数は100000本で、履歴はすべてチャートに表示され、スクロールすることができ、すべてのバーが存在し、すべてがロードされています。文字通り、mql_ratesの配列はコピーされません。

 

実データではないデバッグ。1行にぶら下がったまま、F11やF10を何度も押してもデバッグが続かない。ポインターが1行に留まり、画面が点滅するだけ。

2715を構築。Win10、20H2ビルド19042.746。


只今の記憶状態

 
Ilyas:

教えてください、このような状況でエラーが発生するということは、ZeroMemoryの 潜在的な危険性は何なのでしょうか?

struct A
{
private:
  int i;
};

void OnStart()
{
  A a[1];
  
  ZeroMemory(a); // not allowed for objects with protected members or inheritance
}
 
Aleksey Mavrin:

実データではないデバッグ。1行にぶら下がったまま、F11やF10を何度も押してもデバッグが続かない。ポインターが1行に留まり、画面が点滅するだけ。

2715を構築。Win10、20H2ビルド19042.746。


これがメモリの状態です

最新のベータ版2747にアップデートしてください。

デバッガーでいろいろと変えているのです。

 
fxsaber:

教えてください、このような状況でエラーが発生するということは、ZeroMemoryの潜在的な危険性は何なのでしょうか?

private/protected と const は (ほとんどの場合) 純粋にプログラマのためのもので,コンパイラはコードに課された制限を守るのを助けるだけです。

典型的な例:
他人のライブラリを使っている。ボンネットの下には、不正に変更すると障害が発生するようなリンクのある重いコードがあるので、ライブラリ作成者は計画外の変更を禁止するためにオブジェクトの一部をプライベートで隠している。

 
Ilyas:

private/protectedとconstは(ほとんどの場合)プログラマーだけのもので、コンパイラはコードに課せられた制限を守るのを助けるだけです。

典型的な例:
他人のライブラリを使用する場合、ボンネットの下には不正に変更されると障害を引き起こすリンクのある重いコードがあるため、ライブラリ作成者は計画外の変更を禁止するためにオブジェクトの一部を非公開にします。

わかりました!詳しい説明ありがとうございました。

 

MqlRates構造 体のreal_volumeフィールドはlong型ですが、すべてのlong値の範囲(ドキュメントによると-0x7FFFFFFFFFFFF)の値を格納することができないようです。例えば、0x40000000000000A8 は、フィールド 0xA8 に書き込まれます。カスタムキャラクターについてです。

実際に有効な値の範囲はどこかに指定されていますか?基本的に、通常のロングとして動作しない理由はないのですが......バグのように見えますね。

追記:tick_volumeについても、おそらく同じ問題があると思われます。