Mais uma vez obrigado, agora a linha é como uma linha, agradável de ver. ApenasObjectDelete(0, nome); é necessário, caso contrário uma vez desenhada a linha não é redesenhada. O mesmo em mql4, acabei de me esquecer.
Que disparate. O objecto gráfico desenhado move-se suavemente. O exemplo é dado na ajuda para cada objecto (para a linha horizontalOBJ_HLINE).
Pode também mudar qualquer propriedade para um objecto já desenhado: cor, estilo , cheiro ...
É feito manualmente, não discuto. Mas o Expert Advisor traça linhas de tendência por pontos DeMark. Com a função ObjectDelete(0, nome); quando os pontos mudam, a antiga linha de tendência é removida e uma nova linha é desenhada. Sem esta função, as primeiras linhas traçadas já não são redesenhadas. Isto não é um disparate, é um facto.
Manualmente, não discuto. O Conselheiro Especialista, por outro lado, traça linhas de tendência por pontos de DeMark. Com a função ObjectDelete(0, nome); quando os pontos mudam, a antiga linha de tendência é removida e uma nova linha é desenhada. Sem esta função, as primeiras linhas traçadas já não são redesenhadas. Isto não é um disparate, é um facto.
Já o li. Só você está indignado e eu estou a escrever a partir da prática. Outra coisa é usar ChartRedraw() em vez de ObjectDelet(), eu não discuto e vou verificar isso. Esta é a única coisa que precisa de apontar, referindo-se ao exemplo.
Li o resumo. Só vós estais indignados com as palavras e eu estou a escrever a partir da prática. Outra coisa é usar ChartRedraw() em vez de ObjectDelet(), eu não discuto e verifico. Esta é a única coisa que preciso de salientar, referindo-me ao exemplo.
As pessoas costumam pedir conselhos neste tópico e quando os recebem, ouvem-nos. No mínimo, leia a ajuda e aplique exemplos. Por favor, se não quiser ouvir os outros, não pergunte nada.
Um exemplo de como se pode alterar qualquer propriedade do objecto gráfico"Linha Horizontal" na mosca - não é necessário apagar o objecto para o fazer, só é necessário alterar a propriedade.
Código:
//+------------------------------------------------------------------+//| OBJ_HLINE change properties on the fly.mq5 |//| Copyright 2021, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2021, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//--- input parametersinputstring InpName="HLine"; // Line name//--- an array for storing colors contains 14 elementscolor colors[]=
{
clrRed,clrBlue,clrGreen,clrChocolate,clrMagenta,clrDodgerBlue,clrGoldenrod,
clrIndigo,clrLightBlue,clrAliceBlue,clrMoccasin,clrWhiteSmoke,clrCyan,clrMediumPurple
};
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- create timerEventSetTimer(1);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- destroy timerEventKillTimer();
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---
}
//+------------------------------------------------------------------+//| Timer function |//+------------------------------------------------------------------+voidOnTimer()
{
//--- the number of colorsint size=ArraySize(colors);
//--- get a random valueint number=MathRand();
//--- get an index in the col[] array as a remainder of the integer devisionint i=number%size;
//--- set line colorObjectSetInteger(ChartID(),InpName,OBJPROP_COLOR,colors[i]);
ChartRedraw();
}
//+------------------------------------------------------------------+
Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Obrigado, mas vou deixar a minha variante, ela funciona. Embora eu vá tentar em vez de ObjectDelete(0, nome);.
Decisão completamente errada. A eliminação de um objecto gráfico e a actualização de um gráfico não se substituem de forma alguma.
O meu exemplo verifica primeiro se existe um objecto, em particular, uma tendência com o nome tfyu, que é o nome no layout do teclado russo)). Então, se não existir, a tendência é desenhada. Se a tentativa de desenho não for bem sucedida, a mensagem é exibida e a função é abandonada com retorno falso.
Tudo depois disso, independentemente de a tendência já estar presente ou ter acabado de ser desenhada, são-lhe atribuídos os parâmetros especificados, tempo e preços coordenados, tipo, espessura e qualquer outra coisa que possa acrescentar. Depois disso, o gráfico é actualizado e a função volta a ser verdadeira.
Pela rapidez de execução, será menos dispendioso verificar a presença da tendência do que eliminá-la e desenhar uma nova.
Mas... a decisão final cabe-lhe a si e se gosta de coçar a orelha esquerda com o dedo mindinho direito, não tenho o direito de o impedir.
Mais uma vez obrigado, agora a linha é como uma linha, agradável de ver. ApenasObjectDelete(0, nome); é necessário, caso contrário uma vez desenhada a linha não é redesenhada. O mesmo em mql4, acabei de me esquecer.
Eu tê-lo-ia feito
Que disparate. O objecto gráfico desenhado move-se suavemente. O exemplo é dado na ajuda para cada objecto (para a linha horizontalOBJ_HLINE).
Pode também mudar qualquer propriedade para um objecto já desenhado: cor, estilo , cheiro ...É feito manualmente, não discuto. Mas o Expert Advisor traça linhas de tendência por pontos DeMark. Com a função ObjectDelete(0, nome); quando os pontos mudam, a antiga linha de tendência é removida e uma nova linha é desenhada. Sem esta função, as primeiras linhas traçadas já não são redesenhadas. Isto não é um disparate, é um facto.
Manualmente, não discuto. O Conselheiro Especialista, por outro lado, traça linhas de tendência por pontos de DeMark. Com a função ObjectDelete(0, nome); quando os pontos mudam, a antiga linha de tendência é removida e uma nova linha é desenhada. Sem esta função, as primeiras linhas traçadas já não são redesenhadas. Isto não é um disparate, é um facto.
Porque não lê a ajuda? E dê o exemplo.
Eu faria isso.
Obrigado, mas vou deixar a minha variante, ela funciona. Embora vá tentar em vez de ObjectDelete(0, nome);.
ChartRedraw();Leia a ajuda, pelo amor de Deus! E dê o exemplo.
Já o li. Só você está indignado e eu estou a escrever a partir da prática. Outra coisa é usar ChartRedraw() em vez de ObjectDelet(), eu não discuto e vou verificar isso. Esta é a única coisa que precisa de apontar, referindo-se ao exemplo.
Li o resumo. Só vós estais indignados com as palavras e eu estou a escrever a partir da prática. Outra coisa é usar ChartRedraw() em vez de ObjectDelet(), eu não discuto e verifico. Esta é a única coisa que preciso de salientar, referindo-me ao exemplo.
As pessoas costumam pedir conselhos neste tópico e quando os recebem, ouvem-nos. No mínimo, leia a ajuda e aplique exemplos. Por favor, se não quiser ouvir os outros, não pergunte nada.
Um exemplo de como se pode alterar qualquer propriedade do objecto gráfico"Linha Horizontal" na mosca - não é necessário apagar o objecto para o fazer, só é necessário alterar a propriedade.
Código:
Obrigado, mas vou deixar a minha variante, ela funciona. Embora eu vá tentar em vez de ObjectDelete(0, nome);.
Decisão completamente errada. A eliminação de um objecto gráfico e a actualização de um gráfico não se substituem de forma alguma.
O meu exemplo verifica primeiro se existe um objecto, em particular, uma tendência com o nome tfyu, que é o nome no layout do teclado russo)). Então, se não existir, a tendência é desenhada. Se a tentativa de desenho não for bem sucedida, a mensagem é exibida e a função é abandonada com retorno falso.
Tudo depois disso, independentemente de a tendência já estar presente ou ter acabado de ser desenhada, são-lhe atribuídos os parâmetros especificados, tempo e preços coordenados, tipo, espessura e qualquer outra coisa que possa acrescentar. Depois disso, o gráfico é actualizado e a função volta a ser verdadeira.
Pela rapidez de execução, será menos dispendioso verificar a presença da tendência do que eliminá-la e desenhar uma nova.
Mas... a decisão final cabe-lhe a si e se gosta de coçar a orelha esquerda com o dedo mindinho direito, não tenho o direito de o impedir.
E de volta a traçar a linha de tendência. Se precisar de código.
Código muito mau.
Eu faria isto.
Eu teria feito isto: