Sistemi Esperti: EA_OBJPROP_CHART_ID

 

EA_OBJPROP_CHART_ID:

Questo Expert Advisor è una dimostrazione di come lavorare con gli oggetti di OBJ_CHART come grafici convenzionali. E' possibile impostare colori personalizzati, allegare indicatori etc.

EA_OBJPROP_CHART_ID

Autore: MetaQuotes

 
E come si fa ad assegnare altri colori al buffer quando si aggiunge un indicatore?
 
sergeev:
Ma è tecnicamente possibile? Devo scrivere una richiesta a servicedesk (non per "spuntare la casella")?

Sono sicuro che da un punto di vista tecnico è possibile, perché di fatto è già implementato, basta aggiungere nuovi parametri al linguaggio.

 


Rosh
, mi sembra che ci siano già molte richieste relative all'ampliamento delle funzionalità di lavoro con gli indicatori.

Al momento abbiamo solo 4 funzioni per lavorare con gli indicatori in modo programmatico:

Nella richiesta a servicedesk #98320 | 2011.05.08 19:13 è stata suggerita una funzione aggiuntiva:
ChartIndicatorFileName - che restituisce il nome del file dell'indicatore

La richiesta di estendere il lavoro con gli indicatori è apparsa anche molto tempo fa (nei sogni degli utenti :):
ChartIndicatorSetDouble, ChartIndicatorSetInteger, ChartIndicatorSetString - analoghi completi delle funzioni degli indicatori personalizzati IndicatorSetDouble , IndicatorSetInteger, IndicatorSetString , ma solo il riferimento è a un indicatore specifico sul grafico.


 
sergeev:
Ma è tecnicamente possibile? Vale la pena di scrivere una richiesta a servicedesk (non per "spuntare la casella")?

La funzione ChartIndicatorAdd() agisce sull'handle dell'indicatore, cioè sulla parte di calcolo. L'handle dell'indicatore può essere utilizzato più volte e contemporaneamente e non sa nulla del grafico specifico su cui vengono visualizzati i suoi dati e del suo aspetto visivo. Questo lo sa solo l'indicatore stesso, che viene lanciato sul grafico.

In altre parole, al momento non esistono possibilità già pronte nel linguaggio MQL5 per gestire le proprietà visive di un indicatore lanciato su un grafico. Non ci sono fili da tirare.

 

Ok, mi spieghi perché la funzione ChartSaveTemplate non salva i modelli dell'oggetto "Chart"?

anche se ChartApplyTemplate per l'oggetto "Chart" funziona bene!

 
sergeev:

Ok, mi spieghi perché la funzione ChartSaveTemplate non salva i modelli dall'oggetto "Chart"?

È una domanda inaspettata, perché questa possibilità non era stata inizialmente considerata.
 

Recentemente ho posto una domanda simile sui diversi colori qui: https: MA di colore diverso. Le ho impostate sui periodi di cui avevo bisogno.

Da qui la domanda: dove si impostano in Alligator i colori delle linee (buffer visualizzati)? È possibile accedervi in qualche modo?

Così potrei scrivere il mio indicatore con la colorazione richiesta per analogia.

OBJ_CHART
OBJ_CHART
  • www.mql5.com
С помощью данного кода можно создать объект OBJ_CHART и прикрепить к нему разные индикаторы, например, четыре МА:.
 
falkov:

Da qui la domanda: dove sono impostati in Alligator i colori delle linee (buffer visualizzati)? È possibile accedervi in qualche modo?

In questo modo sarebbe possibile scrivere un proprio indicatore con la colorazione richiesta per analogia.

Quando si utilizza la funzione ChartIndicatorAdd(), l'indicatore viene sovrapposto al grafico con i colori predefiniti. Questo non può essere controllato (direttamente).

In teoria, è possibile inserire il colore della linea in una variabile esterna dell 'indicatore personalizzato e impostare così il colore desiderato.

 
Rosh:
Questa possibilità non era stata inizialmente presa in considerazione.

Terminale client MetaTrader 5 build 468

MQL5: Fissata la funzione ChartSaveTemplate.

Grazie mille! Tutto funziona.

 

Rosh, su richiesta #98320, puoi aggiungere il nome del file fisico all'oggetto handler dell'indicatore?

In modo da poter conoscere non solo il nome breve dell'indicatore, ma anche il nome completo del file?

ChartIndicatorFileName

Возвращает имя файла индикатора по номеру в списке индикаторов на указанном окна графика.

string  ChartIndicatorFileName(
   long  chart_id,      // identificatore del grafico
   int   sub_window     // numero della sottofinestra
   int   index          // indice dell'indicatore nell'elenco degli indicatori aggiunti a questa sottofinestra del grafico
   );