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

 
Tapochun:
インジケータでOnCalculate()が呼ば れたとき、spread[]配列にどのようなスプレッド値が渡されるか教えてください。キャンドルごとの最大値/最小値/平均値?
端末がサーバーから受信するもの。
 

.dllを読み込む順番について質問がありました。宣言された場合

#import "Test1.dll" //1
#import "Test2.dll" //2
#import

は逆順に読み込まれます。つまり、"Test2.dll "が 最初に読み込まれます。その差は歴然としているように思います。違いがあることがわかり、場合によっては(.dllの読み込み順序が決まっている)失敗することがわかりました。Test1.dll "をロードしました。
問題は
、ロード順を順方向に変更することで、コードの観点からはより論理的になるのか、それともこの順方向が将来も変更されないことを保証するのか(逆順に調整したコードが突然動作しなくならないように)、ということである。現時点では、逆順になるようにコードを調整する必要があります。

 

ビルド1191。コンパイルエラー: コード生成エラー


その理由をどこで探せばいいのかもわからない。しかし、ビルド1162ではすべてOKです。

 
A100:

ビルド1191。コンパイルエラー: コード生成エラー


その理由をどこで探せばいいのかもわからない。しかし、ビルド1162ではすべてOKです。

コードをservicedeskに送信してください。
 
Alexander:
そのコードをservicedeskに送信してください。

激しく分散していますね。1つのファイルにまとめてみることにします。

他のコード - 時間に注意してください - それはおそらく20倍大きいです

 
Ilyas:

現在までに2例が確認されています。
1) bool &=演算(bool 式)において
2)シーケンスの初期 化に余分なカンマがある val={ {...},{...},}.

最初のケースですが、私のコードにはこのような操作が非常に多くあります。 1159ビルドでは以前は問題がありませんでした。 いつ修正されるのでしょうか?

 

コード生成エラー

ソースコードをservicedeskに送りました:#1332553

 
Alexander:
そのコードをservicedeskに送信してください。

コード生成エラー


//build 1191
class A {};
class B : public A {};
void f( A& a ) {}
B *h() { return new B; }
void OnStart()
{
        f( h() );
}

ポケットの中で説明したようなことにならないよう、くれぐれもご注意ください。以下の例で現在動作し、以前も動作したように、*なしでできる場合。

//build 1191
class A {};
void f( A& a ) {}
A *h() { return new A; }
void OnStart()
{
        f(  h() ); //нормально
        f( *h() ); //нормально
}
そうでない場合は、イノベーションを使い始める前に、すべてをロールバックするのが賢明かもしれません。

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

バグ、バグ、質問

A100, 2015.08.26 10:35

実際、あなたはシンプルでわかりやすいエントリーを提供しています。

a = (b + c) - d*e + f;
*a = (*b + *c) - *d**e + *f;
に置き換えてください。そして、これは何のためでしょうか?と書けるように
bool c = *a == *b;

が、ポインタの等価比較には特殊な関数を使うことができ、ポインタを使った他のすべての算術演算(加算、減算、乗算など)にはそれ自体意味がなく、オーバーロードができるという点でのみ興味深いものです。

数学的な基底クラスと派生クラスを作り、いくつかの(1つか2つではなく)算術演算を再定義して仮想化し、その上で複雑な式(a = b + c だけではない)をテストする--これだけで、すべてがOPTIMALLYに行われていることの理解に近づくことができるのである。とりあえず、エントリーレベルでは推理しているんですね。

等価ポインタの比較を別の関数にすると、ボトルネックは1つだけ(!)になります。

class A {};

A *a = b; //однозначно присвоение указателю значения
a = b;    //неоднозначно
というのも、現在のところ、ポインタに値を代入するための他の構文がないからです。一方、 a.operator=( b ) は、明示的に呼び出すこともできます。
 
A100:


他のコード - 時間に注意してください - それは20倍に成長している必要があります。

MQL5用の新しい最適化コンパイラです(MQL4には搭載されていません)。

より良いターゲットコードと、より長いコンパイル時間の代償を払わなければならないのです。数百行からなる長い関数の中には、最適化が非常に困難なものがあります。

 
Renat Fatkhullin:

これは、MQL5の新しい最適化コンパイラ(MQL4にはない)がどのように動作するかを示しています。

より良いターゲットコードを得るためには、より長いコンパイル時間を支払う必要があります。数百行からなる長い関数の中には、非常に頑固に最適化するものがあります。

この「高品質コード」の代償は大きすぎるのではないでしょうか。 比較的小さな性能向上のために、コンパイル速度を何十倍も遅くするとは......。多くの場合、この利得はあまり重要ではなく、コンパイル時間を長くすることはプログラマーにとって拷問に等しいからです。

コンパイルオプションに "Debug "と "Release "を設けた方が良いのでは?