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

 

クラス名と関数ポインタが同じであれば、コンパイラはエラーを検出しない

class fn {};
typedef void (*fn)();
void OnStart()
{
        Print( sizeof( fn ));
}
 

問題:クラウド上でEAをテスト する場合、すべてがうまくいく。最適化を停止し、しばらくしてから再び起動すると、OnInit failedのエラーが出続ける。EAを別の名前のファイルにリネームして、クラウド上で同じパラメータで最適化を実行すると、エラーにならないので助かります。

初期化処理中にEAがテスト開始時に使用した文字以外の文字にアクセスする必要があることが原因かと思います。

最近クラウドをよく使うようになり、リアルマネーも使っているので、バグレポートを無視しないでほしい。Expert Advisor のコードはお客様のものですので、すぐにお渡しすることはできません。

追記:テスト中に何らかの理由で端末がクラウドサーバーから切断され、再接続したところ、テストを再起動しなくても再びエラーが発生するようになりました。

 
Comment(1/100); outputs 0、その理由と戦い方とは?
 
Aliaksandr Kryvanos:
Comment(1/100); outputs 0、その理由と戦い方とは?

例:Comment((double)1/100);

あるいは、Comment(1.0/100)のような感じです。

 

いいえ、そのようなことはありません、0プット


一通り(double, DoubleToStr, Normalize...)使ってみましたが、ダメでした。

 
Aliaksandr Kryvanos:
いいえ、そのようなことはありません、0を置きます。
両方の端末でテストしたところ、問題なく動作し、0.01を出力しました。
 
Aliaksandr Kryvanos:
いいえ、そのようなことはなく、0を入れるのです。
そこで、Comment(1.0/100.0); または Comment(1.0*0.01) のように、数字が有効であることをコンパイラに明示的に示すようにします。
 

я использовал весь арсенал (double, DoubleToStr, Normalize...), но вот никак

DoubleToStr と Normalize は、明示的に double にキャストされない限り、式自体がint であるため、動作しません。あなたは、私の例を正確に再現せず、結論を急いだ可能性が高い。
 
ありがとう、うまくいったよ(笑)
 

PRの低い同じエージェントが次から次へと走らされ、メモリが足りず、最適化の一部が吹っ飛んでしまう感じです(他のエージェントは十分で、ローカルではすべてうまくいっています)。なぜ、そのような薬剤を継続試験から直ちに排除しないのか?