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

 
Alexey Viktorov:

これはmql5の機能ではなく、秩序を教えるためのいくつかの試みに過ぎません。

整数を分数に変換すると0が返される - これはナンセンスであり、順序ではありません。

つまり 問題は置換ステップでの型変換ではなく、計算ステップでの型変換なのです。

追加:MQ-demoに切り替え、作業端末を更新しました。この問題はありません。

 
コンパイルエラー
class A {  
public:
        static int i;
} a; //Error: unresolved static variable 'A::i'
int A::i = 0;
 
Igor Zakharov:

整数を分数に変換すると0が返される - これはナンセンスであり、順序ではない。古いコードの90%はこうして壊れていく。

つまり 問題は置換ステップでの型変換ではなく、計算ステップでの型変換なのです。

追加:MQ-demoに切り替え、作業端末を更新しました。この問題はありません。

この場合、考えられる選択肢にハイライトがないのは、怪しくないのでしょうか?

   ObjectSetDouble (0,name,OBJPROP_ANGLE,dir// тут должен появиться список вариантов переменных double
 
実行中のエラー
class A {  
public:
         A() { i = ++ii; printf( "%d", i ); }
        ~A() {           printf( "%d", i ); }
        int i;
        static int ii;
};
int A::ii = 0;
A a[ 2 ];
void OnStart() {}

  • MQLでの結果です。1212
  • で、C++の場合:1221
 
Alexey Viktorov:

この場合、考えられる選択肢にハイライトがないのは、怪しくないのでしょうか?

:)

 
Igor Zakharov:

:)

そうですね...不思議なことに、しばらく前から、不適切なタイプの変数がハイライトされなくなりました。もしかしたら、わざと直したのかもしれないし、このダイアログに注目して、また直すかもしれない。いずれにせよ、その関数が double 型の変数を必要とする場合は、double を使用する必要があります。

 
いつも失敗ばかりです。
#define  MACRO( X, Y )
MACRO( 1, 2, 3) //Warning: too many arguments for function-like macro 'MACRO'
なぜ警告なのか?特に、いつも過剰な数で、時々注意を払わないので
 
Alexey Viktorov:

そうですね...不思議なことに、しばらく前から不適切なタイプの変数がハイライトされなくなりました。もしかしたら、わざと直したのかもしれないし、このダイアログに注目して、また直すかもしれない。いずれにせよ、関数が変数のdouble型を要求する場合は、doubleを使用する必要があります。

Alexeiさん、ドキュメントへのリンクがお好きなようなので、1つご紹介します。)

https://www.mql5.com/ru/docs/basis/types/casting

intからdoubleへの変換は、データを失うことなく有効な暗黙の変換です。

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL5 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...
 

ストラテジーテスターの 操作に関する質問です。

テストを実行しているところです。Expert AdvisorはSLとTPでポジションをオープンします。その後、ロールして、ポジションは再オープンされることなくクローズされます。

何ですか?バグ?久しぶりにテスターを使ったが、そのような問題はなかった。以下はテスターのログです。ロールオーバー後にポジションをオープンしてクローズしているのがわかりますが、その後BUYでオープンしたことがなんとなく書かれています。テスターにコマンドを貼り付けました。

PositionSelect(_Symbol)を使ってロールオーバー後にオープンポジションがあるかどうかをチェックしますが、結果は常に同じで、オープンポジションはありません。


2020.04.28 18:14:14.609 2014.01.09 05:00:00 即金買い 1.00 AUDUSD at 0.88800 sl: 0.88450 tp: 0.89200 (0.88750 / 0.88800 / 0.88750)

2020.04.28 18:14:14.609 2014.01.09 05:00:00 取引 #8 買 1.00 AUDUSD at 0.88800 完了(注文 #8 に基づいています。)

2020.04.28 18:14:14.610 2014.01.09 05:00:00 取引完了 [#8 買 1.00 AUDUSD at 0.88800

2020.04.28 18:14:14.610 2014.01.09 05:00:00 注文実行 0.88800 で 1.00 買い [#8 buy 1.00 AUDUSD at 0.88800


2020.04.28 18:14:24.169 2014.01.09 23:59:59 deal #9 sell 1.00 AUDUSD at 0.88980 done (based on order #9)

2020.04.28 18:14:24.169 2014.01.09 23:59:59 ロールオーバー取引完了 [#9 売り 1.00 AUDUSD at 0.88980

2020.04.28 18:14:24.170 2014.01.09 23:59:59 deal #10 buy 0.00 AUDUSD at 0.8899950 done (based on order #10)

2020.04.28 18:14:24.170 2014.01.09 23:59:59 ロールオーバー取引完了 [#10 buy 0.00 AUDUSD at 0.8899950].


 
Igor Zakharov:

Alexeiさん、ドキュメントへのリンクがお好きなようなので、1つご紹介します。)

https://www.mql5.com/ru/docs/basis/types/casting

intからdoubleへの変換は、データを失うことなく有効な暗黙の変換です。

投稿でドキュメントを書き直す必要がないように、またドキュメントを読むことに慣れてもらうために、ドキュメントにリンクしています。 このフォーラムで、そのドキュメントの存在をまったく知らなかった人がいることを想像してみてください。私個人としては、ドキュメントの中でそのような絵を見たことはありますが、しっかり理解しようとは思っていませんでした。関数が必要とする型の変数を使用する習慣があれば十分です。最後の手段として、正しい型に強制変換する。