Machine-Learning-Z-Score-Tradingview
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Machine-Learning-Z-Score-Tradingview
- This topic has 1 reply, 2 voices, and was last updated 1 month ago by
Iván.
Viewing 2 posts - 1 through 2 (of 2 total)
-
-
09/04/2025 at 10:58 AM #250346
Richiedo , se è possibile, la traduzione di questo indicatore.
https://it.tradingview.com/script/oJKrJF4L-Machine-Learning-Z-Score-Buy-and-Sell-SS/
Grazie
09/10/2025 at 10:21 AM #250617Ecco l’indicatore. Non avendo ancora la possibilità di creare funzioni proprie, mi è risultato complesso programmare la correlazione e consuma molte risorse.
Nell’indicatore vedrai che per impostazione predefinita utilizzo un’approssimazione e, nel caso si desideri il coefficiente di Pearson, suggerisco di attivare l’opzione per calcolare solo sulle ultime X barre (200 per esempio).123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414//-------------------------------------------------------------// PRC_Machine Learning Z-Score by Steversteves// version = 0// 10.09.25// Iván González @ www.prorealcode.com// Sharing ProRealTime knowledge//-------------------------------------------------------------//defparam calculateonlastbars=200//-------------------------------------------------------------// ===== Input parameters =====//-------------------------------------------------------------autoadjust = 1 // 1 = true, 0 = falselengthinput = 75 // default length if autoadjust = 0plottgt = 1 // 1 = true, 0 = falsemanualprice = 0 // 1 = true, 0 = falsepullbacksd = 1.0 // pullback standard deviation factoraproxCorr = 1 // 1 = use R2 , 0 = use pearson correlation (uncomment defparam line)barcolor = 1 // 1 = true, 0 = false//-------------------------------------------------------------// Correlation calculation//-------------------------------------------------------------if aproxCorr then// ===== Correlation approximation with R2 =====cor1 = R2[50](close)cor2 = R2[100](close)cor3 = R2[150](close)cor4 = R2[200](close)cor5 = R2[250](close)cor6 = R2[300](close)cor7 = R2[350](close)cor8 = R2[400](close)cor9 = R2[450](close)cor10 = R2[500](close)else// ===== Pearson Correlation =====// --- Pearson correlation for 50 ---len = 50sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor1 = ABS(num / den)ELSEcor1 = 0ENDIF// --- Pearson correlation for 100 ---len = 100sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor2 = ABS(num / den)ELSEcor2 = 0ENDIF// --- Pearson correlation for 150 ---len = 150sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor3 = ABS(num / den)ELSEcor3 = 0ENDIF// --- Pearson correlation for 200 ---len = 200sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor4 = ABS(num / den)ELSEcor4 = 0ENDIF// --- Pearson correlation for 250 ---len = 250sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor5 = ABS(num / den)ELSEcor5 = 0ENDIF// --- Pearson correlation for 300 ---len = 300sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor6 = ABS(num / den)ELSEcor6 = 0ENDIF// --- Pearson correlation for 350 ---len = 350sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor7 = ABS(num / den)ELSEcor7 = 0ENDIF// --- Pearson correlation for 400 ---len = 400sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor8 = ABS(num / den)ELSEcor8 = 0ENDIF// --- Pearson correlation for 450 ---len = 450sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor9 = ABS(num / den)ELSEcor9 = 0ENDIF// --- Pearson correlation for 500 ---len = 500sumX = 0sumY = 0sumXY = 0sumX2 = 0sumY2 = 0FOR i = 0 TO len-1 DOxi = barindex[i]yi = close[i]sumX = sumX + xisumY = sumY + yisumXY = sumXY + xi * yisumX2 = sumX2 + xi * xisumY2 = sumY2 + yi * yiNEXTn = lennum = n * sumXY - sumX * sumYden = SQRT((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY))IF den <> 0 THENcor10 = ABS(num / den)ELSEcor10 = 0ENDIFendifmaxcor = MAX(MAX(MAX(MAX(MAX(cor1,cor2),cor3),MAX(cor4,cor5)),MAX(cor6,cor7)),MAX(MAX(cor8,cor9),cor10))IF autoadjust = 1 THENIF maxcor = cor1 THENlen = 50ELSIF maxcor = cor2 THENlen = 100ELSIF maxcor = cor3 THENlen = 150ELSIF maxcor = cor4 THENlen = 200ELSIF maxcor = cor5 THENlen = 250ELSIF maxcor = cor6 THENlen = 300ELSIF maxcor = cor7 THENlen = 350ELSIF maxcor = cor8 THENlen = 400ELSIF maxcor = cor9 THENlen = 450ELSElen = 500ENDIFELSElen = lengthinputENDIF//-------------------------------------------------------------// ===== Z-Score calculations =====//-------------------------------------------------------------a = Average[len](close) // meanb = Std[len](close) // standard deviationc = (close - a) / b // z-scoresma = Average[len](c) // smoothed z-scoreIF manualprice = 1 THENz0 = a + pullbacksd * bELSEz0 = a + sma * bENDIFhighz = Highest[len](c)lowz = Lowest[len](c)//-------------------------------------------------------------// ===== Buy & Sell logic =====//-------------------------------------------------------------ONCE buywait = 0ONCE sellwait = 0lowestprice = Lowest[20](low)highestprice = Highest[20](high)atr = AverageTrueRange[14](close)// ---- Buy signal ----IF c <= lowz THENbuywait = buywait + 1IF buywait > 8 THENDRAWARROWUP(barindex,low-0.35*atr)coloured(0,255,0)DRAWTEXT("Z-Score= #c#", barindex, lowestprice - 3*atr) COLOURED("darkgreen")DRAWTEXT("Cor Length= #len#", barindex, lowestprice - 2*atr) COLOURED("darkgreen")DRAWTEXT("TP= #z0#", barindex, lowestprice - atr) COLOURED("darkgreen")IF plottgt = 1 THENDRAWSEGMENT(barindex, z0, barindex+100, z0) coloured(0,255,0)ENDIFbuywait = 0ENDIFENDIF// ---- Sell signal ----IF c >= highz THENsellwait = sellwait + 1IF sellwait > 8 THENDRAWARROWDOWN(barindex,high+0.35*atr)coloured(255,0,0)DRAWTEXT("Z-Score= #c#", barindex, highestprice + 3*atr) COLOURED("darkred")DRAWTEXT("Cor Length= #len#", barindex, highestprice + 2*atr) COLOURED("darkred")DRAWTEXT("TP= #z0#", barindex, highestprice + 1*atr) COLOURED("darkred")IF plottgt = 1 THENDRAWSEGMENT(barindex, z0, barindex+100, z0) COLOURED(255,0,0)ENDIFsellwait = 0ENDIFENDIF//-------------------------------------------------------------// ===== Bar colors =====//-------------------------------------------------------------overbought = c >= 2oversold = c <= -2if barcolor thenIF overbought THENDRAWCANDLE(open,high,low,close) COLOURED("fuchsia")ELSIF oversold THENDRAWCANDLE(open,high,low,close) COLOURED("black")ENDIFendif//-------------------------------------------------------------return -
AuthorPosts
Viewing 2 posts - 1 through 2 (of 2 total)
Find exclusive trading pro-tools on 
Similar topics: