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

 
Roman Sharanov:

プライベートで変数を作成しました。

クラスメソ ッドで作業してみる

変数が宣言されていないと表示される

???

コードはどこだ?

 
Artyom Trishkin:

コードはどこにあるのですか?

その関数は、外部コードからアクセスできないようにする必要があります。

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private:
   int var;
public:
                     newC(int var);
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC(int var)
  {
      this.var = var;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
 
Roman Sharanov:

プライベートで変数を作成しました。

クラスメソ ッドで作業してみる

変数が宣言されていないと表示される

???

アルチョム・トリシキン

しかし、それは正しいことではありません。

計算で動的配列を使用することを防ぐ人は?動的配列のサイズ(サブシステムによって監視されるインジケータバッファでない場合)は、自分で見て、必要ならそのサイズを変更しなければなりません。静的配列のサイズは常に固定されており、全てはその時のタスクに依存します。

なんだこの無根拠な戯言は?指標は、その大半が、必要かつ十分な量の計算データを算出し、表示しているに過ぎない。すべての時間、すべての刻みに。

何を言ってるんだ?無知なのか?それなら、黙っていたほうがいい。そうすれば、MKの公式フォーラムで読んだと言われるでしょう。意図的に嘘を作っているのか?

アーテム 退屈させるな

計算で動的配列を使用することを誰も止めない。

しかし!!!計算中はプロセッサがビジー状態であり、ダイナミックアレイへの書き込みは行われない。

そのため、計算中に動的配列に到着したデータは、自動的に無視されます。(プロテクトをかけて、バッファに書き込むこともある)。

お分かりいただけたでしょうか?

そのため、ダイナミックアレイ上のデータはすべてスタティックアレイに分散し、プロセッサが動作している間にデータが失われることがないようにしているのです。

そのため、すべての計算は静的な配列で行う必要があります

もちろん、静的アレイのサイズは「余裕を持って」設定する必要があります。これは当たり前のことです。

でも、好きなだけ計算すればいいんです。何もかもが失われることはありません。

これでお分かりいただけたでしょうか?

 
Roman Sharanov:

関数は外部コードからアクセスできないようにする必要があります。

var にアクセスするための public メソッドはどこですか?

こんな感じです。

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private:
   int var;
public:
   int               Var(void)      const { return this.var; }
                     newC(int var);
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC(int var)
  {
      this.var = var;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
//+------------------------------------------------------------------+

Var()メソッドでvarを取得するのです。

 
neverness:

アーテム 退屈させるな

計算で動的配列を使うことを誰も止めはしません。

しかし!!!計算中はプロセッサがビジー状態であり、ダイナミックアレイへの書き込みは行われない。

そのため、計算中に動的配列に到着したデータは、自動的に無視されます。(プロテクトをかけて、バッファに書き込むこともある)。

お分かりいただけたでしょうか?

そのため、ダイナミックアレイ上のデータはすべてスタティックアレイに分散し、プロセッサが動作している間にデータが失われることがないようにしているのです。

そのため、すべての計算は静的な配列で行う必要があります

もちろん、静的アレイのサイズは「余裕を持って」設定する必要があります。これは当たり前のことです。

でも、好きなだけ計算すればいいんです。何もかもが失われることはありません。

晴れてほしいです。

嘘つけ。

 
Artyom Trishkin:

var にアクセスするための public メソッドはどこにありますか?

こんな感じです。

Var()メソッドを使用して、varを取得します。

ということは、外部コードからアクセスできるようになるのでしょうか? これらの変数は、クラス内部でのみ生成される必要があります。

 
Roman Sharanov:

のように、外部コードからアクセスできるようになりますか? これらの変数は、クラス内部で生成される必要があるだけです。

この方式はどこで定義されているのですか?

//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
//+------------------------------------------------------------------+
 
Artyom Trishkin:

この方式はどこで定義されているのですか?

クラスファイル内の以下の

 

Если говорить об индикаторах, то индикаторы (вообще говоря!) следует вычислять. Но в МТ4/МТ5 мы этого не наблюдаем!

何の根拠もない戯言か。指標は、その大部分が、必要かつ十分な量の計算データを算出し、表示することにほかならない。すべての時間、すべての刻みに。

なんだ、この無茶は?無知から?それなら、黙っていたほうがいい。そうすれば、MKの公式フォーラムで読んだと言われるでしょう。意図的に嘘を作っているのか?

アーテム!

MT4/MT5のインジケーターに静的配列はあるのか ?

どれがそうなのか、知りたいですね。

どのような不具合ですか?- すぐ言っただろー、あるんならどこだか教えてくれよー。

私が知っているMT4/MT5のインジケータは全てダイナミックです。

はい、ずっとトラッキングしています。そう、すべてのティックに。

しかし、これらは動的な配列 であり、静的な配列ではない。

そして、ここには「崩壊」はない。

 
Artyom Trishkin:

嘘つけ。

まあ、ナンセンスであれば、経験則による。

机上の空論」だけではありません !

- 計算がかなり長い場合、その刻みは関係するデータ配列に書き込まれない。

これは事実です。