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

 

こんにちは。

4から5への切り替え。次の質問が理解できない。インクルードファイルでクラスを定義し、Expert Advisorで使用しています。その後、別のExpert Advisorを作成したいのですが、同じクラスが必要です。別のインクルードファイルを作成する必要がありますか、それともターミナルが既存のもののコピーを作成し、別のEA(MQL4の関数ライブラリのようなもの)に適切にフックするのでしょうか。クラスをライブラリに登録し、複数のExpert Advisorで併用することは可能ですか(MQL4の関数ライブラリのようなもの)。5thの証明書をダウンロードしたのですが、この手順についての詳しい説明がありません。 もしかして、何か読むと理解できるようなことがあるのでしょうか?

ありがとうございました。

 

RedFish:

別のインクルードファイルを作成しなければならないのか、それともターミナルが既存のもののコピーを作成し、別のEAに正しくフックするのか(MQL4の関数ライブラリのようなもの)?

外部ファイルでクラスを作成する場合、拡張子をmq5ではなくmqhにし、このファイルを任意のエキスパート/スクリプト/インジケータのプロジェクトに インクルード します。

ライブラリにクラスを追加して、複数のEAで同時に使用することは可能ですか(MQL4の関数ライブラリのようなもの)?

もちろんです!そうしてください。

 
sergeev:

外部ファイルにクラスを作成する場合、このファイルの拡張子をmq5ではなくmqhにして、このファイルをEA/Script/Indicatorのどのプロジェクトにもincludeで 接続するようにします。

もちろんです!そうしてください。

回答ありがとうございました。

Expert Advisorにクラスを持つライブラリを接続するには?MQL4では、#importの操作がありました。関数-#importをリストアップし、それを閉じるとすべてがうまくいきました。MQL5では、このプロシージャはどのように動作するのですか?このプロセスの説明がどこにもないのですが.

いつもありがとうございます。

 
RedFish:

回答ありがとうございました。

Expert Advisorにクラスを持つライブラリを接続するには?MQL4では、#importという操作があり、関数-#importをリストアップして閉じると、すべてうまくいっていました。MQL5では、このプロシージャはどのように動作するのですか?このプロセスの説明がどこにもないのですが.

また、ありがとうございました。

これらの点については、ヘルプ:https://www.mql5.com/ru/docs/basis/preprosessor に詳細が記載されています。
Документация по MQL5: Основы языка / Препроцессор
Документация по MQL5: Основы языка / Препроцессор
  • www.mql5.com
Основы языка / Препроцессор - Документация по MQL5
 
Terminal: При авторизации в журнал терминала выводится информация о времени и адресе предыдущего успешного подключения.

この実装は、セキュリティ違反につながる - 彼/彼女は突然、他の誰かに投資パスワードを与えることにした場合、それはトレーダーのIPアドレスを明らかにする。確認しました。取引パスワードや投資家パスワードを使って接続したかどうか、どのように接続したかにかかわらず、IPは全員に表示されます。

ログイン時に(最後に接続したのが投資家パスワードか取引パスワードかを問わず)最後に接続したIPが表示されることを意味します。

投資家用パスワードはこの機能を無効にし、取引用パスワードでのログインのみを考慮する必要があります。

 
notused:

この実装は、セキュリティ違反につながる - 彼/彼女は突然、他の誰かに投資パスワードを与えることにした場合、それはトレーダーのIPアドレスを明らかにする。確認しました。取引パスワードや投資家パスワードを使って接続したかどうか、どのように接続したかにかかわらず、IPは全員に表示されます。

ログイン時に(最後に接続したのが投資家パスワードか取引パスワードかを問わず)最後に接続したIPが表示されることを意味します。

投資家パスワードはこの機能を無効にし、取引パスワードでのログインのみを考慮する必要があります。

そう、私たちはそれを解決することができるのです。
 
      ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
OBJ_PERIOD_M10| OBJ_PERIOD_H4の ような論理(?)列挙型の文字列をあらかじめ用意しておき、ObjectSetInteger()で糊付けした文字列の形で準備できた変数に代入するには、どうしたらよいでしょうか。記号的に糊付けして、StringToInteger() でくくろうとしたのですが、うまくいきません...。なぜなら、OBJ_PERIOD_...- はenum 型の要素ですが、int 型の16進数に相当する フラグを持つのでしょうか?この列挙は、ビット単位の OR演算に 近いように見えますが...。
 
x100intraday:
OBJ_PERIOD_M10| OBJ_PERIOD_H4の ようなブーリアン(?)列挙を文字列の前に付けて、ObjectSetInteger()で準備できた変数を糊付け文字として代用するには、どうすればよいでしょうか?記号的に糊付けして、StringToInteger() でくくろうとしたのですが、うまくいきません...。なぜなら、OBJ_PERIOD_...- はenum 型の要素ですが、int 型の16進数に相当する フラグを持つのでしょうか?この列挙は、ビット単位の OR演算に 近いように見えますが...。

defineで 動くのでしょうか?

#define Fl_Fnc __FILE__+" -> "+__FUNCTION__+"(): "
 
tol64:

defineで 動くのでしょうか?

想像するのが怖いくらいです。実は、柔軟なバリエーションが必要なんです。1つの文字列がそのままの形で必要なのではなく、いくつかの異なる文字列をループで形成する必要があるんです...。できれば、もう少し具体的な例を挙げてほしいのですが......。

実は、この問題は別のところに帰結する。OBJ_PERIOD_M30"型の予約語を含む文字列から、enum 要素として実際のOBJ_PERIOD_M30を 取得することは原理的に可能でしょうか?実際に|などの操作を行うことができるint値を 含んでいるのでしょうか?これは単純なケースです。しかし、「OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1」という形式の行を、対応する数値の配列を追加入力し、その後リストで要素ごとに「識別」しなくても、数値によるビット演算として すぐに解釈したいのです。

 

こんにちは、私はこの構造を使用する必要がありますアドバイスしてください void RAssignStringVector(int rhandle, string variable, string &vector[], int size);

エラー 'vector' - invalid parameter for importfunction mt4R.mqh が発生しました。文字列の配列へのポインタをどのように渡せばよいのでしょうか。