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

 

Fractals.mq5 のソースコードには、このようなフラクタル計算のためのエントリーがあります(74行目、79行目)。

//---- Upper Fractal
if(high[i]>high[i+1] && high[i]>high[i+2] && high[i]>= high[i-1] && high[i]>= high[i-2])

//---- Lower Fractal
if(low[i]<low[i+1] && low[i]<low[i+2] && low[i]<= low[i-1] && low[i]<= low[i-2])

この計算では、>=と<=の等号(赤字)に惑わされます。

私はいつも、少なくとも5本のバーの組み合わせの中で、平均的なバーが最も高い最大値を持つとき、つまり、左右に隣接する2つの高値よりも常に高い(高くもなく等しくも ない)ときに、上方フラクタルを形成すると考えて います。それぞれフラクタルが下向きの状態で上記の部分では、等号が許可されていることがわかります。Fractals.mq5 のコードに誤りがないか確認してください。

 

電波は出ているし、モニタリングでは100パーセントのダンプが出ているし、アカウントも問題ない。3日間、サービスデスクにも会社のスタッフにも電話をかけ続けてノックした。答えになってない...

どうすれば解決できるのか......?

 
Stanislav Olhovsky:

電波は出ているし、モニタリングでは100パーセントのダンプが出ているし、アカウントも問題ない。3日間、サービスデスクにも会社のスタッフにも電話をかけ続けてノックした。答えになってない...

どうすれば解決できるのか......?

稼いだ金額以上の金額を引き出すと、残高曲線がゼロにならないので、注意が必要です。
 

Innovations in favorites」にも書きましたが、沈黙が続いています。ここに書きます。

Windows 10 x64、Mozilla Firefox 39.0。個人 アカウントで添付画像やファイルを送信 できないのですが...。

 
Karputov Vladimir:
また、残高曲線がゼロにならないように、獲得した金額以上の引き出しをしないようにしましょう。

信号はほぼ4ヶ月間機能しており、肋骨の追加だけで、誰もそこに何かを撤回したことはありません、すべてが正常で、安定した成長でした...。端末では正常、別のオンラインモニタリングでは・・・。

mybookのスクリーンショットを添付しましたが、そちらではすべて正常です。

ブローカーからの回答、履歴は1ヶ月間保存されますが、その後2、3ヶ月前に信号で同じであったでしょう...

ファイル:
Error.png  36 kb
 
また「プライベート」の話になってしまいましたね。関節が続く...
 

開発者の皆様へ

BandsインジケーターとiBandsインジケーターは読みが異なります。Bandsインジケータでは、標準偏差は StdDev_Func関数で計算され、iBandsではGetDataメソッドで計算されます。チャートの描き方を比較すると、偏差値を担当するバッファの状態に大きな違いがあることがわかる。私はMQL4でこの問題に直面しましたが、おそらくMQL5でも同じでしょう。

 

今まであまり気にしていなかったのですが、今回、クラスオブジェクトの大きな配列を扱うときに、あまりにも大きなメモリ消費に気づきました。 sizeof()で確認したところ、完全に空のクラスは16バイトかかります。 そして、ここのクラスはマネージドであることを考えると、ポインターごとに8バイト追加します。 合計24バイト。 高すぎです。

ドキュメントに目を通し、そこに書かれていることを見てみました。

объекты классов всегда имеют таблицу виртуальных функций, даже если в классе не объявлено ни одной виртуальной функции.

問題は、単純なクラス(継承に関与しないクラス)については、コンパイル段階ですべてが分かっているので、なぜ仮想関数 表が必要なのか、ということである。

その中のメソッドは仮想メソッドと同じように呼ばれ、テーブルを経由したアクセスのリダイレクトが追加されていることがわかった。 そして、賞賛されたコンパイラの最適化はどこにあるのか? この後、C++との性能比較はどのように述べればいいのか?

 

あなたは間違っています。

メソッドがvirtualと記述されていない場合は、直接呼び出されます。さらに、バーチャルを取り除くための最適化も行われています。デストラクタは常に仮想であるため、仮想テーブルを導く。

24バイト程度というのはおかしな話で、オブジェクトの参照はサイズを参照するものではありません。

マネージド/セキュア言語のクラスは常にメタ情報を含むので、ここではすべて合理的である。純粋な大きさを求めるなら、構造体を使えばいい。

 
Renat Fatkhullin:

デストラクタは常に仮想であり、その結果、仮想テーブルが生成される。

デストラクタがあるからこそ、8バイトも余計に保存しなければならないのに...。

24バイトというのはおかしな話で、オブジェクトの参照はサイズとは関係ないのです。

まあ、そこらへんの実装がどうなっているのか分からないだけなんですけどね。オブジェクトの配列があるとします。

CObj array[];

各要素の参照(ポインタ)を記憶しているか?

純粋な大きさを求めるなら、構造体を使えばいい。

しかし、構造体へのポインタを取ることができないので、それを利用する利便性が低下します。 そのため、時には苦しい選択をしなければならないのです... 何とかクラスサイズを 小さくできれば、素晴らしいことです。 そして、構造体へのポインタもあれば、すべてうまくいきます)。