初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1175

 
Peter Vorobyev:

MQのソースコードを変更し、メソッドをパブリックなものに引き込む、これは我々の方法でないことは明らかです :)

#define private public

CAppDialog クラスのインスタンスを作成した後、CAppDialogの ボーダーを好きな色で 再描画するメソッドを書いてください。

 
Igor Makanu:

CAppDialogのパネル要素は全てグラフィック・オブジェクトとして形成されています。オブジェクトの名前を知っておくだけで、CAppDialogクラスのインスタンスを作成した後、CAppDialogの ボーダーを好きな色で 塗るメソッドを書けばよいのです。

これによって、クラス内の正しいコントロールを探すコードを転送することができます。これが効くんです。

しかし、オブジェクトの名前を知っていても、どのようにアクセスすればいいのかわかりません。

 
Peter Vorobyev:

これを利用して、クラス内で必要なコントロールを見つけるためにコードを移動させることができます。これが効くんです。

しかし、オブジェクトの名前を知ってアクセスする方法がわからない。

https://www.mql5.com/ru/docs/objects/objectsetinteger

しかし、自分の必要に応じて、プライベートなメソッドやフィールドをすべてパブリックに再定義する方が簡単だと思います

 
Igor Makanu:

https://www.mql5.com/ru/docs/objects/objectsetinteger

が、クローズドなメソッドやフィールドはすべてpublicに再定義してしまったほうが、自分のニーズには合っていると思います。

ObjectSetInteger - works :), I forgot all about it.
defineprivate public - メソッドをオーバーライド する方法がわかりませんので、例を教えてください。授業でやる必要があるのでしょうか?

 
Peter Vorobyev:

ObjectSetInteger - works :), I forgot all about it.
define private public - メソッドをオーバーライド する方法がわかりませんので、例を教えてください。授業でやる必要があるのでしょうか?

#define private public
#include <Controls\Dialog.mqh>
// тут весь Ваш класс который наследуете от CAppDialog
#undef private
undefを使った実験では、マクロ置換の後、それをキャンセルして、CAppDialogの すべてのパブリックメソッドをクラスで閉じることで、後でコードを書きやすくすることができます。
 
Igor Makanu:

イゴール はい、うまくいきました。ありがとうございます。

 

ホームネットワークに接続されたローカルエージェントを使用して、MT5上でEAの 遺伝的最適化を 実行中。

Expert Advisor は、テキストファイルからいくつかの初期データを取得します。

FILE_READ|FILE_SHARE_READ|FILE_ANSI|FILE_CSV|FILE_COMMONのフラグでファイルを開くと、次のようになります。

ローカルエージェントに見つけてもらうために、ローカルコンピュータ端末のCommonフォルダにファイルをコピーする必要がありました。

毎回、手動ですべてのローカルマシンに必要なファイルを複製するしか方法はないのでしょうか?

端末自身が、入力されたテストパラメータと一緒にこのファイルを送信することはできないのでしょうか?

 
プログラムで現在のバーのフィボナッチファンレベルの 価格を調べるにはどうすればよいですか?
 
Сергей Таболин:
プログラムで現在のバーのフィボナッチファンレベルの 価格を調べるにはどうすればよいですか?
bool  ObjectGetDouble(
   long                            chart_id,          // идентификатор графика
   string                          name,              // имя объекта
   ENUM_OBJECT_PROPERTY_DOUBLE     OBJPROP_LEVELVALUE,           // идентификатор свойства
   int                             prop_modifier,     // модификатор свойства
   double&                         double_var         // сюда примем значение свойства
   );
Документация по MQL5: Графические объекты / ObjectGetDouble
Документация по MQL5: Графические объекты / ObjectGetDouble
  • www.mql5.com
2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in]  Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
 
Alexey Viktorov:
void OnTick()
{
//---
   Print(TimeToString(TimeLocal()));
   Print(ObjectGetDouble(0,"TrL",OBJPROP_PRICE));
}

トレンド ラインの最初のポイントの価格を出します。(((

2020.01.18 11:46:37.233 2019.11.29 00:00:00   2019.11.29 00:00
2020.01.18 11:46:37.233 2019.11.29 00:00:00   1.00245
2020.01.18 11:46:39.533 2019.11.29 08:00:00   2019.11.29 08:00
2020.01.18 11:46:39.533 2019.11.29 08:00:00   1.00245
2020.01.18 11:46:41.834 2019.11.29 16:00:00   2019.11.29 16:00
2020.01.18 11:46:41.834 2019.11.29 16:00:00   1.00245
2020.01.18 11:46:44.135 2019.12.02 00:00:00   2019.12.02 00:00
2020.01.18 11:46:44.135 2019.12.02 00:00:00   1.00245
理由: