標準のインジケーターが上書きされるのか!? - ページ 4

 
もちろん...
以下は、ファイルからのデータです。


そして、このバーがチャート上にあります


と、これは唯一のケースではなく、多くの例のうちのひとつに過ぎません。
これらのバーはすべて「サンデー」バーと関係がある。
 
と、引用アーカイブにあります。
 
4 時台に23時開店の バーがあるなんて、おかしいと思いませんでしたか?
 
20:00と00:00があるように、明らかに冗長です。すべてはこのスレッドの最初の投稿で提案したとおりです。
が、オブジェクトの位置決め(線の構築)ができないのは、おそらく引用ベースで他の何か、必要だと思うのであれば、まず釘を刺してみて、その後、手動で
 
ライジングバーについて読んだことがあります。たぶん(インジケーターの場合)iBarShift()関数
<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);




MiGの名言、後で見てみますね。
 
その質問は、すでに前のページでされていますね。:о)
いいえ、そうではありません。
普通の "サンデー "バーで、23時にオープンするんだ。例えばFIBOでは、22:00から始まる「サンデー」バーがあります。
 
確認したところ、すべて確認できました。確かに、まだ正しい位置に線をセットすることができました。そのために、まず時計に切り替えたのです。オブジェクトを設定する際、常にPeriod() 分の精度で最も近いバーを探していると思うのですが、どうでしょうか?

 
第2通貨を使用した指標の最終バージョン。
バーの到着時間の違いや、履歴の抜けも考慮されています。
批評は歓迎します。

#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);
}


 
くだらない質問ですが、変数「nPeriod」の目的は、名前をアピールする以外に何があるのでしょうか?;о)
 
くだらない質問ですが、変数「nPeriod」の目的は、名前でアピールする以外に何があるのでしょうか?;o) <br /> translate="no">。


Э...ただ、MAがあったのに、それを削除してしまったんです。でも、全部はダメです :)