Se sei un trader alle prime armi con la programmazione di indicatori, oppure se vuoi semplicemente dare un'occhiata ai valori forniti dalla funzione OnCalculate, sei nel posto giusto! Questo indicatore è pensato proprio per te e mostra diversi valori chiave:
- Valore più recente: l'ultimo valore fornito dall'ultima chiamata a OnCalculate.
- Valore precedente: il valore dall'ultima chiamata a OnCalculate.
- Primo valore: il valore dalla prima esecuzione di OnCalculate.
- Valori delle serie: ogni valore delle serie dell'array, sia in modalità as_series che not_series, con la possibilità di cambiarlo con un semplice clic.
La versione 1.10 ha introdotto la possibilità di modificare dinamicamente se gli array sono impostati come serie o meno; basta cliccare sul testo per cambiarlo. Inoltre, i valori delle Window Bars e del First visible Bar sono impostati dinamicamente con le modifiche del grafico. La visualizzazione ON/OFF indica cosa accadrà con le impostazioni nella prossima esecuzione di OnCalculate, a confronto con ciò che è successo nell'ultima esecuzione.
Nella versione 1.20, è stata aggiunta la possibilità di scegliere se l'indicatore deve impostare gli array come as_series o not_series, semplicemente cliccando sul testo. L'indicatore ora visualizza anche entrambe le estremità dell'array temporale e i bordi del buffer iMA. Questi aggiornamenti rendono evidente la differenza tra array as_series e not_series. Inoltre, la visualizzazione viene ora aggiornata quando necessario utilizzando il gestore OnTimeEvent, invece di aggiornarla a ogni quotazione. Questo riduce notevolmente il tempo di esecuzione di OnCalculate, da circa 300 ms a meno di 1 ms. Il codice per controllare il tempo di esecuzione è rimasto in OnCalculate e basta decommentarlo per visualizzare i millisecondi di esecuzione.
Questa immagine mostra i valori visualizzati dall'utilità OnCalculate_Values. Nota i tre valori separati da '/', che rappresentano il Valore più recente, il Valore precedente e il Primo valore. I valori di OnCalculate sono impostati su 'as_series' o 'not_series' a ogni evento OnCalculate; quando Set Arrays è 'ON', altrimenti rimangono al valore predefinito del terminale. Nota anche il valore tra parentesi dopo i nomi degli array, che indica da quale barra proviene il valore: il valore '0' o il 'valore all'indice massimo'.

Il codice implementa una singola linea di indicatore, un grafico del prezzo di apertura di ciascuna barra fornito da iMA; lo scopo è fornire un buffer per utilizzare la funzione "BarsCalculated" e mostrare la visualizzazione di un indicatore quando è impostato su 'as_series' o 'not_series'. Cliccando su iMA_Val[0], l'array iMA viene impostato su as_series o not_series solo una volta, al momento del clic; l'array dell'indicatore iMA non viene impostato a ogni chiamata di OnCalculate.
Una collezione di array contiene le proprietà di ciascun oggetto di visualizzazione (OBJ_LABEL) nel display:

La funzione "ArrayGetAsSeries" viene utilizzata per determinare se gli array nei parametri di OnCalculate sono array di serie temporali o meno, e la visualizzazione mostra il risultato (As_Series o Not_Series) - la visualizzazione mostra che questi array non sono serie inizialmente o da una chiamata all'altra dopo essere stati impostati come serie (la funzione SetAsSeries li imposta come serie solo quando è attivata, permettendo loro di tornare al valore predefinito quando è disattivata; non imposta 'as series' su false).
Infine, l'array di tre membri, ary_OnCalcVals, contiene 1) Valore più recente, 2) Valore precedente e 3) Primo valore trovati nei parametri di OnCalculate. Le funzioni CopyNewToOld e MoveNewTo prendono il valore corrente per ciascun parametro di visualizzazione e lo collocano nella memoria storica fornita da ary_OnCalcVals.
Commento 0