conteggio senza usare un ciclo For

Conteggio senza usare un ciclo For con Tradingview

In questo articolo descriviamo come implementare un conteggio senza usare un ciclo For con Tradingview per il trading algoritmico.

Spesso passiamo ore a scrivere una funzione elaborata o un blocco di codice solo per scoprire in seguito che esiste già una funzione integrata o un’implementazione molto più semplice. Per questo motivo leggere la documentazione ufficiale o rivedere alcuni degli eccellenti script open source della comunity può farci risparmiare un sacco di tempo ed energia. Sfortunatamente, ad alcuni piace implementare subito, testare ed esplorare senza dedicare abbastanza tempo alla lettura e all’analisi. In questo articolo descriviamo uno di questi casi. Una soluzione semplice per una comune attività che potrebbe non essere ovvia.

Inutile dire che il conteggio viene utilizzato in molti scenari diversi. È una delle abilità matematiche fondamentali che apprendiamo da bambini. Costituisce la base necessaria per creare statistiche interessanti che possiamo usare per prendere decisioni di trading.

Il problema

Non è vero problema, ma modi computazionalmente efficienti o meno per raggiungere lo stesso obiettivo. Ci sono molti modi per risolvere una situazione, tuttavia speriamo che il codice in questo articolo possa aiutare a trovare la  soluzione migliore.

Quando proviamo ad implementare un conteggio  con pine script, per prima cosa possiamo usare un ciclo for. Questo perchè è l’approccio comune che si usa per effettuare questa attività in altri linguaggi di programmazione.

				
					// Ciclo sui dati storici
for i = 0 to lbp -1
    if open[i] < close[i]
        up := up + 1
    if open[i] > close[i]
        dn := dn + 1
    if open[i] == close[i]
        nc := nc + 1
				
			

Conteggio senza usare un ciclo For

Pinescript è un linguaggio di programmazione basato sulle serie temporali. Ad ogni nuova barra di dati, eseguiamo un ciclo del nostro script e costruiamo nuove righe a partire dai dati ricevuti. Inoltre, possiamo accedere a qualsiasi valore storico tramite l’indicizzazione. Possiamo  trarre vantaggio dall’indicizzazione delle serie effettuata da Tradingview e usare la funzione sum() integrata in pine script per ottenere gli stessi risultati di un ciclo for. Tutto quello che dobbiamo fare è usare un operatore condizionale ternario per assegnare il valore di 1 o 0 ad ogni una nuova riga e quindi sommarlo per il periodo di tempo desiderato

Un semplice esempio è il seguente:

				
					//@version=3
study("Green Candle Counter")

green_candles = close > open ? 1 : 0

green_candles_sum = sum(green_candles, 100)

plot(green_candles_sum)
				
			

Questo codice conteggi quante volte abbiamo avuto una candela verde nelle ultime 100 candele. Otteniamo un grafico simile al seguente:

Tradingview-Conteggio-Candele-Verdi

Questa stessa tecnica può essere usata per conteggiare qualsiasi valore in qualsiasi variabile e non richiede la complessità di un ciclo for.

Codice completo

In questo articolo abbiamo descritto come implementare un conteggio senza usare un ciclo For con Tradingview per il trading algoritmico. Per il codice completo riportato in questo articolo, si può consultare il seguente repository di github:
https://github.com/datatrading-info/TradingView

Scroll to Top