Buongiorno,
Partendo dal concetto di forza Relativa come screener ,vorrei aggiungere un ulterire filtro quale il volume, ho cosi’ preso l’ indicatore Arm Index /Trin come base e trasformarlo screener .(SUSATE SONO PROGRAMMATORE NOVELLO)
- il codice Arm Index/Trin e corretto?
- La sua trasformazione in Screener?
Grazie Buona Giornata
//Arm Index Trin
// inputs
input length = 14
input overbought = 2.0
input oversold = 0.5
// Calcolo ArmIndex/Trin
tr = volume / ((high + low + close) / 3)
advancing = 0.0
declining = 0.0
advancing_vol = 0.0
declining_vol = 0.0
for i = 1 to length
if close[i] > close[i-1] then
advancing = advancing + 1
advancing_vol = advancing_vol + volume[i]
else
declining = declining + 1
declining_vol = declining_vol + volume[i]
endif
endfor
a = advancing_vol / advancing
d = declining_vol / declining
arms = a / d
// Condizioni per screening
overbought_cond = arms >= overbought
oversold_cond = arms <= oversold
// Stampa risultati screener
if overbought_cond then
drawicon(“Overbought”, “Bullish”, green)
endif
if oversold_cond then
drawicon(“Oversold”, “Bearish”, red)
endif
Non è un codice scritto per ProRealTime, dove l’hai trovato? Hai qualche riferimento o link?
E’ un indicatore che dovrebbe verificare più titoli, ma siccome ProRealTime non ha questa possibilità, si possono comunque confrontare le diverse candele.
Ad ogni modo ho codificato questo, sulla base di quanto ho trovato su internet.
Indicatore:
// Arms Index (TRIN)
//
// also named Short-Term Trading Index (TRIN)
//
// https://corporatefinanceinstitute.com/resources/equities/arms-index-trin/
//
Periods = 20
BullBAR = close > close[1]
BearBAR = close < close[1]
AdvBAR = 1
AdvVOL = 1
DecBAR = 1
DecVOL = 1
myTrin = 0
IF BarIndex >= Periods THEN
FOR i = 0 TO Periods
IF BullBAR[i] THEN
AdvBAR = AdvBAR + 1
AdvVOL = AdvVOL + volume[i]
ELSIF BearBAR[i] THEN
DecBAR = DecBAR + 1
DecVOL = DecVOL + volume[i]
ENDIF
NEXT
TotalBAR = AdvBAR + DecBAR
TotalVOL = AdvVOL + DecVOL
IndexBAR = AdvBAR / DecBAR
IndexVOL = AdvVOL / DecVOL
myTrin = IndexBAR / IndexVOL
ENDIF
RETURN myTrin AS "Trin", 1 AS "Neutral"
Screener:
// Arms Index (TRIN)
//
// also named Short-Term Trading Index (TRIN)
//
// https://corporatefinanceinstitute.com/resources/equities/arms-index-trin/
//
Periods = 20
BullBAR = close > close[1]
BearBAR = close < close[1]
AdvBAR = 1
AdvVOL = 1
DecBAR = 1
DecVOL = 1
myTrin = 0
IF BarIndex >= Periods THEN
FOR i = 0 TO Periods
IF BullBAR[i] THEN
AdvBAR = AdvBAR + 1
AdvVOL = AdvVOL + volume[i]
ELSIF BearBAR[i] THEN
DecBAR = DecBAR + 1
DecVOL = DecVOL + volume[i]
ENDIF
NEXT
IndexBAR = AdvBAR / DecBAR
IndexVOL = AdvVOL / DecVOL
myTrin = IndexBAR / IndexVOL
ENDIF
Signal = 0
IF myTrin <= 0.5 THEN
Signal = 1
ELSIF myTrin >= 1.5 THEN
Signal = 2
ENDIF
SCREENER[Signal](Signal AS "1=↑,2=↓")
Ovviamente ho messo dei periodi e delle soglie casuali, sceglierai tu i valori che ti servono.
Buongiorno Robertogozzi
Grazie inanzitutto per la disponibilita’ ed i codici.
I “non codici” in realta’ sono una mia bozza che mi faccio prima di iniziare a codificare, ( non sono un programmatore , non ho un metodo) una bozza che poi vado a esaminare riga per riga. Non ho molto tempo per studiare il linguaggio e questi codici sono abbastanza difficili per me, cosi ho pubblicato la bozza con l’intenzione di far capire la mia idea e ottenere correzioni.
Ho dei piccoli rudimenti di PowerLanguage e inoltre Multicharts e strutturata in modo differente da ProRealTime.
grazie
Buongiorno Roberto,
Ho modificato la parte finale dello screneer che mi hai fornito al fine di ottenere una classifica ascendente, in base al valore numerico del Arm/Trin, dei titoli presenti nelle mie liste personalizzate.
Compe puoi vedere in Figura 1 viene realizzata una classifica.
Aggiungendo al codice (myTrin), Figura 2, in modo da visualizzare valore numeico dell Arm/Trin, l ordine dei titoli cambia, pur non avendo cambiato il codice per il calcolo.
1) Cosa e’ cambiato tra i due codici da poter cambiare l’ordine dei titoli?
2) Quale dei due e veritiero?
3) Come posso modificare il codice per ottenere l elenco dei Titoli ordinati dal valore dal piu alto a scendere e inoltre visualizzare il valore stesso ?
Grazie e Buona Giornata
Gianluca