¿Anulación de los indicadores estándar? - página 4

 
Por supuesto...
aquí están los datos de los archivos


y aquí está esta barra en el gráfico


y este no es el único caso, es sólo un ejemplo de muchos.
Todos estos bares están relacionados con los "domingos".
 
y aquí está en el archivo de citas
 
¿No te parece extraño que haya un bar con una hora de apertura a las 23:00 horas en las cuatro?
 
La primera vez que se ve, es obviamente redundante, ya que hay 20:00 y 00:00, todo es como sugerí en mi primer post en este hilo,
pero el hecho de que no pueda posicionar un objeto (construir una línea), probablemente algo más con una base de cotización, si crees que lo necesitas, intenta primero clavarlo, y luego añadir manualmente
 
He leído sobre las barras ascendentes. Tal vez (para el indicador) es la función iBarShift()
<br/ translate="no"> intBarShift( string symbol, int timeframe, datetime time, bool exact=false)
Buscar barra por tiempo. La función devuelve el desplazamiento de la barra a la que pertenece la hora especificada. Si no hay ninguna barra para el tiempo especificado (un "hueco" en el historial), la función, dependiendo del parámetro exacto, devuelve -1 o el desplazamiento de la barra más cercana.

Parámetros:
símbolo - nombre del símbolo del instrumento. NULL significa el símbolo actual.
timeframe - Periodo. Puede ser uno de los períodos del gráfico. 0 significa el período del gráfico actual.
time - Valor del tiempo a buscar.
exact - Valor devuelto si no se encuentra ninguna barra. FALSE - iBarShift devuelve el más cercano. TRUE - iBarShift devuelve -1.

Ejemplo:
datetime some_time=D'2004.03.21 12:00';
int shift=iBarShift("EUROUSD",PERIOD_M1,some_time);
Print("el desplazamiento de la barra con tiempo de apertura ",TimeToStr(some_time)," es ",shift);




Intentaré mirar las citas del MiG, más tarde.
 
Ya me lo han preguntado en una página anterior. :о)
No, no lo era.
Es un bar habitual de los "domingos", y sí abre a las 23:00 horas. FIBO, por ejemplo, tiene bares "dominicales" que empiezan a las 10 de la noche.
 
Lo he comprobado, todo confirmado. Es cierto que aún he conseguido poner la línea en el lugar correcto. Para ello, he pasado primero a los relojes. Creo que al fijar un objeto siempre busca la barra más cercana a los minutos exactos de Period().

 
La versión final del indicador utilizando la segunda moneda.
Se tienen en cuenta las diferentes horas de llegada de los bares, así como las omisiones en el historial.
Las críticas son bienvenidas.

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


 
Pregunta estúpida: ¿cuál es el propósito de la variable "nPeriod" aparte de mostrar su nombre? ;о)
 
Pregunta estúpida: ¿cuál es el propósito de la variable "nPeriod" aparte de presumir en el nombre? ;o) <br / translate="no">


Э... Es que había un MA y luego lo quité. Pero no hasta el final :)