Indicatore di forza di una valuta

Indicatore di forza di una valuta con Tradingview

In questo articolo descriviamo come creare un indicatore di forza di una valuta con Tradingview ed applicarlo ad una strategia di trading algoritmico. Quando effettuiamo un’operazione nel mercato Forex, stiamo applicando la nostra analisi contemporaneamente su due economie. In altre parole, stiamo scommettendo che un’economia è, o sarà, più forte dell’altra. 

Prima di effettuare un’operazione sarebbe utile validare la nostra analisi osservando la forza complessiva di entrambe le valute nella coppia che stiamo per negoziare. Dopo tutto, se una valuta nella coppia è debole rispetto a tutte le principali valute, è probabile che sia debole nella coppia che si vuole negoziare. Con questo approccio, un indicatore della forza della valuta potrebbe essere uno strumento utile per la nostra analisi. Per il dollaro USA potrebbe non essere necessario dato che possiamo usare l’indice USDOLLAR per misurare la forza dell’USD, ma come fare per le altre valute?

Indicatore di forza di una valuta con Tradingview

L’indicatore della forza valutaria prende in considerazione fino a 4 coppie di valute e calcola la variazione percentuale media rispetto al timeframe giornaliero. Quindi traccerà il grafico di tutte le coppie insieme a una linea aggregata che indica la forza complessiva. È disponibile un’opzione per contrassegnare una valuta come controvaluta in modo che la variazione percentuale sia invertita. 

Si consideri il seguente esempio. Si vuole conoscere la forza della sterlina britannica. Nella maggior parte delle coppie la sterlina è la valuta di base tranne che contro l’euro. Ciò significa che quando l’EURGBP sale, la sterlina si sta indebolendo e viceversa. Pertanto, per ottenere una lettura accurata, bisogna di contrassegnare la sterlina come controvaluta e invertire il risultato della variazione percentuale.

Codice Pinescript

				
					//@version=3
study(title="Currency Strength", shorttitle="CUR-STR", precision=4, scale=scale.left)

sym1 = input(title='FX Pair 1', type=symbol, defval='OANDA:GBPUSD')
sym1_counter = input(title='Counter Currency?', type=bool, defval=false)
sym2 = input(title='FX Pair 2', type=symbol, defval='OANDA:EURGBP')
sym2_counter = input(title='Counter Currency?', type=bool, defval=true)
sym3 = input(title='FX Pair 3', type=symbol, defval='OANDA:GBPJPY')
sym3_counter = input(title='Counter Currency?', type=bool, defval=false)
sym4 = input(title='FX Pair 4', type=symbol, defval='OANDA:GBPCHF')
sym4_counter = input(title='Counter Currency?', type=bool, defval=false)


inst1_daily = security(sym1, "D", close[1], lookahead=barmerge.lookahead_on)
inst2_daily = security(sym2, "D", close[1], lookahead=barmerge.lookahead_on)
inst3_daily = security(sym3, "D", close[1], lookahead=barmerge.lookahead_on)
inst4_daily = security(sym4, "D", close[1], lookahead=barmerge.lookahead_on)


inst1_current = security(sym1, period, close)
inst2_current = security(sym2, period, close)
inst3_current = security(sym3, period, close)
inst4_current = security(sym4, period, close)

inst1_change = ((inst1_current - inst1_daily) / inst1_daily) * 100
inst2_change = ((inst2_current - inst2_daily) / inst2_daily) * 100
inst3_change = ((inst3_current - inst3_daily) / inst3_daily) * 100
inst4_change = ((inst4_current - inst4_daily) / inst4_daily) * 100


inst1_change := sym1_counter == true ? inst1_change * -1 : inst1_change
inst2_change := sym2_counter == true ? inst2_change * -1 : inst2_change
inst3_change := sym3_counter == true ? inst3_change * -1 : inst3_change
inst4_change := sym4_counter == true ? inst4_change * -1 : inst4_change

overall_strength = (inst1_change + inst2_change + inst3_change + inst4_change) / 4

plot(inst1_change,title='Sym1', color=lime, style=area, transp=80)
plot(inst2_change,title='Sym2', color=blue, style=area, transp=90)
plot(inst3_change,title='Sym3', color=red, style=area, transp=90)
plot(inst4_change,title='Sym4', color=purple, style=area, transp=90)

plot(overall_strength,title='Overall Strength', color=black, linewidth=3, style=line)

// Test Plots
// ------------------
// plot(inst1_daily)
// plot(inst2_daily)
// plot(inst3_daily)
// plot(inst4_daily)

// plot(inst1_current)
// plot(inst2_current)
// plot(inst3_current)
// plot(inst4_current)
				
			

Breve commento

