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

 

一見わかりやすいところで混乱に遭遇。これがその台本です。

double Sigma = 1.0;
double Smax = 5.0;
double Step = 2;


void OnStart()
{
  int scount = 1;

  double s = Sigma;

  for( ; s < Smax; scount++)
  {
    s *= Step;
    Print(scount, " ", s);
  }
  
  Print(scount);
}

は、3であるはずなのに、なぜかscountが4になってしまいます。チェック成功後のインクリメントループは、sが1.0, 2.0, 4.0のときのみ実行されます。すると、sには8が入り、5より多くなる。

 
Stanislav Korotky:

一見わかりやすいところで混乱に遭遇。これがその台本です。

は、3であるはずなのに、なぜかscountが4になってしまいます。チェックに成功した後のインクリメントループは、sが1.0, 2.0, 4.0のときのみ実行される必要があります。すると、sには8が含まれ、5より大きくなる。

for文のインクリメントは、ループ本体の終了後に 行われるhttps://www.mql5.com/ru/docs/basis/operators/for

for(式1; 式2;式3)演算子。

выражение1;
while(выражение2)
  {
   оператор;
   выражение3;
  };

最初の記事をググってみてください、念のため - C++でも同じように動きますhttps://en.cppreference.com/w/cpp/language/for

init_statement
while ( condition ) {
statement
iteration_expression ;
}
 
Igor Makanu:

for文では、ループ本体の終了後にインクリメントが行われるhttps://www.mql5.com/ru/docs/basis/operators/for

for(式1; 式2;式3)

その通りです。ループ変数に値1、2、3を渡す必要があります。なぜなら、3回目の乗算以降は条件が満たされないからです。8 > 5 - これは、ループの最後のプリントから見ることができます。

 
Stanislav Korotky:

その通りです。ループ変数に値1、2、3を渡す必要があります。なぜなら、3回目の掛け算以降は条件を満たさないからです。8 > 5 - これはループの最後のプリントから見ることができます。

しかし、ループの本体は実行されますよね? だから、本体 "expression3" の終了後にインクリメントがあり、次にチェック - "expression2" があります。

 
Igor Makanu:

しかし、ループの本体は終わっていますよね? だから、"式3 "の本体の終了後にインクリメントがあり、次にチェックがあります - "式2"

金曜日は今年最後の金曜日です :-)

 

1-テスト結果の 実行が停止した。ドライブに空き容量がある。すべてがそこにある。数分前まで動いていたものが突然止まった。

スタートボタンを押しても、最適化結果をクリックしても、何も起こらない。こういうのが出てくるんですよ。

2019.12.29 11:44:51.402 Tester シングルパスが開始されました。

そしてある時、こんなメッセージが表示される。

2019.12.29 11:41:56.053 Tester デバッグ版「Name.ex5」を検出しました。

デバッグを有効にせず、このEAをエディタで一切開かず、エディタも無効にしていますが、何もコンパイルされず、変更もされていません。

最適化から設定までのパラメータは、正常に転送され、そこで視覚的に停止します。


2- そして、フォワーダーの「停止」ボタンが失敗する。あるいは、ピンクから緑に色が変わらなかったり、端末が何もしない中間状態になったりしますが、「設定」タブではすべてが無効になっているため、何も選択できません。

もう一度停止ボタンを押すと、走行が開始されます。そして、フォワードの前に止めれば問題ないです。


3- そして、もう一つの「トリック」は、最適化の実行が数倍遅くなり始めることです。ただ、時間が経てば端末の再起動で治る...。どこかで何かが積み重なっている...。ログやキャッシュをクリアしても、この速度低下には影響しないようです。でも、再起動は大きな効果がありますよ
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Михаил:

テスト結果の 実行が停止した。ディスクの空き容量がある。すべてがそこにある。数分前まで動いていたものが突然止まった。

スタートボタンを押しても、最適化の結果をクリックしても、何も起こらない。こういうのが出てくるんですよ。

2019.12.29 11:44:51.402 Tester シングルパスが開始されました。

そしてある時、こんなメッセージが表示される。

2019.12.29 11:41:56.053 テスターデバッグ版「Name.ex5」を検出しました。

デバッグを有効にせず、このEAをエディタで一切開かず、エディタも無効にしていますが、何もコンパイルされず、何も変更されていません。

最適化から設定へのパラメータ保存に成功し、視覚的にはそれで止まっている。


また、フォワーダーの「停止」ボタンがうまく機能しない。時々、ピンクから緑に色が変わらなかったり、端末が何もしない中間状態になるだけで、設定タブではすべてが無効になっているため何も選択できないことがあります。

もう一度停止ボタンを押すと、走行が開始されます。そして、フォワードの前に止めれば問題ないです。


そしてもう一つの「トリック」は、最適化の実行速度が数倍遅くなり始めることです。ただ、時間が経てば端末の再起動による改善..............................。 どこかに何かが溜まっている...。ログやキャッシュをクリアしても、この速度低下には影響しないようです。でも、再起動は大きな効果がありますよ

F7でリリース版をコンパイルする必要があります。F5キーを押してデバッグ版をコンパイルした場合

 
Artyom Trishkin:

F7でリリース版をコンパイルする必要があります。F5キーを押してデバッグ版をコンパイルした場合

いや、マウスで「コンパイル」ボタンを押しながらコンパイルしています。しかし、このEAは一昨日にコンパイルされたものなので、記述したケースには当てはまりません。 その後、無事に最適化され、何度か実行されました。そして、クラッシュした。端末の再起動で解決...

だから、どこかにバグが溜まっているように感じてしまうんです。それが故障やブレーキにつながる。リセット(再起動)で治る...
 
そしてもう一つ、フォワードランの開始日から(日付で)離れれば離れるほど、遅くなります。最初は速く、だんだん遅くなる。そして、破滅的に遅くなる。それを修正するのは良いアイデアです)
 
Михаил:
そしてもう一つ、フォワードランの開始日から(日付で)離れれば離れるほど、遅くなります。最初は速く、だんだん遅くなる。そして、破滅的に遅くなる。直るといいのですが...)

再生するコードがない - 応答がない