Ciao
mi puoi inviare il codice modificato perché non lo trovo tra i vari messaggi
grazie
Massimo , veramente non l’ho modificato il codice. In un topic avevo suggerito di togliere la punteggiatura e provare.
E’ scritto in un linguaggio PASCAL-like, mentre PRT usa un linguaggio BASIC-like. Oltre alla punteggiatura andrebbero tolte/sostituite altre cose. Io non lo conosco, serve qualcuno che conosca entrambi i linguaggi!
Anche perché si potrebbe, per assurdo, riuscire ad evitare gli errori di sintassi ma inevitabilmente aggiungendo errori logici, il che è molto più grave!
Hai perfettamente ragione Roberto!!!
e ho trovato questa versione in un vecchio forum italiano, è corretto secondo te?
// Swing di GANN
// dedicato a Katia
// creato da Luca De Florio per ProRealTime
if barindex=0 then
lasthigh=high
lastlow=low
oldrv=high
endif
// calcola le barre che hanno massimo e minimo piu' alto della precedente
if (high > lasthigh) AND (low > lastlow) then
rv = High[0]
lasthigh=rv
lastlow=low
lastrv=1
// Poi calcola le barre che hanno massimo e minimo piu' basso della precedente
elsif (high < lasthigh) AND (low < lastlow) then
rv = low[0]
lastlow=rv
lasthigh=high
lastrv=2
else
// nel caso di inside o outside, controlla la barra precedente,
// se era High prende il valore high, se era Low prende il valore Low
if lastrv=1 and high>lasthigh then
rv=high
lasthigh=high
lastlow= low
elsif lastrv=2 and low<lastlow then
rv=low
lasthigh=high
lastlow= low
else
rv=oldrv
endif
endif
// Solo nel caso della prima barra, si parte dall'High del giorno
oldrv=rv
return rv as "Swing"
Ciao, sono contento che il codice vi sia stato utile, io sono il creatore (ed ho scoperto questo bel sito proprio cercando i miei vecchi codici che, qualche anno fa, erano condivisi direttamente sul sito di ProRealTime 🙂 )
Vedo che PRT si è molto evoluta, qualcuno sa dirmi se nel frattempo è possibile unire direttamente i massimi e i minimi in una sorta di zig zag?
Magari fosse possibile. Ho aperto tempo fa questo topic proprio chiedendo questa cosa, ma secondo Nicolas non si puo’ fare. Speriamo che nel frattempo qualcuno abbia avuto una intuizione in tal senso.
Ciao, sono contento che il codice vi sia stato utile, io sono il creatore (ed ho scoperto questo bel sito proprio cercando i miei vecchi codici che, qualche anno fa, erano condivisi direttamente sul sito di ProRealTime 🙂 ) Vedo che PRT si è molto evoluta, qualcuno sa dirmi se nel frattempo è possibile unire direttamente i massimi e i minimi in una sorta di zig zag?
A parte l’utilizzare lo ZigZag nativo di PRT, la nuova versione 10.3 uscita a Gennaio 2017 supporta molte istruzioni grafiche, in particolare DRAWSEGMENT di cui al link https://www.prorealcode.com/documentation/drawsegment/
Puoi anche fare una ricerca nel forum e troverai anche molti esempi, tra cui questo https://www.prorealcode.com/prorealtime-indicators/fractals-zigzag/.
Salve riprendo questo mio vecchio post. Vorrei sapere se e’ possibile far apparire il valore di prezzo dello swing direttamente sul grafico. Grazie
Intendi mettere l’indicatore sul grafico come una media?
Se intendi questo, si è possibile. Clicca sulla chiave inglese che è nell’angolo in alto a sinistra del grafico, poi evidenzia PREZZO, quindi aggiungi l’indicatore scegliendolo tra quelli indicati.
Salve Roberto, intendo far apparire il prezzo proprio in prossimita’ della candela che genera lo swing high o lo swing low.
Eccolo:
// Swing di GANN
// dedicato a Katia
// creato da Luca De Florio per ProRealTime
defparam calculateonlastbars=1000
offset = 40*pipsize
if barindex=0 then
lasthigh=high
lastlow=low
oldrv=high
endif
// calcola le barre che hanno massimo e minimo piu' alto della precedente
if (high > lasthigh) AND (low > lastlow) then
rv = High[0]
lasthigh=rv
lastlow=low
lastrv=1
// Poi calcola le barre che hanno massimo e minimo piu' basso della precedente
elsif (high < lasthigh) AND (low < lastlow) then
rv = low[0]
lastlow=rv
lasthigh=high
lastrv=2
else
// nel caso di inside o outside, controlla la barra precedente,
// se era High prende il valore high, se era Low prende il valore Low
if lastrv=1 and high>lasthigh then
rv=high
lasthigh=high
lastlow= low
elsif lastrv=2 and low<lastlow then
rv=low
lasthigh=high
lastlow= low
else
rv=oldrv
endif
endif
// Solo nel caso della prima barra, si parte dall'High del giorno
oldrv=rv
SwingChange = (close < rv AND close[1] > rv[1]) OR (close > rv AND close[1] < rv[1])
IF SwingChange THEN
IF close < rv THEN
Prezzo = low[1]
DRAWTEXT("#Prezzo#",barindex-1,low[1] - Offset) coloured(0,128,0,255)
ELSE
Prezzo = high[1]
DRAWTEXT("#Prezzo#",barindex-1,high[1] + Offset) coloured(0,128,0,255)
ENDIF
ENDIF
return rv as "Swing"
Ti ringrazio tanto Roberto.
Scusami Roberto, ma al rigo 41 e al rigo 43 usi il termine close, ma la close nell’indicatore e’ ininfluente al fine del verificarsi dello swing. L’indicatore prende in considerazione solo low e high. Mi spieghi meglio questa cosa per favore?