MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 436

 
WinProject:
ありがとうございました!)回答から、オブジェクトの種類ごとに別の関数を作る必要があると結論づけました。ファイルを読み込むmain関数がループしている間に、オブジェクトを構築 する関数のスタートを別に作れば何とかなるのではと思いました。Switchはどうですか?

たぶん、まだ突っ込みが足りないんだと思います。

最初の、すべてのグラフィックオブジェクトの構築は、特に問題や疑問は生じません。しかし、私は2つ目のものを誤解していたようです。どうやら、多くの種類のオブジェクトに対して1つのボタンで作業を整理するのではなく、1種類のオブジェクトに対して1つのボタンで作業を整理することが問題だったようです。その場合、オブジェクトのパラメータを持つ構造体と、オブジェクトの種類ごとに1つずつ、複数の配列を作ることになりますね。そして、これらの構造体配列を、それぞれ対応する型のボタンにバインドするのです。

そして、ボタンを押すと、対応するオブジェクトタイプが削除されます。そして、ボタンが離されると、構造体配列にあるパラメータによってオブジェクトが復元されます。

そのため、起動時に一度だけファイルを読み込む必要があります。

 
Alexey Viktorov:

たぶん、まだ突っ込みが足りないんだと思います。

最初の、すべてのグラフィックオブジェクトの構築は、特に問題や疑問は生じません。しかし、私は2つ目のものを誤解していたようです。どうやら、多くの種類のオブジェクトに対して1つのボタンで作業を整理するのではなく、1種類のオブジェクトに対して1つのボタンで作業を整理することが問題だったようです。その場合、オブジェクトのパラメータを持つ構造体と、オブジェクトの種類ごとに1つずつ、複数の配列を作ることになりますね。そして、これらの構造体配列を、それぞれ対応する型のボタンにバインドするのです。

そして、ボタンを押すと、対応するオブジェクトタイプが削除されます。そして、ボタンが離されると、構造体配列にあるパラメータによってオブジェクトが復元されます。

そのため、起動時に一度だけ読み込む必要があります。

回答ありがとうございました!STARIJさんが提案されたフラッグを通して、両方のバリエーションをやってみようと思います。 質問を減らすようにします、回答があるのは良いことです!)
 
STARIJ:

フラグは変数です。あるいはbool:false=empty, true=raised or int - そうすると、1つの数値の中に一度に多くのフラグが存在することになります。0-全て省略、1=1番を紛失、2=2番を紛失、3=1番と2番を紛失、4=3番を紛失、5=3番と1番を紛失、6=3番と2番を紛失、7=1、2、3番、8=4番を紛失・・・・。それはバイナリコードですね。どうやって調べるの?

ありがとうございます。ネットで調べると良い解説があるようなので、試してみようと思います。不思議なのは、このサイトでは、ドキュメントでもチュートリアルでも、おそらくここに来た人はみなすでにプログラミングのスキルを持っていると想定していることです。
 
WinProject:
STARIJさんが提案されたフラグを使った方法と、こちらの方法を試してみようと思います。 質問を少なくするようにします。)

旗は悪くないかもしれないが、的外れである

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

MQL4に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。

WinProject さん 2018.01.26 18:17

こんばんは、またまたお世話になります。私のEAにはOnInitのメイン関数があり、ファイルを読み込んで、さまざまな条件に従って異なるグラフィックオブジェクトを即座に構築します。また、チャート上にはボタンがあり、クリックするとこれらのオブジェクト、例えばテキストラベルを削除する機能を操作することができます。ボタンを押すとテキストラベルが削除され、ボタンを離すと、すべてのオブジェクトを完全に構築する機能ではなく、テキストラベルのみを構築する機能を実現するには、どうしたらよいでしょうか?唯一 思いつくのは、 オブジェクトの種類ごとに ファイルを開いたり読んだりすることに関連するすべてのアクションを持つ メイン関数のアナログを別々に 作ることですが、何か賢い解決策を使いたいのですが、どれがどのようにメイン関数で、あるいはボタンの関数で、ということがわかりません。

その場合、ファイルの読み込みを別のユーザー定義関数に実装し、それを何度か呼び出すと、同じコードを何度も作る必要がなく、楽です。しかし、どう頑張ってもフラグを使うとファイル読み込みが残ってしまいます。また、削除されたオブジェクトを作成する際に、オブジェクトの種類によって、その不在やフラグの状態など、何を確認するかは変わりません。結局、オブジェクトのタイプは、特定のタイプにリンクされたボタンによって決定される、これがフラグである。
 

MQL5で 現在時刻の値を取得する方法を教えてください。
MqlDateTime構造 体のオブジェクトを作成しましたが、何も表示されません。

 
Roman Sharanov:

MQL5で 現在時刻の値を取得する方法を教えてください。
MqlDateTime構造 体のオブジェクトを作成しましたが、何も表示されません。

構造体にはdate-timeを入れる必要がある。
 
Artyom Trishkin:
構造体にはdate-timeを入れる必要がある。

TimeCurrent() を使う? どうにも理解できないんだけど。

 
Roman Sharanov:

TimeCurrent() を使うのか?

TimeToStruct()
 
Artyom Trishkin:
TimeToStruct()

あ、わかりました!うまくいきました!ありがとうございます。

 

https://docs.mql4.com/ru/basis/types/casting

最後の例は、RGB表現の色を文字列で 表したものです。"2つの構造体を中身をコピーして変換する"というのは、うまくいかないんです。

#property script_show_inputs
input color          testColor=clrBlue;// задайте цвет для тестирования
//--- структура для представления цвета в RGB
struct RGB
  {
   uchar             blue;          // синяя составляющая цвета
   uchar             green;         // зеленая составляющая цвета
   uchar             red;           // красная составляющая цвета
   uchar             empty;         // этот байт не используется
   string            toString();    // функция для получения в виде строки
  };
//--- функция для вывода цвета в виде строки
string RGB::toString(void)
  {
   string out="("+(string)red+":"+(string)green+":"+(string)blue+")";
   return out;
  }
//--- структура для хранения встроенного типа color 
struct builtColor
  {
   color             c;
  };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- переменная для хранения в RGB
   RGB colorRGB;
//--- переменная для хранения типа color
   builtColor test;
   test.c=testColor;
//--- приведение двух структур путем копирования содержимого
   colorRGB=test;
   Print("color ",test.c," = ",colorRGB.toString());
//---
  }

コンパイラは次のようなエラーを発生します。('=' - 不正な操作 use test.mq4 34 12 )

何か間違ってコピーしたのか、それともサンプルに誤りがあるのか?どうか、アドバイスをお願いします。

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