Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1040

 
Caros colegas, há necessidade de definir programmaticamente o intervalo de tempo em que a optimização terá lugar. Pode aconselhar se existe tal possibilidade? No OnInit.
 
Anzhela Sityaeva:

A vírgula não desempenha um papel na fórmula, tem razão, apenas separa o valor do tipo, para facilitar a compreensão de nada mais. O grau 5 foi há muito tempo :), e eu nunca fui bom em matemática, como acontece. Mas lembro-me da ordem das operações.

A questão é precisamente que em ambas as versões dos cálculos o resultadoé o mesmo, qual é a opção correcta?

Atrevo-me a dizer que nasceu quando eu já tinha terminado não só o quinto ano, mas alguns do ano seguinte. Por isso foi como ontem para mim... E se se lembrar da ordem das operações, porque é que esta questão se coloca na sua mente? Se o resultado dos cálculos for o mesmo, uma opção pode ser mais correcta do que a outra? Bem, é óbvio que não há diferença.
 
Alexey Viktorov:
Atrevo-me a dizer que nasceu quando eu já tinha terminado não só o quinto ano, mas também os seguintes. Por isso foi como ontem para mim... E se se lembrar da ordem das operações, porque é que há tal pergunta na sua mente? Se o resultado dos cálculos for o mesmo, uma opção pode ser mais correcta do que a outra? Bem, obviamente não há diferença.
Não é habitual perguntar a uma rapariga sobre a sua idade, e isso é irrelevante. Queria a opinião de alguém que está sobre o assunto e, para além de mim, dúvidas, sabeis :)
 
Anzhela Sityaeva:
Não é costume perguntar a uma rapariga sobre a sua idade, e é irrelevante. Queria a opinião de alguém que está sobre o assunto e, para além de mim, dúvidas, sabeis :)

Eu não perguntei sobre a sua idade. Apenas sugeri que ainda são muito jovens e apenas fingem que já não se lembram de nada.

 
Decromor:

Olá a todos...

Estou a tentar remover um indicador que adicionei de um EA. Estou a fazer o seguinte:

Em Indicador:

O indicador é adicionado, o número da subjanela e o nome curto estão correctos, mas erro ao apagar:

2019.05.08 12:01:10.068 2019.04.03 12:39:31 Falha em apagar o indicador blablabla da janela #2. Código de erro 4014

4014 - "Não é permitida a chamada da função do sistema". Poderia por favor aconselhar o que significa, como remover o indicador?

Um dos indicadores é utilizado pelo Conselheiro Especialista durante um curto período de tempo, o resto do tempo não é necessário e as suas definições tornam-se irrelevantes. É por isso que a primeira opção que considerei - remover o indicador no momento em que não é necessário e, no momento certo, adicioná-lo com novas definições. Mas não o posso fazer por qualquer razão.

Outra variante é: Variáveis Globais. Suponhamos que o indicador estará sempre na janela, mas alterarei os seus parâmetros de entrada através de variáveis globais no momento necessário.

Certo? Existem outras variantes?

 
Decromor:

Um dos indicadores é utilizado pelo Conselheiro Especialista durante um curto período de tempo, o resto do tempo não é necessário, e as suas definições tornam-se irrelevantes. Por este motivo, a primeira opção que considerei foi remover o indicador no momento em que não é necessário e adicioná-lo no momento certo com novas definições. Mas não o posso fazer por qualquer razão.

Outra variante é: Variáveis Globais. Suponhamos que o indicador estará sempre na janela, mas alterarei os seus parâmetros de entrada através de variáveis globais no momento necessário.

Certo? Existem outras variantes?

Um indicador perito num gráfico é como um pivô de um cão.

 
Alexey Viktorov:

O indicador na tabela é como a vez de um cão.

É perfeito para a criação de um perito.

É assim que o acrescento, mas não o posso remover.

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Perguntas de principiantes MQL5 MT5 MetaTrader 5

Decromor, 2019.05.08 09:17

Olá a todos...

Tentar remover um indicador que eu próprio adicionei de um EA. Estou a fazer o seguinte:

//Объявляю переменные
int win_ind=-1,
    handle_ind = INVALID_HANDLE;

//Создаю
   handle_ind= iCustom(NULL,0,"ind");
   if(handle_ind== INVALID_HANDLE){
      Print("Не удалось создать индикатор. Код ошибки: ",GetLastError());
      return(false);
   }
   win_ind=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); //--- получим номер нового подокна, в которое добавим индикатор 
   if(!ChartIndicatorAdd(0,win_ind,handle_ind)){
      Print("Не удалось добавить индикатор на окно графика. Код ошибки: ",GetLastError());
      return(false);
   }

//Удаляю
   string name = ChartIndicatorName(0, win_ind, 0);
   bool res = ChartIndicatorDelete(0, win_ind, name); 
   if (!res) PrintFormat("Не удалось удалить индикатор %s с окна №%d. Код ошибки %d", name,win_ind,GetLastError());

Em indicador:

int OnInit(){
   IndicatorSetString(INDICATOR_SHORTNAME,"blablabla");

O indicador é adicionado, o número da subjanela e o nome curto estão correctos, mas erro ao apagar:

2019.05.08 12:01:10.068 2019.04.03 12:39:31 Falha em apagar o indicador blablabla da janela #2. Código de erro 4014

4014 - "Não é permitida a chamada da função do sistema". Por favor, informe o que significa, como remover o indicador?


 
Decromor:

Para a criação de um perito, tudo bem.


Isso não é uma resposta à minha pergunta. Para ser mais preciso, é uma tréplica. Depois coloquei o meu pensamento sob a forma de uma pergunta: Porque é que a EA precisa de um indicador no gráfico?

Se quisermos recusar o cabo indicador não utilizado, há outra função para isso. E o próprio indicador no gráfico com que finalidade?

 
Existe uma solução pronta para não reinventar a roda?
Precisamos de responder a uma simples pergunta - quantos negócios fechados (chamemos-lhe isso) têm estado na história (para um par ou período específico não é importante, o principal é o princípio). Como entendo, não é uma tarefa trivial em mql5. Não tenho sequer um nome para esta entidade))
 
Evgeny Dyuka:
Tem uma solução pronta sem reinventar a roda?
Precisamos de responder a uma simples pergunta - quantos negócios fechados (chamemos-lhe isso) estiveram na história (para um determinado par ou período não é importante, o principal é o princípio). Como entendo, não é uma tarefa trivial em mql5. Não temos sequer um nome para esta entidade))

Porque não?

bool  HistorySelect(
   datetime  from_date,     // с даты
   datetime  to_date        // по дату
   );

E depois, num loop, peneiramos o que precisamos.

Ou para uma posição específica.

bool  HistorySelectByPosition(
   long   position_id     // идентификатор позиции - POSITION_IDENTIFIER
   );
Документация по MQL5: Торговые функции / HistorySelect
Документация по MQL5: Торговые функции / HistorySelect
  • www.mql5.com
Функция HistorySelect() создает в mql5-программе список ордеров и список сделок для дальнейшего обращения к элементам списка посредством соответствующих функций. Размер списка сделок можно узнать с помощью функции HistoryDealsTotal(), размер списка ордеров в истории можно получить с HistoryOrdersTotal(). Перебор элементов списка ордеров лучше...