No, un INDICATORE non può sapere cosa succede in una strategia. Una STRATEGIA, non solo può, ma DEVE sapere cosa fa un indicatore, altrimenti un indicatore non serve a niente.
Se il passaggio dei dati non potesse avvenire non avrebbe senso avere inseriti l’istruzione CALL.
Dalla strategia puoi indicare all’indicatore quello che vuoi (oppure niente, dipende da cosa ti serve e come costruisci un indicatore), l’indicatore restituirà dei dati.
Quindi gli indicatori possono sapere quello che succede in una strategia, ma solo se una strategia GLI comunica i dati tramite CALL, altrimenti è impossibile.
Tornando alla tua domada iniziale “Ho bisogno di fare un test da dentro un indicatore per capire se ho posizioni aperte“, puoi farlo solo se l’indicatore viene richiamato tramite CALL e se la strategia GLI passa come parametro i dati che t’interessano.
Ripeto, un indicatore, autonomamente, quando lo metti sul grafico, non ha assolutamente possibilità di sapere se vi sono posizioni aperte. Per saperlo deve essere richiamato dalla strategia ed è questa che può comunicargli dei dati. Però può servirti per fare elaborazioni che NON potranno essere visualizzate sul grafico, in quanto gli indicatori utilizzati all’interno di una strategia NON hanno accesso al grafico (mentre ce l’hanno se sono aggiunti sul grafico autonomamente).
Quindi COUNTOFLONGSHARES e tutte le altre istruzioni pertinenti di ProOrder non sono riconosciute da ProBuilder.
Se vuoi che l’indicatore sappia quante posizioni Long sono aperte, deve essere la strategia che gliele comunica, tramite CALL:
x = CALL MioIndicatore[COUNTOFLONGSHARES] //il nome dell'indicatore va messo tra virgolette solo se all'interno del nome ci sono spazi
però l’indicatore potrà fare solo elaborazioni interne con quel dato, non potrà stampare niente sul grafico. Potrà restituire il risultato di una propria elaborazione (o più di una, utilizzando più variabili), in questo caso verrà messa nella variabile X, che potrà essere visualizzata solo all’interno del backtest, non in autotrading.
Spero di essere stato esauriente.