Incrocio Vidya CMO con Vidya Weight che non restituisce incroci validi
Forums › ProRealTime forum Italiano › Supporto ProScreener › Incrocio Vidya CMO con Vidya Weight che non restituisce incroci validi
-
-
04/26/2024 at 4:12 PM #231971
Buongiorno,
sono tornato sull’indicatore Vidya purtroppo come da precedente topic trovo spesso qualche problema, in questo caso sto cercando un incrocio fra tue tipi di Vidya
una è la classica a 7 periodi:
ONCE SC = 2/(7+1)
AbsCMO = (Abs(Chandle[7](Close)))/100
IF BarIndex <= 100 THEN
Vidya = close
ELSE
Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya
ENDIF
c2= Vidyal’altra è invece smussata con una media mobile weighted sempre a 7 periodi
ONCE SC = 2/(7+1)
AbsCMO = (Abs(Chandle[7](Close)))/100
IF BarIndex <= 100 THEN
Vidya = close
ELSE
Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya
ENDIF
c1 = weightedaverage[7](Vidya)Il codice dello screener in teoria dovrebbe essere cosi:
ONCE SC = 2/(7+1)
AbsCMO = (Abs(Chandle[7](Close)))/100
IF BarIndex <= 100 THEN
Vidya = close
ELSE
Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya
ENDIF
c1 = weightedaverage[7](Vidya)ONCE SC = 2/(7+1)
AbsCMO = (Abs(Chandle[7](Close)))/100
IF BarIndex <= 100 THEN
Vidya = close
ELSE
Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya
ENDIF
c2= Vidya
c3= c1 – c2
screener [c3]il problema è quello che la maggior parte dei risultati che escono dallo screener relativi all’incrocio non è corretta,
vorrei risolvere questo problema in quanto questo tipo di indicatori li sto usando molto e ho in mente una strategia
grazie
05/03/2024 at 7:51 AM #232230Ciao. Qui hai uno screener che individua i crossover rialzista/ribassista. Se vuoi cercarne solo uno devi solo cancellarlo nell'ultima riga.
1234567891011ONCE SC = 2/(7+1)AbsCMO = (Abs(Chandle[7](Close)))/100IF BarIndex <= 100 THENVidya = closeELSEVidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*VidyaENDIFVidya1= VidyaVidya2 = weightedaverage[7](Vidya)screener[Vidya1 crosses over Vidya2 or Vidya1 crosses under Vidya2]05/04/2024 at 7:35 PM #232328Ciao Ivan,
Grazie per l’aiuto, hai scritto un codice che con poche righe funziona benissimo,
ho visto che nell’ultima riga hai utilizzato il “crosses over” mentre io ho utilizzato “c3=c1-c2″
e poi hai utilizzato ” Vidya2 = weightedaverage[7](Vidya)” distinguendola (giustamente) dalla Vidya1,
in questo modo ho riscritto il codice mio precedente filtrando anche un po di volume:
MKC= Volume>100000
ONCE SC = 2/(7+1)
AbsCMO = (Abs(Chandle[7](Close)))/100
IF BarIndex <= 100 THEN
Vidya = close
ELSE
Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya
ENDIF
c1 = weightedaverage[7](Vidya)ONCE SC = 2/(7+1)
AbsCMO = (Abs(Chandle[7](Close)))/100
IF BarIndex <= 100 THEN
Vidya2 = close
ELSE
Vidya2 = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya2
ENDIF
c2= Vidya2
c3= c2 crosses over c1
screener [MKC and c3]direi che funziona bene, ma dove era l’errore del primo codice scritto da me,
l’utilizzo della differenza delle due Vidya “c3= c1 – c2” e non il crosses over?
Te lo chiedo perche l’indicatore con i richiami che utilizza la differenza fra le due Vidya sembra che funzioni bene
indicator1 = CALL “Vidya Weighted”[Periodi1]//periodi superiori a Vidya New altrimenti
//non tornano gli incroci
indicator2 = CALL “Vidya New”[Periodi]c1 =-(indicator1-indicator2)
return c1,0
05/06/2024 at 7:41 AM #232353Ciao, nel tuo codice iniziale, lo screener non filtrava nulla. Avevi affermato che c3 = c2-c1. Se non dici altro lo screener mostrerà tutti i valori (tranne c2=c1, il che è molto strano). Se volessi usare la tua espressione, dovrebbe essere qualcosa del genere:
screener[c3>0 and c3[1]<0]
per un crossover rialzistascreener[c3<0 and c3[1]>0]
per un crossover ribassista05/06/2024 at 10:04 AM #232363 -
AuthorPosts
Find exclusive trading pro-tools on