Standard-Blinker außer Kraft setzen?! - Seite 4

 
Ja, natürlich...
Hier sind die Daten aus den Dateien


und hier ist dieser Balken im Diagramm


und das ist nicht der einzige Fall, sondern nur ein Beispiel von vielen.
Alle diese Bars sind mit den "Sunday"-Bars verwandt.
 
und hier ist es im Zitatarchiv
 
Fanden Sie es nicht seltsam, dass es eine Bar mit einer Öffnungszeit von 2300 Uhr auf vier Uhr gibt?
 
Das erste Mal, dass ich einen Beitrag in diesem Thread geschrieben habe, ist eindeutig redundant, da es 20:00 und 00:00 gibt, wie ich in meinem ersten Beitrag in diesem Thread vorgeschlagen habe,
aber die Tatsache, dass es nicht positionieren kann ein Objekt (bauen eine Linie), wahrscheinlich etwas anderes mit einem Zitat Basis, wenn Sie denken, Sie brauchen es, versuchen Sie zuerst Nagel es, und dann manuell hinzufügen
 
Ich habe über die aufsteigenden Balken gelesen. Vielleicht ist es (für den Indikator) die Funktion iBarShift()
<br/ translate="no"> int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)
Suche nach Takt nach Zeit. Die Funktion gibt den Offset des Taktes zurück, zu dem die angegebene Zeit gehört. Gibt es für die angegebene Zeit keinen Balken (eine "Lücke" in der Historie), gibt die Funktion, je nach genauem Parameter, -1 oder die Verschiebung des nächstgelegenen Balkens zurück.

Parameter:
symbol - Symbolname des Instruments. NULL bedeutet das aktuelle Symbol.
timeframe - Zeitraum. Kann eine der Perioden des Diagramms sein. 0 bedeutet den Zeitraum des aktuellen Diagramms.
time - Zeitwert für die Suche.
exact - Rückgegebener Wert, wenn kein Balken gefunden wird. FALSE - iBarShift gibt den nächstgelegenen Wert zurück. TRUE - iBarShift liefert -1.

Beispiel:
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);




Ich werde später versuchen, die MiG-Zitate zu überprüfen.
 
Diese Frage wurde mir bereits auf einer früheren Seite gestellt. :о)
Nein, das war es nicht.
Es handelt sich um eine reguläre "Sonntags"-Bar, die um 23:00 Uhr öffnet. Die FIBO bietet zum Beispiel Sonntagsbars an, die um 22 Uhr beginnen.
 
Ich habe es überprüft, alles bestätigt, aber es ist mir trotzdem gelungen, die Linie an der richtigen Stelle zu setzen. Dazu habe ich zuerst auf die Uhren umgeschaltet. Ich denke, wenn ein Objekt gesetzt wird, wird immer der nächste Balken zu den genauen Period() -Minuten gesucht.

 
Die endgültige Version des Indikators unter Verwendung der zweiten Währung.
Unterschiedliche Taktankunftszeiten sowie Auslassungen in der Historie werden berücksichtigt.
Kritik ist willkommen.

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


 
Blöde Frage: Wozu dient die Variable "nPeriod", außer um mit ihrem Namen anzugeben? ;о)
 
Blöde Frage: Wozu dient die Variable "nPeriod", außer um im Namen anzugeben? ;o) <br / translate="no">


Э... Es ist nur so, dass es eine MA gab und ich sie dann entfernt habe. Aber nicht den ganzen Weg :)