<br/ translate="no"> int iBarShift( string symbol, int timeframe, datetime time, bool exact=false) 時間でバーを検索する。この関数は、指定された時刻が属するバーのオフセットを返します。指定した時間にバーがない場合(履歴の「ギャップ」)、この関数は正確なパラメータに応じて、-1または最も近いバーのシフトを返します。
Parameters: symbol - 測定器のシンボル名。NULLは現在のシンボルを意味する。 timeframe - 期間。チャートの期間のいずれかを指定することができます。 time - 検索する時間値です。 exact - バーが見つからなかった場合に返される値.FALSE - iBarShiftは最も近いものを返します。TRUE - iBarShift は -1 を返します。
例: datetime some_time=D'2004.03.21 12:00'; int shift=iBarShift("EUROUSD",PERIOD_M1,some_time); Print("shift of bar with open time ",TimeToStr(some_time)," is ",shift);
以下は、ファイルからのデータです。
そして、このバーがチャート上にあります
と、これは唯一のケースではなく、多くの例のうちのひとつに過ぎません。
これらのバーはすべて「サンデー」バーと関係がある。
が、オブジェクトの位置決め(線の構築)ができないのは、おそらく引用ベースで他の何か、必要だと思うのであれば、まず釘を刺してみて、その後、手動で
。
時間でバーを検索する。この関数は、指定された時刻が属するバーのオフセットを返します。指定した時間にバーがない場合(履歴の「ギャップ」)、この関数は正確なパラメータに応じて、-1または最も近いバーのシフトを返します。
Parameters:
symbol - 測定器のシンボル名。NULLは現在のシンボルを意味する。
timeframe - 期間。チャートの期間のいずれかを指定することができます。
time - 検索する時間値です。
exact - バーが見つからなかった場合に返される値.FALSE - iBarShiftは最も近いものを返します。TRUE - iBarShift は -1 を返します。
例:
datetime some_time=D'2004.03.21 12:00';
int shift=iBarShift("EUROUSD",PERIOD_M1,some_time);
Print("shift of bar with open time ",TimeToStr(some_time)," is ",shift);
MiGの名言、後で見てみますね。
いいえ、そうではありません。
普通の "サンデー "バーで、23時にオープンするんだ。例えばFIBOでは、22:00から始まる「サンデー」バーがあります。
バーの到着時間の違いや、履歴の抜けも考慮されています。
批評は歓迎します。
#property copyright "Copyright Quark" #property link "" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Lime // indicator parameters extern int nPeriod = 6; double arrOpen[]; int nExtCountedBars = 0; int nBars; int nBarsUsdChf; //////////////////////// int init() { nBars = 0; nBarsUsdChf = 0; string strIndicatorShortName = "Test_1(" + Symbol() + " " + nPeriod + ")"; IndicatorShortName(strIndicatorShortName); // drawing settings SetIndexStyle(0, DRAW_LINE); SetIndexShift(0, 0); IndicatorDigits(4); // indicator buffers mapping SetIndexBuffer(0, arrOpen); return(0); } /////////////////////////// int start() { if(Bars <= nPeriod) return(0); if(nBars == Bars || nBarsUsdChf == iBars("USDCHF", 0)) return(-1); int nPos = Bars - nBars; int nPosUsdChf = nPos; nBars = Bars; nBarsUsdChf = iBars("USDCHF", 0); while(nPos >= 0) { // Adjust nPosUsdChf, so that time is the same as in EURUSD // If Time(USDCHF) < Time(EURUSD), decrease nPosUsdChf while(nPosUsdChf > 0 && TimeDay(Time[nPosUsdChf]) < TimeDay(Time[nPos]) || // Yerterday vs. Today (TimeDay(Time[nPosUsdChf]) == TimeDay(Time[nPos]) && // Same day TimeHour(Time[nPosUsdChf]) < TimeHour(Time[nPos]))) nPosUsdChf--; // Now, if Time(USDCHF) > Time(EURUSD), increase nPosUsdChf while(nPosUsdChf < Bars && TimeDay(Time[nPosUsdChf]) > TimeDay(Time[nPos]) || // Yerterday vs. Today (TimeDay(Time[nPosUsdChf]) == TimeDay(Time[nPos]) && // Same day TimeHour(Time[nPosUsdChf]) > TimeHour(Time[nPos]))) nPosUsdChf++; arrOpen[nPos] = iOpen("USDCHF", 0, nPosUsdChf); nPos--; nPosUsdChf--; } return(0); }Э...ただ、MAがあったのに、それを削除してしまったんです。でも、全部はダメです :)