No necesito una subventana, el indicador debe colocarse en el gráfico de precios como un gráfico estándar
Lo considero un ejemplo y trato de entenderlo.
Quiero que el indicador montado en el gráfico tenga su propio número, para poder crear el número necesario de copias en el gráfico mediante el botón "Añadir" ..... Quiero borrar uno seleccionado por el botón "cruz" ........ (no quiero describirlos todavía))
Cuándo debe añadirse un indicador a la ventana del gráfico principal
subventana
[in] Número de subventana del gráfico.0 significa ventana del gráfico principal. Para añadir un indicador a una nueva ventana, el parámetro debe ser uno más que el índice de la última ventana existente, es decir, igual aCHART_WINDOWS_TOTAL. Si el valor del parámetro excedeCHART_WINDOWS_TOTAL, no se creará una nueva ventana, el indicador no se añadirá.
No se puede añadir el indicador a OnInit() - ya que el experto aún no se ha formado en esta etapa. Pero la función - OnTick() es un signo de trabajo completo del Asesor Experto.
//+------------------------------------------------------------------+//| 0000.mq5 |//| Copyright 2016, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2016, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"inputint MA_Period=21;
inputint MA_Shift=0;
inputENUM_MA_METHOD MA_Method=MODE_SMA;
//--- variablesint MA_handle=INVALID_HANDLE;
bool first_start=false;
//+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ intOnInit()
{
Print(__FUNCTION__,", first_start = ",first_start);
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",MA_Period,MA_Shift,MA_Method,PRICE_CLOSE);
if(MA_handle==INVALID_HANDLE)
return(INIT_FAILED);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| "Tick" event handler function |//+------------------------------------------------------------------+voidOnTick()
{
//---if(!first_start)
{
if(AddIndicator()) //попробуем добавить индикатор на график
first_start=true;
}
}
//+------------------------------------------------------------------+ //| Функция проверки и добавления индикатора на график | //+------------------------------------------------------------------+ bool AddIndicator()
{
//--- сбросим код ошибки ResetLastError();
//--- накладываем индикатор на график int subwindow=0;
PrintFormat("Добавляем индикатор на окно %d графика",subwindow);
if(!ChartIndicatorAdd(0,subwindow,MA_handle))
{
PrintFormat("Не удалось добавить индикатор на окно %d графика. Код ошибки %d",
subwindow,GetLastError());
}
return(true);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+
Y reescribir la función AddIndicator() para que devuelva false al intentar añadir un indicador sin éxito.
No necesito una subventana, el indicador debe colocarse en el gráfico de precios como un gráfico estándar
Lo considero un ejemplo y trato de entenderlo.
Quiero que el indicador montado en el gráfico tenga su propio número, para poder crear el número necesario de copias en el gráfico mediante el botón "Añadir" ..... Quiero borrar una seleccionada por el botón "cruz" ........ (hay muchas fantasías y no quiero describirlas todavía))
El indicador puede tener un nombre, si te gustan los números, que sea un número. Sin embargo, el número no será un número sino un texto. ¿Quiere un panel de control personalizado que le permita añadir cualquier número de indicador de uno o más?
pako: Hay cuatro cinco semanas en un mes, hoy es la cuarta semana del mes
Ya veo. Así que quiere contabilizar las semanas de esta naturaleza el 29 del mes anterior (lunes, por ejemplo) y hasta el 31 del mes en curso (lunes también, por ejemplo). Es más de un mes. No es lógico contar esas semanas. Si no es así, la semana no será completa. No, no hay punto....
Hola Vladimir.
Debo haber formulado mal mi pregunta.
No necesito una subventana, el indicador debe colocarse en el gráfico de precios como un gráfico estándar
Lo considero un ejemplo y trato de entenderlo.
Quiero que el indicador montado en el gráfico tenga su propio número, para poder crear el número necesario de copias en el gráfico mediante el botón "Añadir" ..... Quiero borrar uno seleccionado por el botón "cruz" ........ (no quiero describirlos todavía))
Cuándo debe añadirse un indicador a la ventana del gráfico principal
subventana
[in] Número de subventana del gráfico.0 significa ventana del gráfico principal. Para añadir un indicador a una nueva ventana, el parámetro debe ser uno más que el índice de la última ventana existente, es decir, igual aCHART_WINDOWS_TOTAL. Si el valor del parámetro excedeCHART_WINDOWS_TOTAL, no se creará una nueva ventana, el indicador no se añadirá.
No se puede añadir el indicador a OnInit() - ya que el experto aún no se ha formado en esta etapa. Pero la función - OnTick() es un signo de trabajo completo del Asesor Experto.
Y reescribir la función AddIndicator() para que devuelva false al intentar añadir un indicador sin éxito.Hola Vladimir.
Debo haber formulado mal mi pregunta.
No necesito una subventana, el indicador debe colocarse en el gráfico de precios como un gráfico estándar
Lo considero un ejemplo y trato de entenderlo.
Quiero que el indicador montado en el gráfico tenga su propio número, para poder crear el número necesario de copias en el gráfico mediante el botón "Añadir" ..... Quiero borrar una seleccionada por el botón "cruz" ........ (hay muchas fantasías y no quiero describirlas todavía))
bool TimeStart=false;
int hour=12;
//--Фильтр по ремени открытия бара внутри дня
if (TimeStart==true)
{
datetime Open_timePos=iTime(_Symbol,0,0);
MqlDateTime str1;
TimeToStruct(Open_timePos,str1);
str1.hour=hour;
str1.min=0;
str1.sec=0;
datetime start_time=StructToTime(str1);
if (start_time>iTime(_Symbol,0,0))
{
BuyPrIMA=false;
SellPrIMA=false;
}
¿Me pueden decir cómo filtrar por número de día y por separado por número de semana en un mes? Dentro del día he hecho esto:
Está preguntando por la semana del mes
He hecho las tres opciones allí. ¿Cuál quiere usar como base, por favor?
¿Este?
Hice las tres opciones allí. Por favor, especifique.
Hay cinco o seis semanas en el mes, hoy es la cuarta semana del mes
str.day día del mes
str.día_de_semana día
Hay cuatro cinco semanas en un mes, hoy es la cuarta semana del mes
He hecho las tres opciones allí. ¿Puedes decirme cuál quiere usar como base?
¿Este?