Se ti stai chiedendo perché ho usato il lookahead e vuoi saperne di più, ho scritto un post che descrive il lookhead in modo più dettagliato: Tradingview: Comprensione di lookahead, dati storici e in tempo reale

Inoltre, l’utilizzo della funzione security() per ottenere dati di un diverso timeframe o un diverso strumento è descritto in modo approfondito in questo articolo: Tradingview: creare un indicatore

Il resto del codice calcola solo la variazione percentuale e la forza complessiva della valuta. Se sei interessato alla matematica alla base del calcolo di una variazione percentuale, posso indicarti questo tutorial.

Prima di andare avanti, penso che valga la pena sottolineare le motivazioni dell’uso dei parametri “style” e “transp” per tutti i grafici tranne che per “forza complessiva”. In questo modo si evita che l’indicatore sia troppo “affollato”. Inoltre, secondo me, la linea della “forza complessiva” è la trama più importante ed ero preoccupato che potesse essere mascherata o di difficile da leggere.

Aggiunta di un’altra valuta

Se si ritiene che 4 coppie di valute non siano sufficienti, si può facilmente aggiungerne altre. Come si può vedere dal codice, abbiamo 6 passaggi fondamentali:

  1. Selezione delle coppie di valute.
  2. Ricavare la chiusura giornaliera per quelle coppie
  3. Ricavare l’ultimo prezzo di chiusura nel timeframe considerato
  4. Calcolare la differenza tra il prezzo di chiusura corrente e la chiusura daily
  5. Mediare le differenze tra loro
  6. Tracciare i grafici dei risultati.

Pertanto per aggiungere un’altra coppia di valute all’indicatore si prevedono i seguenti passi:

  • Innanzitutto, aggiungere i nuovi input per la coppia da considerare. Assicurarsi di creare nuovi nomi di variabili e valori predefiniti. Ad esempio sym5 come segue 
				
					sym5 = input(title='FX Pair 5', type=symbol, defval='OANDA:GBPAUD')
sym5_counter = input(title='Counter Currency?', type=bool, defval=false)
				
			
  • Ricavare i dati per il timeframe giornaliero e per il timeframe corrente per la coppia. Anche in questo caso bisogna fare attenzione ad aggiornare i nomi delle variabili e i parametri security()
				
					inst5_daily = security(sym5, "D", close[1], lookahead=barmerge.lookahead_on)
inst5_current = security(sym5, period, close)
				
			
  • Calcolare la variazione e invertire il ​​valore se si sta utilizzando una controvaluta. Se si ottiene un errore dove si segnala che inst5_change è già dichiarato, bisogna osservare l’operatore “:= “. Per aggiornare una variabile già dichiarata, è necessario aggiungere i due punti “:” davanti all’operatore di uguale.
				
					inst5_change = ((inst5_current - inst5_daily) / inst5_daily) * 100
 
inst5_change := if sym5_counter == true
    inst5_change * -1
				
			
  • Infine si aggiunge la nuova coppia al calcolo della forza complessiva e si traccia il grafico.
				
					overall_strength = (inst1_change + inst2_change + inst3_change + inst4_change + inst5_change) / 5

plot(inst5_change,title='Sym5', color=yellow, style=area, transp=80)
				
			

Risultati

Di seguito si riporta il risultato dello script descritto in precedenza

trading-algoritmico-tradingview-Default-Currency-Strength-Indicator

Esempi di utilizzo e suggerimenti

Impostazione di 2 indicatori per confrontare la forza

L’esempio mostra la coppia GBPJPY con un indicatore della forza della valuta GBP e un indicatore della forza della valuta JPY. Entrambe le valute si stanno rafforzando. Tuttavia, lo JPY sta mostrando più forza e di conseguenza GBPJPY è ribassista.
trading-algoritmico-tradingview-JPY-forza-GBP-forza

Identificare le tendenze opposte

Il seguente esempio mostra come tendenze opposte possono accelerare i movimenti dei prezzi. In questo caso, il GBP inizia a diventare più forte, mentre allo stesso tempo il USD inizia a indebolirsi. Ciò provoca un aumento costante dei prezzi seguito da un balzo finale

trading-algoritmico-tradingview-Opposing-Trends

Impostazione per JPY e verifica dell’output

Infine, ecco uno screenshot di come impostare l’indicatore per monitorare la forza dello yen giapponese. In tutti i casi lo JPY è la controvaluta quindi per impostarlo correttamente è necessario aprire la pagina delle impostazioni dell’indicatore e compilare con le coppie JPY da monitorare, come segue. Per salvare le impostazioni bisogna premere sulla freccia in basso accanto al pulsante dei valori predefiniti e selezionare ” Salva come predefinito “.

trading-algoritmico-tradingview-JPY-Setup

Codice completo

In questo articolo abbiamo descritto come creare un indicatore di forza di una valuta con Tradingview. 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