CopyHigh

この関数は、指定された数量の選択されたシンボルと期間のペアの最高バー価格の履歴データをhigh_arrayに入れます。要素の順序は現在から過去への順序であることに注意してください。つまり、開始位置0は現在のバーを意味します。

CopyHigh

要求されたデータ数がターゲット配列の長さより少ない(または多い)場合、関数はメモリを再割り当てしようとするため、まだ未知の量のデータをコピーするとき動的配列をターゲット配列として使用することをお勧めします要求されたデータは完全に適合します。

コピーする必要のあるデータの量がわかっている場合、過剰なメモリの割り当てを防ぐために、静的に割り当てられたバッファに行う方が良いでしょう。

ターゲット配列のプロパティに関係なく-as_series = trueまたはas_series = false。データはコピーされ、最も古い要素がアレイに割り当てられた物理メモリの先頭に配置されます。関数呼び出しには3つのバリアントがあります。

最初の位置と必要な要素の数で呼び出す

int  CopyHigh(
   string           symbol_name,      // symbol name
   ENUM_TIMEFRAMES  timeframe,        // period
   int              start_pos,        // start position
   int              count,            // data count to copy
   double           high_array[]      // target array to copy
   );

開始日と必要な要素の数までに呼び出します

int  CopyHigh(
   string           symbol_name,      // symbol name
   ENUM_TIMEFRAMES  timeframe,        // period
   datetime         start_time,       // start date and time
   int              count,            // data count to copy
   double           high_array[]      // target array to copy
   );

必要な時間間隔の開始日と終了日までに呼び出します

int  CopyHigh(
   string           symbol_name,      // symbol name
   ENUM_TIMEFRAMES  timeframe,        // period
   datetime         start_time,       // start date and time
   datetime         stop_time,        // stop date and time
   double           high_array[]      // target array to copy
   );

パラメーター

symbol_name

[in]シンボル名。

時間枠

[in]期間。

start_pos

[入力]コピーする最初の要素の開始位置。

カウント

[in]コピーするデータ数。

始まる時間

[入力]コピーする最初の要素の開始時間。

停止時間

[in]コピーする最後の要素に対応するバータイム。

high_array []

[out] double型の配列。

戻り値

コピーされたデータ数を返します。エラーの場合は-1を返します。

注意

要求されたデータの間隔全体がサーバー上の使用可能なデータを超えている場合、関数は-1を返します。TERMINAL_MAXBARS(チャート上のバーの最大数)外のデータが要求された場合、関数は-1を返します。

要求された時系列がまだ構築されていない場合、またはサーバーからダウンロードする必要がある場合、関数はすぐに-1を返します。

開始日と必要な要素の数でデータを要求する場合、指定された日付よりも小さい(早い)または等しい日付のデータのみが返されます。つまり、値が返されるバーのオープン時間(ボリューム、スプレッド、インディケーターバッファーの値、オープン、ハイ、ロー、クローズまたはオープンタイムの価格)は常に指定された時間以下です。

指定された日付範囲のデータを要求すると、この間隔のデータのみが返されます。間隔が設定され、数秒までカウントされます。つまり、値が返されるバーのオープン時間(ボリューム、スプレッド、インディケーターバッファーの値、オープン、ハイ、ロー、クローズ、またはオープンタイムの価格)は常に要求された間隔内にあります。

このように、現在の日は土曜日は、指定週間のタイムフレームにデータをコピーしようとする試みである場合に=がLast_Tuesdayのstart_time STOP_TIME = Last_Friday 週間の時間枠のオープン時間は、常に日曜日であるため、関数は、0を返しますが、1週間バーはありません指定された間隔に該当しません。

現在の未完了のバーに対応する値を返す必要がある場合は、start_pos = 0およびcount = 1を指定する最初の形式の呼び出しを使用できます

例:

#property copyright “2009, MetaQuotes Software Corp.”
#property link      “https://www.mql5.com”
#property version   “1.00”
 
#property description “An example for output of the High[i] and Low[i]”
#property description “for a random chosen bars”
 
double High[],Low[];
//+——————————————————————+
//| Get Low for specified bar index                                  |
//+——————————————————————+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
  {
   double low=0;
   ArraySetAsSeries(Low,true);
   int copied=CopyLow(symbol,timeframe,0,Bars(symbol,timeframe),Low);
   if(copied>0 && index<copied) low=Low[index];
   return(low);
  }
//+——————————————————————+
//| Get the High for specified bar index                             |
//+——————————————————————+
double iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index)
  {
   double high=0;
   ArraySetAsSeries(High,true);
   int copied=CopyHigh(symbol,timeframe,0,Bars(symbol,timeframe),High);
   if(copied>0 && index<copied) high=High[index];
   return(high);
  }
//+——————————————————————+
//| Expert tick function                                             |
//+——————————————————————+
void OnTick()
  {
//— on every tick we output the High and Low values for the bar with index,
//— that is equal to the second, on which tick arrived
   datetime t=TimeCurrent();
   int sec=t%60;
   printf(“High[%d] = %G  Low[%d] = %G”,
          sec,iHigh(Symbol(),0,sec),
          sec,iLow(Symbol(),0,sec));
  }

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">