Salve a tutti!

Stavo provando a trasporre in Easyscript una macro che avevo fatto con excel per il tracciamento delle evolventi paraboliche di Cantore.
Le evolventi paraboliche, così come ampiamente illustrato da Corrado Cantore, possono rappresentare graficamente un andamento più aderente alla realtà rispetto alle trendline classiche.

Anni fa avevo fatto un foglio excel con una macro che mi tracciava sul grafico proprio queste curve.
Lo sviluppo della macro parte dall'individuazione dei 3 punti dai quali far passare la parabola, per i quali necessitano le coordinate x e y.
La coordinata X è rappresentata dal numero della barra sul grafico, la coordinata Y dal valore del minimo per la prima parabola e dal valore del massimo per la seconda parabola.

Non essendo possibile in excel catturare le coordinate del puntatore su un grafico (se non con parecchie linee di codice), nè con Easyscript, dobbiamo fare il tutto un po' artigianalmente....
Con il puntatore ci si sposta sul grafico fino ad individuare la barra dalla quale fare passare la parabola e ci si segna il numero della barra corrispondete.
Questo per i 3 punti della prima parabola e per gli ulteriori 3 punti della seconda parabola.
Il programma, a questo punto, conteggia quante barre sono presenti sul grafico e da questo numero sottrae il numero rilevato con il puntatore sul grafico al fine di individuare il numero di elemento corrispondente nei vettori LOW e HIGH (ricordiamo infatti che nei vettori la numerazione è al contrario!!!!).
Una volta impostati i riferimenti X, va a leggere i corrispondenti valori LOW o HIGH per determinare le coordinate Y di ciascun punto.

Questo il primo pezzo di codice:

# evolventi paraboliche

#x1,x2,x3 sono le coordinate x dei 3 punti considerati della parabolica 1
#xx1,xx2,xx3 sono le coordinate x dei 3 punti considerati della parabolica 2
#praticamente mi sposto con il puntatore sul grafico e leggo il numero della barra da cui voglio fare
#passare la parabolica 

INPUTS: @X1(1),@X2(1),@X3(1),@XX1(1),@XX2(1),@XX3(1)

#conta le barre presenti sul grafico

SET conta = BARLOOP(1,1,ADD,1,NAN,NAN)
set contacorretto = conta + 1

#imposta il valore corretto della x della barra per considerare il fatto che l'indicizzazione del vettore è al contrario
set numbar1 = contacorretto - @X1
set numbar2 = contacorretto - @X2
set numbar3 = contacorretto - @X3
set numbar4 = contacorretto - @XX1
set numbar5 = contacorretto - @XX2
set numbar6 = contacorretto - @XX3

#imposta la coordinata y della barra considerata pari al valore di chiusura
set Y1 = REF(LOW, numbar1)
set Y2 = REF(LOW, numbar2)
set Y3 = REF(LOW, numbar3)
set YY1 = REF(LOW, numbar4)
set YY2 = REF(LOW, numbar5)
set YY3 = REF(LOW, numbar6)

#svolgimento dei determinanti della matrice per la soluzione del sistema di 3 equazioni

Qui nascono i primi problemi:

1) non ho una funzione nativa per il conteggio delle barre sul grafico! Su suggerimento di Smash e Maxmax68 ho provato ad utilizzare le funzioni BARLOOP o LASTIF ma il dato che ottengo non è corretto in quanto da prove effettuate su un timeframe day mi conteggia una barra in meno, nel timeframe a 5 minuti me lo conteggia corretto....

2)così come scritto il codice sopra riportato, viene generato un errore al momento della verifica di correttezza della sintassi del tipo: Error: REF() function reference periods outside of allowed range

Suggerimenti per andare avanti con questo progettino???

Questo è quello che avevo fatto con excel:

Clicca sull'immagine per ingrandirla

Nome: evolventiexcel.JPG
Visite: 22
Dimensione: 187.7 KB
ID: 12656

Grazie a tutti!!!

Beppe