Ciao a tutti,
vorrei provare a scrivere una strategia basata su Heikin Ashi per il proScreener … per esempio quattro candele rosse consecutive e due verdi consecutive…
Mi confermate che non è possibile usare Heikin Ashi con la creazione guidata e che è necessario scrivere il codice di programmazione? In caso potreste postarmi un esempio semplice con il cambio di colore del grafico HA?
Grazie in anticipo per l’aiuto.
Pubblica il tuo argomento nel forum corretto:
_ Supporto piattaforma ProRealTime: solo problemi relativi alla piattaforma.
_ ProOrder: solo argomenti su strategie.
_ ProBuilder: solo argomenti su indicatori.
_ ProScreener: solo argomenti su screener.
_ Discussione generale di Trading: qualsiasi altro argomento di trading.
_ Benvenuto ai nuovi membri: per permettere ai nuovi membri del forum di presentarsi.
Hai fatto riferimento ad una strategia e ad uno screener, invece hai postato nel forum relativo agli indicatori. Grazie 🙂
La creazione facilitata non consente di utilizzare le candele Heikin-Ashi (c’è in ultimazione una nuova versione, la 12, ma ancora non si conoscono bene tutte le caratteristiche), quindi occorre usare la programmazione:
xOpen = open
xClose = (open + close + high + low) / 4
if barindex > 0 then
xOpen = (xOpen[1] + xClose[1]) / 2
endif
Verde = xClose > xOpen
Rossa = xClose < xOpen
L1 = (summation[4](Rossa) = 4) //4 candele ROSSE consecutive
L2 = (summation[2](Verde) = 2) //2 candele VERDI consecutive
Cond = L1[2] AND L2
SCREENER[Cond]
Roberto grazie per il codice. Scusami per aver postato nel forum sbagliato: ho dovuto perchè il pulsante Create a post appariva in tutte le categorie eccetto quella supporto ProScreener…non so perchè.
Puoi confermarmi che hai già spostato tu nel forum corretto?
Grazie. Ho provato a fare delle modifiche, ma non ci sono riuscito. Volevo fare le seguenti due variazioni:
– un ritracciamento impostato nel modo seguente:
HA rossa;
HA(1) verde;
HA(2) verde;
da H(3) a H(6) rossa.
Per fare questo ho provato con il codice:
xOpen = open
xClose = (open + close + high + low) / 4
if barindex > 0 then
xOpen = (xOpen[1] + xClose[1]) / 2
endif
Verde = xClose > xOpen
Rossa = xClose < xOpen
L1 = (summation[4](Rossa) = 4) //4 candele ROSSE consecutive
L2 = (summation[2](Verde) = 2) //2 candele VERDI consecutive
L3 = (summation[1](Rossa) = 1) //1 candele ROSSE consecutive
Cond = L1[3] AND L2[2] AND L3
SCREENER[Cond]
– segnale di acquisto sotto la mm20:
HA verde;
HA(1) verde;
HA(2) rossa;
da H(3) a HA(6) rossa
max HA(1) < SMA20
xOpen = open
xClose = (open + close + high + low) / 4
Sma20 = Average[20]
if barindex > 0 then
xOpen = (xOpen[1] + xClose[1]) / 2
endif
Verde = xClose > xOpen
Rossa = xClose < xOpen
L1 = (summation[4](Rossa) = 4) //4 candele ROSSE consecutive
L2 = (summation[2](Verde) = 2) //2 candele VERDI consecutive
L3 = Verde<Sma20
Cond = L1[2] AND L2 AND L3
SCREENER[Cond]
Come andrebbe scritto il codice corretto?
#1
xOpen = open
xClose = (open + close + high + low) / 4
if barindex > 0 then
xOpen = (xOpen[1] + xClose[1]) / 2
endif
Verde = xClose > xOpen
Rossa = xClose < xOpen
L1 = Rossa //Attuale ROSSA
L2 = Verde[1] //La prima precedente VERDE
L3 = Verde[2] //La seconda precedente VERDE
L4 = (summation[4](Rossa[3]) = 4) //dalla 3a alla 6a precedente tutte ROSSE (sono 4 candele)
Cond = L1 AND L2 AND L3 AND L4
SCREENER[Cond]
#2
xOpen = open
xClose = (open + close + high + low) / 4
if barindex > 0 then
xOpen = (xOpen[1] + xClose[1]) / 2
endif
//xLow = min(low,min(xClose,xOpen))
xHigh = max(high,max(xClose,xOpen))
//xTypic = (xHigh + xLow + xClose) / 3
//xMed = (xHigh + xLow) / 2
//xRange = xHigh - xLow
//
Sma20 = Average[20] //Sma calcolata sulle candele giapponesi normali
//Sma20 = Average[20](xClose) //Sma calcolata sulle candele HA
Verde = xClose > xOpen
Rossa = xClose < xOpen
L1 = Verde //Attuale VERDE
L2 = Verde[1] //La prima precedente VERDE
L3 = (summation[5](Rossa[2]) = 5) //dalla 2a alla 6a precedente tutte ROSSE (sono 5 candele)
L4 = xHigh[1] < Sma20 //Il massimo HA precedente deve essere sotto la Sma20
Cond = L1 AND L2 AND L3 AND L4
SCREENER[Cond]
Grazie Roberto,
potresti dare un’occhiata al rigo 3 in entrambi i codici, in particolare la parte in cui è scritto >
Forse c’è un errore
Scusami, ho dimenticato di toglierli. Sostituisci > con >.
Ho provato a modificare il codice relativo al ritracciamento in modo farlo ritracciare soltanto con una candela verde anzichè due. La sintassi è corretta perchè non viene restituito nessun errore, però è strano che non trova titoli che corrispondono a tutte le condizioni.
Posto qui il codice:
xOpen = open
xClose = (open + close + high + low) / 4
if barindex > 0 then
xOpen = (xOpen[1] + xClose[1]) / 2
endif
Verde = xClose > xOpen
Rossa = xClose < xOpen
L1 = Rossa //Attuale ROSSA
L2 = Verde[1] //La prima precedente VERDE
L3 = (summation[3](Rossa[2]) = 4) //dalla 3a alla 6a precedente tutte ROSSE (sono 4 candele)
Cond = L1 AND L2 AND L3
SCREENER[Cond]
C’è qualcosa di illogico che lo rende difficile da verificarsi? Il mio intento era solo quello di copiare il codice sopra e modificare il numero delle candele verdi di ritracciamento da 2 a 1.
Perché hai usato 3 con SUMMATION, quindi esamina 3 candele e somma quelle con la condizione valida, quindi il totale NON sarà mai 4, ma al massimo 3.
Sostituisci 4 con 3.
Ho provato a usare questo codice, ma sembra che i risultati del segnale arrivino un giorno dopo quello che vorrei. In pratica il segnale dovrebbe arrivare quando l’ultima candela ha chiusura oltre il massimo o minimo della candela precedente che dovrebbe essere una doji. In generale questo codice fa quello che mi aspetto ma almeno con un giorno di ritardo. C’è qualche errore? Per la versione free di Prorealtime (quindi con dati end of day) qual’è il momento migliore di usare il proscreener? Dopo la chiusura del mercato o dopo la mezzanotte?
xOpen = open
xClose = (open + close + high + low) / 4
if barindex > 0 then
xOpen = (xOpen[1] + xClose[1]) / 2
endif
//
xLow = min(low,min(xClose,xOpen))
xHigh = max(high,max(xClose,xOpen))
//xTypic = (xHigh + xLow + xClose) / 3
//xMed = (xHigh + xLow) / 2
//xRange = xHigh - xLow
//
Verde = xClose > xOpen
Rossa = xClose < xOpen
Doji1 = xClose = xOpen
Shadow1 = (xHigh[1] - Max (xClose[1],xOpen[1])) > Abs (xClose[1]-xOpen[1])
Shadow2 = Min (xClose[1],xOpen[1]) - xLow[1] > Abs (xClose[1]-xOpen[1])
Doji2 = Shadow1 AND Shadow2
Doji = Doji1 OR Doji2
Breaka = xClose > xHigh[1]
Breakv = xClose < xLow[1]
Sma50 = Average[50](xClose)
Pendenza = Sma50 > Sma50[1]
Pendenzav = Sma50 < Sma50[1]
c1 = Breaka AND Pendenza AND Doji[1] AND Verde
c2 = Breakv AND Pendenzav AND Doji[1] AND Rossa
SCREENER[c1 OR c2]
Se hai la versione free, c’è sempre una candela di ritardo.
Ok grazie, quindi oltre la candela attuale c’è una candela di ritardo