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

 
Nikolai Semko:

の場合、文字列は空であり、あたかも存在しないかのように、つまりメモリすら確保されていない。

これは他のタイプでも観察されます。変数を宣言した場合、すでにメモリが確保されていることを意味します。
しかし、実は文字列はプリミティブ型ではなく、参照型なのです。

そうでないわけがない。文字列オブジェクトのメモリはヒープに確保され、テキストが始まるメモリアドレスは0x00である
 
Igor Makanu:

PrintFormatの 確認方法がわからない

備考

最適化 モードのストラテジーテスターで、PrintFormat()が 実行 されない。

何か感想はありますか?

StringFormatと 結果の文字列をファイルに保存するのはどうでしょうか?(各パスが共有フォルダに独自のファイルを作成するため - テスターがそれらを上書きしないように)。

 
Vladimir Simakov:
そうでないわけがない。文字列オブジェクトのメモリはヒープに確保され、テキストの先頭のメモリアドレスは0x00です

メモリは名前と参照分のみ確保され、オブジェクト自体はまだ存在しないため、確保されない。プリミティブ型はそうではなく、初期化しなくても、変数が作られた瞬間にそこにメモリが確保される。
専門用語に煩わされないようにしたい。とにかくみんな分かり合える。
すべて当たり前のことです。

 
Vladimir Karputov:

StringFormatと 結果の文字列をファイルに保存するのはどうでしょうか?(共有フォルダにパスごとに異なるファイルを作成する - テスターが上書きしないように)。

良いオプションです、テストします。

ZS: オプティマイザーでより速く動作するようにコードを再度書き直しました(結果は5時間でしたが、現在は1.5時間です!!)。

今、私はヘルプでprintf()に遭遇し、私は交換する必要がある、私のすべてのプリントをチェックすることにしました... 私はそれを交換し、最適化は22hになりました... 私が台無しにした場所を見つけた、しかし、もちろん私はすぐにそれがすべてprintf()にあったと思った!!!!。

)))


オプティマイザでprintf()を確認してみました。

int xx=10;
void OnTick()
{  printf("1/x = %f",1/(xx--));
....

期待通りのものをすぐに手に入れることができました。

2019.09.20 11:29:16.611 Core 1 genetic pass (0, 607) tested with error "critical runtime error 503 in OnTick function (zero divide, module experts)" at 0:00:00.048


PrintFormat()が実行 されません」と表示されるのなら、と思っていたのですが。「と表示されるはずです。

 
コードの最適化で 実行速度が450倍になるとか:)。
 
Igor Makanu:

良いオプションです、テストします。

SZY: オプティマイザーでより速く動作するようにコードを再度書き直しました(結果は5時間でしたが、現在は1.5時間です!!)。

今、私はヘルプでprintf()に遭遇し、私は交換する必要がある、すべての私のプリントをチェックすることにしました... 私はそれを交換し、最適化が22時間になりました... 私は混乱した場所を見つけ、もちろん、すぐにすべての原因printf()だと思った!!!!!。

)))


オプティマイザでprintf()を確認してみました。

期待通りのものをすぐに手に入れることができました。

2019.09.20 11:29:16.611 Core 1 genetic pass (0, 607) tested with error "critical runtime error 503 in OnTick function (zero divide, module experts)" at 0:00:00.048


PrintFormat()が実行 されません」と表示されるのなら、と思っていたのですが。「と入力すれば、取得できるはずです。

そして、単一テストと最適化で異なる変数xxの値が得られます。

printf関数 呼び出しのみ実行されない。

 
Slava:

そして、単一テストと最適化で異なる変数xxの値が得られます。

printf関数の 呼び出しのみ実行されない。

そうですね、ユーザーもそのようにできることは明確です

が、printf()のチェックはどうするのでしょうか?

HH:とはいえ、開発元が「印刷されていない」と言ったのなら、確認する必要はないのですがね。

 
Igor Makanu:


が、printf()のチェックはどのように行うのでしょうか?

最適化からのシングルパスの時間を比較し

 
Slava:

複製します。

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

バグ、バグ、質問

アレクセイ・コジツィン, 2019.09.18 09:34

プラットフォームについて少し質問です。

1. MOEX経由のVPに許容取引範囲(例:EURRUB_TOM)が追加されるのでしょうか?現在、指値が出るかどうかは、範囲(最大値と最小値の可能性)にアクセスできないため、確実に知ることはできません。追加してください。

2.ターミナルとメタエディタに、N分ごとに自動保存するステータスを追加することは可能ですか?突然の切断でプログラム開始時の状態に戻り、すべての変更が失われるため、非常に不足しています。非常にストレスがたまる

1点目について:限界を知らないと正常なトレードができないことを理解しましょうなぜ、ある楽器ではこのような制限が可能で、他の楽器では不可能なのでしょうか?

 

ヘルプがまた間違っています。https://www.mql5.com/ru/docs/math/mathmax を読みました。

Функция возвращает максимальное из двух числовых значений.

double  MathMax(
   double  value1,     // первое число
   double  value2      // второе число
   );

オプションがないことを確認し、関数型fmax() double 、どこで端数値がなくなったかを探し、あらゆるものを探した後、テストを実行します。

void OnStart()
{
   long slvl = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);
   int sl = 300;
   Print(typename(fmax(slvl,sl)));
}

2019.09.20 18:06:34.194 tst (EURUSD,H1) long

ZS: すぐに答えます。ヘルプを最後まで読むと、"戻り値の型は、先輩の型に対応する "というフレーズがありますね。99% の場合、行間に隠された意味を探すより、ヘルプで関数の説明を見れば十分なので、深刻には考えていません。