Grazie ancora, ora la linea è come una linea, bello da vedere. SoloObjectDelete(0, name);; è necessario, altrimenti una volta disegnata la linea non viene ridisegnata. Lo stesso in mql4, l'ho solo dimenticato.
Che sciocchezza. L'oggetto grafico disegnato si muove in modo fluido. L'esempio è dato nell'aiuto per ogni oggetto (per la linea orizzontaleOBJ_HLINE).
Potete anche cambiare qualsiasi proprietà a un oggetto già disegnato: colore, stile, odore...
Si fa manualmente, non discuto. Ma l'Expert Advisor disegna linee di tendenza per punti DeMark. Con la funzione ObjectDelete(0, name);, quando i punti cambiano, la vecchia linea di tendenza viene rimossa e ne viene disegnata una nuova. Senza questa funzione, le prime linee disegnate non vengono più ridisegnate. Questa non è una sciocchezza, è un fatto.
Manualmente, non discuto. L'Expert Advisor, invece, disegna linee di tendenza per punti DeMark. Con la funzione ObjectDelete(0, name);, quando i punti cambiano, la vecchia linea di tendenza viene rimossa e ne viene disegnata una nuova. Senza questa funzione, le prime linee disegnate non vengono più ridisegnate. Questa non è una sciocchezza, è un fatto.
Leggete la guida, per l'amor di Dio! Ed esegui l'esempio.
Ho letto il riferimento. Solo che tu sei indignato e io scrivo dalla pratica. Un'altra cosa è usare ChartRedraw() invece di ObjectDelet(), non discuto e controllerò. Questa è l'unica cosa che dovete sottolineare facendo riferimento all'esempio.
Ho letto il riassunto. Solo tu ti indigni con le parole e io scrivo dalla pratica. Un'altra cosa è usare ChartRedraw() invece di ObjectDelet(), non discuto e controllo. Questa è l'unica cosa che dovete sottolineare facendo riferimento all'esempio.
La gente di solito chiede consigli in questo thread e quando li riceve, li ascolta. Come minimo leggete l'aiuto e applicate gli esempi. Per favore, se non vuoi ascoltare gli altri, non chiedere proprio nulla.
Un esempio di come puoi cambiare al volo qualsiasi proprietà dell'oggetto grafico"Linea orizzontale" - non hai bisogno di cancellare l'oggetto per farlo, devi solo cambiare la proprietà.
Codice:
//+------------------------------------------------------------------+//| 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
Grazie, ma lascio la mia variante, funziona. Anche se lo proverò al posto di ObjectDelete(0, nome);.
Decisione completamente sbagliata. La cancellazione di un oggetto grafico e l'aggiornamento di un grafico non si sostituiscono in alcun modo.
Il mio esempio controlla prima se c'è un oggetto, in particolare una tendenza con il nome tfyu, che è nome nel layout della tastiera russa)). Poi, se non esiste, si disegna la tendenza. Se il tentativo di disegno non ha successo, il messaggio viene visualizzato e la funzione esce con return false.
Tutto ciò che segue, indipendentemente dal fatto che il trend sia già presente o sia stato appena disegnato, gli vengono assegnati i parametri specificati, i prezzi di tempo e coordinate, il tipo, lo spessore e qualsiasi altra cosa si voglia aggiungere. Dopo di che il grafico viene aggiornato e la funzione restituisce true.
Per la velocità di esecuzione, sarà meno costoso controllare la presenza della tendenza che cancellarla e disegnarne una nuova.
Ma... la decisione finale spetta a te e se ti piace grattarti l'orecchio sinistro con il mignolo destro, non ho il diritto di fermarti.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Grazie ancora, ora la linea è come una linea, bello da vedere. SoloObjectDelete(0, name);; è necessario, altrimenti una volta disegnata la linea non viene ridisegnata. Lo stesso in mql4, l'ho solo dimenticato.
L'avrei fatto
Che sciocchezza. L'oggetto grafico disegnato si muove in modo fluido. L'esempio è dato nell'aiuto per ogni oggetto (per la linea orizzontaleOBJ_HLINE).
Potete anche cambiare qualsiasi proprietà a un oggetto già disegnato: colore, stile, odore...Si fa manualmente, non discuto. Ma l'Expert Advisor disegna linee di tendenza per punti DeMark. Con la funzione ObjectDelete(0, name);, quando i punti cambiano, la vecchia linea di tendenza viene rimossa e ne viene disegnata una nuova. Senza questa funzione, le prime linee disegnate non vengono più ridisegnate. Questa non è una sciocchezza, è un fatto.
Manualmente, non discuto. L'Expert Advisor, invece, disegna linee di tendenza per punti DeMark. Con la funzione ObjectDelete(0, name);, quando i punti cambiano, la vecchia linea di tendenza viene rimossa e ne viene disegnata una nuova. Senza questa funzione, le prime linee disegnate non vengono più ridisegnate. Questa non è una sciocchezza, è un fatto.
Perché non leggi l'aiuto? Ed esegui l'esempio.
Io lo farei.
Grazie, ma lascio la mia variante, funziona. Anche se lo proverò al posto di ObjectDelete(0, nome);.
ChartRedraw();Leggete la guida, per l'amor di Dio! Ed esegui l'esempio.
Ho letto il riferimento. Solo che tu sei indignato e io scrivo dalla pratica. Un'altra cosa è usare ChartRedraw() invece di ObjectDelet(), non discuto e controllerò. Questa è l'unica cosa che dovete sottolineare facendo riferimento all'esempio.
Ho letto il riassunto. Solo tu ti indigni con le parole e io scrivo dalla pratica. Un'altra cosa è usare ChartRedraw() invece di ObjectDelet(), non discuto e controllo. Questa è l'unica cosa che dovete sottolineare facendo riferimento all'esempio.
La gente di solito chiede consigli in questo thread e quando li riceve, li ascolta. Come minimo leggete l'aiuto e applicate gli esempi. Per favore, se non vuoi ascoltare gli altri, non chiedere proprio nulla.
Un esempio di come puoi cambiare al volo qualsiasi proprietà dell'oggetto grafico"Linea orizzontale" - non hai bisogno di cancellare l'oggetto per farlo, devi solo cambiare la proprietà.
Codice:
Grazie, ma lascio la mia variante, funziona. Anche se lo proverò al posto di ObjectDelete(0, nome);.
Decisione completamente sbagliata. La cancellazione di un oggetto grafico e l'aggiornamento di un grafico non si sostituiscono in alcun modo.
Il mio esempio controlla prima se c'è un oggetto, in particolare una tendenza con il nome tfyu, che è nome nel layout della tastiera russa)). Poi, se non esiste, si disegna la tendenza. Se il tentativo di disegno non ha successo, il messaggio viene visualizzato e la funzione esce con return false.
Tutto ciò che segue, indipendentemente dal fatto che il trend sia già presente o sia stato appena disegnato, gli vengono assegnati i parametri specificati, i prezzi di tempo e coordinate, il tipo, lo spessore e qualsiasi altra cosa si voglia aggiungere. Dopo di che il grafico viene aggiornato e la funzione restituisce true.
Per la velocità di esecuzione, sarà meno costoso controllare la presenza della tendenza che cancellarla e disegnarne una nuova.
Ma... la decisione finale spetta a te e se ti piace grattarti l'orecchio sinistro con il mignolo destro, non ho il diritto di fermarti.
E torniamo a disegnare la linea di tendenza. Se avete bisogno di un codice.
Codice molto cattivo.
Io farei così.
Io avrei fatto così: