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

 

なぜコンパイラはこれをスキップするのでしょうか?(MT4/MT5)です。

double x=1;
double a=1/(x*0);

実行 時のみ、0による除算がポップアップします。

 
Kirill Belousov:

なぜコンパイラはこれをスキップするのでしょうか?(MT4/MT5)です。

実行 時のみ、0による除算がポップアップします。

おそらく、コンパイラは値を計算するのではなく、プログラムコードをマシンコードに変換するだけだからだろう。

 
信号のランキングはどうでしょうか?

最下位か中位か
 

MT5のGannグリッドの 何が問題なのでしょうか?コントロールラインの両端をY軸方向に移動させることはできないのですか?

 
ストラテジーテスターで、コードにコメント形式のインスタンス変数のオートコンプリート置換がある場合、最適化設定superでは、最適化後に実際の変数名がテーブルに表示されるようになりました。混乱しますよね。ずっとコードを調べないといけない。
 

行政の皆様へ。

MT5ストラテジーテスターレポート1653の不具合について

ブローカー ActiveTrades

エキスパートアドバイザーはまずポジションをオープンし、次にストップ(SYMBOL_TRADE_EXECUTION_MARKET)を変更します。

これは正常にログに表示されます。

しかし、レポートを保存するとき!レポートにストップがないのです。

SYMBOL_FILLING_MODE=3 SYMBOL_TRADE_EXEMODE=2 SYMBOL_EXPIRATION_MODE=7 SYMBOL_TRADE_MODE=4 SYMBOL_TRADE_STOPS_LEVEL=0 SYMBOL_TRADE_FREEZE_LEVEL=0 SYMBOL_ORDER_MODE=127 SYMBOL_START_TIME=0 SYMBOL_EXPIRATION_TIME=0 SYMBOL_SPREAD=5 SYMBOL_SESSION_DEALS=0
IE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   market buy 0.01 EURUSD (1.18278 / 1.18283 / 1.18278)
JP      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal #2  buy 0.01 EURUSD at 1.18283 done (based on order #2)
 OH      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal performed [#2  buy 0.01 EURUSD at 1.18283]
LN      0       09:43:35.667    Core 1  2017.08.01 02:10:00   order performed buy 0.01 at 1.18283 [#2  buy 0.01 EURUSD at 1.18283]
EQ      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify  2 POSITION_TYPE=0 stoploss=1.17678 takeprofit=0.0 request.sl=1.17678 request.tp=0.0 POSITION_SL=0.0 POSITION_TP=0.0 SYMBOL_BID=1.18278 SYMBOL_ASK=1.18283 stops_level=0
OR      0       09:43:35.667    Core 1  2017.08.01 02:10:00   position modified [#2  buy 0.01 EURUSD 1.18283 sl: 1.17678]
DE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed
CL      0       09:43:35.667    Core 1  2017.08.01 02:10:00   Result = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed


ストップロス、テイクプロフィットの欄は空欄です。


この現象はSYMBOL_TRADE_EXECUTION_MARKETでのみ発生します。

Stop Lossでクローズすると、すべて正しく設定されるのですが・・・。

 
Alexey Viktorov:

おそらく、コンパイラは値を計算するのではなく、プログラムコードをマシンコードに変換するだけだからだろう。

分母が定数の場合、例えば x/(5*0) のように、コンパイル時にエラーが検出されます。

つまり、コンパイラは単にコードを翻訳するだけでなく、計算を実行するのです。

分母が積で、その中の1項が0(定数)である場合、コンパイラは0による除算のエラーを出すように検出する必要があるように思います。

 
FileReadArray()は、ファイルサイズがINT_MAX バイトを超える場合、データの配列を読み込まない。
 
Roffild:
FileReadArray() は、ファイルサイズがINT_MAX bytes を超えるとデータ配列を読み込まない。

FileReadArrayではなく、そのサイズより大きく できない配列なのです。エラーではなく、これはデザインによるものです。

 
Kirill Belousov:

分母が定数の場合、例えば x/(5*0) のように、コンパイル時にエラーが検出されます。

つまり、コンパイラは単にコードを翻訳するだけでなく、計算を実行するのです。

分母が積で、その中の1項が0(定数)である場合、コンパイラは0による除算のエラーを出すように検出する必要があるように思います。

このようなエラーを検出できる言語とそのコンパイラをご存じですか?