MQL5でOpen,Low,High,Closeのパラメータを取得するにはどうしたらいいですか? - ページ 5

 
Igor Makanu:

CNewbarの クラスか、NewBarのフォーラムを検索してください。


あなたのクラスでiTimeの呼び出しがあります。忘れた方がいい)とアドバイスされました。それに、CopyRatesと同じ仕事をしていないという保証はどこにあるのでしょうか?刻みで呼び出すんですね。要するに、すべてのティックでCopyRatesを呼び出すことにして、問題は解決です。

 
Artyom Trishkin:

そう、刻み ごとに時間を確認するのです。

そして、一言で言えば

ひざまずけ

計算自体にCopyRatesやその対応するものが含まれる場合、新しいバーを計算する意味がありません。同費用となる。

ダニごとに通報するおっとっと。

 
Igor Makanu:

CNewbarの クラスか、NewBarのフォーラムを検索してください。

ZS:記事全体!https://www.mql5.com/ru/articles/159



よし、いつもの...おっとっと、おっとっと...一行もコードがない ))))

私は、連続したOHLCの配列を取得することが必ずしも便利ではない(めったに必要ではない)ことを示すために、この例を挙げました。 実際の問題では、しばしば異なるバーからOHLC値の選択を取得する必要があります(指標は考慮されていません)。

よし、病気になるな!

おいおい、どうしたんだ。太っている人は、温かい人が多いですね。だから、こういう比較も使えるんです。OHLCが必要な人は気にしないでください・・・。イゴールがフラクタル使えよって言ってたから使ってみたら...。

 
Реter Konow:

クラスでiTimeの呼び出しがあります。忘れた方がいい)とアドバイスされました。それに、今度はCopyRatesと同じ仕事をしないという保証はどこにあるのでしょうか?刻みで呼び出すんですね。とにかく、すべてのティックでCopyRatesを呼び出すと、問題は解決します。

これは、CopyTime()やiTime()を1目盛りにつき 1回呼び出すよりも長い時間です。

CopyRates() は、バーのすべての値を一度に取得する必要がある場合、つまり新しいバーが定義されたときにのみ呼び出されます。

 
Реter Konow:
計算自体にCopyRatesやその対応するものが含まれる場合、新しいバーを計算する意味がありません。同費用となる。

ダニごとに通報するスパです。

答え - あなたは間違っています。

 
Artyom Trishkin:

これは、CopyTime()やiTime()を1目盛りにつき 1回呼び出すよりも長い時間です。

CopyRates() は、すべてのバーの値を一度に取得する必要がある場合のみ、つまり新しいバーを定義するときに呼び出します。

オッケーです。そのため、iXXXの機能を忘れるという設定は忘れる必要があります)。

 
Реter Konow:

オッケーです。だから、iXXX関数のことは忘れなければなりません))。

もちろんです。何でもかんでも、彼らの言うことが役に立つとは限らない。とか、そんなくだらないことを言えるんです :)))

しかし、ここでは - 速度の理由から: CopyRates() は、1つのバーの複数の値を同時に 取得する必要がある場合 (あなたの場合) に便利です。CopyTime() や iTime() よりも遅いですが、CopyOpen(), CopyHigh(), CopyLow(), CopyClose() + (必要なら CopyTime()) を呼ぶと、必要な値を一度に返すCopyRates() という単一の呼び出しよりも遅くなるでしょう。

結論:各ティックでCopyTime()またはiTime()を使って新しいバーを決定し、新しいバーが出現した瞬間にCopyRates()を一回呼び出します。

また、信仰以外の何ものによっても確認されていない宗教的な発言を鵜呑みにするべきではありません。新しいバーを定義する場合、CopyTime()とiTime()のどちらが速いか自分で確認することができます - 最近MQL5の関数に実装され、クロスプラットフォームのコードを書きやすくなりました(嘘です - MQL4にもCopyXXX関数がありますが、MQL4のコードをMQL5に移植する方が簡単 - iXXX関数をやり直す必要がないのです)。

 
Реter Konow:
そうでなければ、現在のバーの開店時間が変わったことをどうやって知ることができるのでしょうか?
//+------------------------------------------------------------------+
//|                                                       NewBar.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlDateTime time;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{

   EventSetMillisecondTimer(100);
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   EventKillTimer();   
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{

   
}

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
{
   TimeGMT(time);   
   //TimeLocal(time);

   if(NewMinute())
   {
     Print("Я новая минута");
   }		
}

//####################################################################

//Получить новое время
int zero = 0;
bool NewMinute()
{
  int minute = time.min; //time.sec; time.hour;  time.day; 
  if(zero != minute)
  {    
    zero = minute;
    return(true);
  }
  else return(false); 
}
 
Реter Konow:

クラスでiTimeの呼び出しがあります。忘れた方がいい)とアドバイスされました。その上、それがCopyRatesと同じ仕事をしないという保証はどこにあるのでしょうか?刻みで呼び出すんですね。とにかく、すべてのティックでCopyRatesを呼び出すと、問題は解決します。

いつも書くだけで、読もうとしないのですか? New Barについての全記事へのリンクをあげましたよ。記事はチェックされます - フォーラムに常に書き込んでいる人たちとは異なる能力の人たちによってチェックされます ;)

ZS: もしあなたが書くのをやめて読み始めたら、私のリンクの記事のように、iXXX()を使わない別の方法(SERIES_LASTBAR_DATE )を見つけることができます - 私はそれらを使用しないようにと言いました )))- 誰がバグやエラーを報告するんだ、開発者が粗悪品をリリースしたんだぞ ))))

 
Igor Makanu:

いつも書くだけで、読もうとしないのですか? New Barについての全記事へのリンクをあげましたよ。記事はチェックされます - フォーラムに常に書き込んでいる人たちとは異なる能力の人たちによってチェックされます ;)

ZS: もしあなたが書くのをやめて読み始めたら、私のリンクの記事のように、iXXX()を使わない別の方法(SERIES_LASTBAR_DATE ) - 私はそれを使わないように言ったのです )))- 開発者が出したバグやエラーが粗悪品だと誰が言うんだ ))))

SERIES_LASTBAR_DATEに問題がありました。昔、どこかで議論されたことがある。もしかしたら、直ったのかもしれません。

理由: