Devo ter formulado a minha pergunta de forma incorrecta.
Não preciso de uma subjanela, o indicador deve ser colocado na tabela de preços como um gráfico padrão
Considero isto como um exemplo, e tento compreender .
Quero que o indicador montado no gráfico tenha o seu próprio número, para que o número necessário de cópias possa ser criado no gráfico usando o botão "Adicionar" ..... Quero apagar um seleccionado pelo botão "cross" ........ (ainda não os quero descrever))
Quando um indicador deve ser adicionado à janela principal do gráfico
sub_janela
[em] Número da subjanela do gráfico.0 significa janela principal do gráfico. Para adicionar um indicador a uma nova janela, o parâmetro deve ser mais um do que o índice da última janela existente, ou seja, igual aCHART_WINDOWS_TOTAL. Se o valor do parâmetro excederCHART_WINDOWS_TOTAL, não será criada uma nova janela, o indicador não será adicionado.
Não é possível adicionar o indicador ao OnInit() - uma vez que o perito ainda não foi formado nesta fase. Mas a função - OnTick() é um sinal do trabalho completo do Expert Advisor.
//+------------------------------------------------------------------+//| 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)
{
//---
}
//+------------------------------------------------------------------+
E reescrever a função AddIndicator() para que retorne falso na tentativa mal sucedida de adicionar um indicador.
Devo ter formulado a minha pergunta de forma incorrecta.
Não preciso de uma subjanela, o indicador deve ser colocado na tabela de preços como um gráfico padrão
Considero isto como um exemplo, e tento compreender .
Quero que o indicador montado no gráfico tenha o seu próprio número, para que o número necessário de cópias possa ser criado no gráfico usando o botão "Adicionar" ..... Quero apagar uma seleccionada com o botão "cross" ........ (há muitas fantasias e ainda não as quero descrever))
O indicador pode ter um nome, se gostar de números, deixe-o ser um número. No entanto, o número não será um número mas um texto. Deseja um painel de controlo personalizado que lhe permita adicionar qualquer número indicador de um ou mais?
pako: Há quatro cinco semanas num mês, hoje é a quarta semana do mês
Estou a ver. Assim, ele quer prestar contas durante semanas desta natureza no dia 29 do mês anterior (segunda-feira, por exemplo) e até ao dia 31 do mês em curso (segunda-feira também, por exemplo). É mais de um mês. Não é lógico contar tais semanas. Se não for, então a semana não será uma semana inteira. Não, nenhum ponto....
Olá Vladimir.
Devo ter formulado a minha pergunta de forma incorrecta.
Não preciso de uma subjanela, o indicador deve ser colocado na tabela de preços como um gráfico padrão
Considero isto como um exemplo, e tento compreender .
Quero que o indicador montado no gráfico tenha o seu próprio número, para que o número necessário de cópias possa ser criado no gráfico usando o botão "Adicionar" ..... Quero apagar um seleccionado pelo botão "cross" ........ (ainda não os quero descrever))
Quando um indicador deve ser adicionado à janela principal do gráfico
sub_janela
[em] Número da subjanela do gráfico.0 significa janela principal do gráfico. Para adicionar um indicador a uma nova janela, o parâmetro deve ser mais um do que o índice da última janela existente, ou seja, igual aCHART_WINDOWS_TOTAL. Se o valor do parâmetro excederCHART_WINDOWS_TOTAL, não será criada uma nova janela, o indicador não será adicionado.
Não é possível adicionar o indicador ao OnInit() - uma vez que o perito ainda não foi formado nesta fase. Mas a função - OnTick() é um sinal do trabalho completo do Expert Advisor.
E reescrever a função AddIndicator() para que retorne falso na tentativa mal sucedida de adicionar um indicador.Olá Vladimir.
Devo ter formulado a minha pergunta de forma incorrecta.
Não preciso de uma subjanela, o indicador deve ser colocado na tabela de preços como um gráfico padrão
Considero isto como um exemplo, e tento compreender .
Quero que o indicador montado no gráfico tenha o seu próprio número, para que o número necessário de cópias possa ser criado no gráfico usando o botão "Adicionar" ..... Quero apagar uma seleccionada com o botão "cross" ........ (há muitas fantasias e ainda não as quero descrever))
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;
}
Pode dizer-me como filtrar por número de dia e separadamente por número de semana num mês? Dentro do dia em que o fiz:
Ele está a perguntar sobre a semana do mês
Fiz aí as três opções. Qual deles quer usar como base, por favor?
Este aqui?
Fiz aí as três opções. Por favor, especifique.
Há cinco a seis semanas no mês, hoje é a quarta semana do mês
str.day dia do mês
str.day_of_week day
Há quatro cinco semanas num mês, hoje é a quarta semana do mês
Fiz aí as três opções. Pode dizer-me qual deles quer usar como base?
Este aqui?