Любая программа оперирует данными. Данные могут быть различных типов в зависимости от назначения. Например, для доступа к элементам массива используются данные целочисленного типа. Ценовые данные имеют тип двойной точности с плавающей точкой. Это связано с тем, что в языке MQL5 не предусмотрено специального типа для ценовых данных. Данные...
構造上
struct_position
構造体にメソッドが 含まれる
GetCurrentPositionProperty(void)
を計算し、構造体の要素に値を割り当てるものである。構造体の外側にメソッド本体を定義する。そのためには、コンテキスト解決操作(::)を使用します。
OnTick()の中で、関数を呼び出します。
void OnTick() { //---STRUCT_POSITION.GetCurrentPositionProperty();}.
そして、ここでエラーが発生します。
'.'- name expected eSower_and_Gather_5.mq5 69 19
どこで間違ったのかわかりません、よろしく お願いします。
'.'- 期待される名前 eSower_and_Gather_5.mq5 69 19
69 19行目とは?コードライン69を公開し、19の位置がどこなのかを明示してください。どこにエラーがあるのか、すぐに明らかになるはずです。
69 19行目とは?ポストコードライン69で、19番目の位置がどこかを指定する。どこにエラーがあるのか、すぐに明らかになるはずです。
STRUCT_POSITION.GetCurrentPositionProperty();
上の投稿で赤くハイライトされています。早速のご返信ありがとうございました。
69 19行目とは?ポストコードライン69で、19番目の位置がどこかを指定する。どこにエラーがあるのか、すぐに明らかになるはずです。
これは、関数にアクセスするためのポイントであり、その関数は構造体のコンテキストを使用します。しかし、なぜうまくいかないのかが理解できない。
は、上の投稿で赤くハイライトされています。早速のご返信ありがとうございました。
STRUCT_POSITION' はDATA TYPE です。この型の変数を作成し、VARIABLE.GetCurrentPositionProperty()を呼び出す必要があります。
これが、関数にアクセスするポイントであり、関数が構造の文脈を利用することになるのです。しかし、なぜうまくいかないのか、私には理解できない。
コード: (関数を呼び出すだけ です。構造体メソッドではなくEA関数です。その方が理にかなっています。)
STRUCT_POSITION' はDATA TYPE で ある。このタイプのオブジェクトを作成し、OBJECT.GetCurrentPositionProperty()を呼び出す必要があります。
試してみました。の宣言の直後に宣言され、このようなオブジェクトが作成されます。
StrPositionArray[]。
OnTickに追加した場合
というエラーが発生します。
']'- 期待される表現 eSower_and_Gather_5.mq5 69 21
コード: (関数を呼び出すだけ です。構造体メソッドではなくEA関数です。その方が理にかなっています。)
では、::を使うのは無駄な考えだったのでしょうか?
では、なぜ関数を書いたのか
構造体内部?中に詰め物をしなくても、構造物が埋まりますよね?私は混乱しています、多分これは時代遅れの機能で、私はそれを忘れるべきですか?
では、::を使うのは無駄だったのでしょうか?
それならなぜ、関数
構造体内?というか、それがなくても構造体は完璧に埋まります。はっきりさせてください。混乱しています。もしかしたら、これは忘れ去られるべき時代遅れのアイデアかもしれません。
コピーペーストする。コピーペーストの後に一行が残っています。
このようになります(構造体の中にはメソッドはありません)。
コピーペーストする。コピペの後に一行が残っています。
このようになります(構造体の中にはメソッドはありません)。
さて、これだけ時間をかけてレッスンしてきたのですから。MT4用ではありますが、そこでは仕掛けとして紹介されていましたので、本文を抜粋してご紹介します。
構造体は、Refresh()メソッドを 持ち、構造体の要素に値を計算し、代入する。構造体の外側にメソッド本体を定義してみましょう。そのために、コンテキスト解決操作(::)を利用する。コンテキストは、構造体の記述子(名前)である。
なお、メソッド本体では、コンテキスト解決操作を行ったので、ドットを使わずに構造体の要素を参照しています。数値フィールドは、メソッド本体の先頭で更新する前に、この キーワードでZeroMemory()によって ゼロにされるので、構造体は自分自身への参照を渡します。
OnTick() ハンドラ内のメインのEAコードは、次のようになります。