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

 

この構成がうまくいかない理由を知るにはどうしたらいいのでしょうか?

void OnStart()
  {
//---
   double buf[];
   ArrayInitialize(buf,0);
   for(int i=0; i<10; i++)
     {
      buf[i]= i;
     }
  }
'**.mq5' (13,10)で範囲外の配列のエラーが報告されます。
文字列double buf[]; をdouble buf[10]; に置き換えると、配列の外側に出口がありません。
 
ivanivan_11:

この構造がなぜうまくいかないのか、教えてください。

void OnStart()
  {
//---
   double buf[];
   ArrayInitialize(buf,0);
   for(int i=0; i<10; i++)
     {
      buf[i]= i;
     }
  }
reports an error array out of range in '**.mq5' (13,10)
もし、文字列double buf[]; をdouble buf[10]; に置き換えると、配列の終了はない。

どちらかの double buf[10]。

あるいは double buf[];ただし、その場合は必然的にArrayResize(buf,10) となる。

 
Artyom Trishkin:

どちらかの double buf[10]。

double buf[]のどちらか。ただし、ArrayResize(buf,10)が義務づけられる。

ありがとうございます。

もう1つ説明させてください。

つまり、配列を初期 化して、ループの中でそれを埋めていくと、反復するたびにサイズが大きくなり、サイズを再定義しなければならないのでしょうか? これは、いくら要素を追加しても、自動的に行われると思っていたのですが、どうなのでしょうか?

すぐに一定数の要素で埋めれば、この手続きは必要ないですね。

void OnStart()
  {
//---
   double buf[];
   ArrayInitialize(buf,0);
   int closed1=CopyClose("EURUSD",NULL,0,3,buf);
  
  }
 
ivanivan_11:

ありがとうございます。

もっとわかりやすく教えてください。

つまり、配列を初期 化してループで埋めていくと、反復するたびにサイズが大きくなり、サイズを再定義しなければならないのでしょうか? それは、いくら要素を増やしても自動的に行われると思っていたのですが。

で、すぐに一定数の要素で埋めれば、そんな手続きは必要ないんです。

void OnStart()
  {
//---
   double buf[];
   ArrayInitialize(buf,0);
   int closed1=CopyClose("EURUSD",NULL,0,3,buf);
  
  }

CopyXXXX()関数は、渡された配列のサイズを自動的にオーバーライドします。

配列を自分で埋める場合、それが動的なものであれば、そのサイズが適切であるかどうかはプログラマー次第です。

配列を宣言するときに、その配列を

  • が動的な配列の場合、そのサイズを再定義するのはあなた次第です。
  • 非動的: buff[5] - この場合、正しい値で初期化する必要があります。
  • not dynamic: buff[]={10,20,30,40,50}; - この場合、宣言時の値で初期化されます。
 
Artyom Trishkin:

CopyXXXX()関数は、渡された配列のサイズを自動的にオーバーライドします。

自分で配列を埋める場合、それが動的なものであれば、適切なサイズにするのはプログラマー次第です。

配列を宣言するときに、その配列を

  • が動的な配列の場合、そのサイズを再定義するのはあなた次第です。
  • 非動的: buff[5] - この場合、正しい値で初期化する必要があります。
  • 非動的: buff[]={10,20,30,40,50}; - この場合、宣言された値で初期化されます。
分かりやすい説明ありがとうございます
 
遺伝的最適化において、ラングラフの数字が何を意味するのか、誰が知っているのだろうか。例えば0.637や7.27のように、2つの数字があります。そして、正しいランの選び方。例えば、私はランナンバー5381に興味があります。どのように選ぶか?
 
括弧の間の符号が何であるかを知っている人GHPR=(BalanceClose/BalanceOpen)^(1/N)
 
Roma Ivanov:
括弧の間の符号が何であるかを知っている人GHPR=(BalanceClose/BalanceOpen)^(1/N)
ビット毎排他的論理和演算
 

本当に、本当に?

私はずっと(^)は指数関数 だと思っていました。

 
Roma Ivanov:
括弧の間の符号が何であるかを知っている人GHPR=(BalanceClose/BalanceOpen)^(1/N)
学位換算。
理由: