커뮤니티

문의 드립니다.

프로필 이미지
동해바다01
2024-11-17 19:33:18
773
글번호 185343
답변완료
안녕하세요 아래지표를 예스로 변환부탁드립니다. 감사합니다. ===================================== PRC_Volume SuperTrend AI //PRC_Volume SuperTrend AI //version = 0 //29.02.24 //Iv&#225;n Gonz&#225;lez @ www.prorealcode.com //Sharing ProRealTime knowledge /////////////////////////////////////////////////////////////////////// //inputs // ~~ Input settings for K and N values k = 3 // Neighbors 1 to 100 m = 10 // Data n = max(k,m) //// ~~ Input settings for prediction values KNNPriceLen = 20 // Price Trend 2 - 500 step 10 KNNSTlen = 100 // Prediction Trend 2 - 500 step 10 aisignals = 1 // Boolean AI Trend Signals //// ~~ Define SuperTrend parameters len = 10 // Length factor = 3.0 // step 0.1 maSrc = 0 // MaType // ~~ Calculate the SuperTrend based on the user's choice vwma = average[len,maSrc](close*volume)/average[len,maSrc](volume) atr = averagetruerange[len](close) upperband = vwma + factor*atr lowerband = vwma - factor*atr if barindex < len then upperband = close lowerband = close direction = 1 else //Redefine upperband if upperband < upperband[1] or close[1] > upperband[1] then upperband = upperband else upperband = upperband[1] endif //Redefine lowerband if lowerband > lowerband[1] or close[1] < lowerband[1] then lowerdband = lowerband else lowerband = lowerband[1] endif //Define upperband prevSupertrend = mysuperTrend[1] if prevSupertrend = upperband[1] then if close > upperband then direction = -1 else direction = 1 endif else if close < lowerband then direction = 1 else directon = -1 endif endif endif if direction = -1 then mysupertrend = lowerband else mysupertrend = upperband endif // ~~ Collect data points and their corresponding labels myprice = WeightedAverage[KNNPriceLen](close) sT = WeightedAverage[kNNSTlen](mysupertrend) for i=0 to n-1 do $data[i]=mysupertrend[i] if myprice[i] > sT[i] then $labels[i] = 1 else $labels[i] = 0 endif next // ~~ Classify the current data point currentsuperTrend = mysuperTrend //label = knn_weighted(data, labels, k, current_superTrend) // Compute distances from the current point to all other points n1 = lastset($data) for i = 0 to n1-1 do $distances[i] = abs(currentsuperTrend[i]-$data[i]) $indices[i] = i next // Sort distances and corresponding indices in ascending order // Bubble sort method for i=0 to n1-2 do for j=0 to n1-i-2 do if $distances[j]>$distances[j+1] then tempDist = $distances[j] $distances[j]=$distances[j+1] $distances[j+1]=tempDist tempindex = $indices[j] $indices[j]=$indices[j+1] $indices[j+1]=tempindex endif next next // Compute weighted sum of labels of the k nearest neighbors weightedsum=0 totalweight=0 for i=0 to k-1 do myindex = $indices[i] labeli = $labels[i] weighti = 1 / ($distances[i]+pow(10,-6) ) weightedsum = weighti*labeli+weightedsum totalweight = weighti+totalweight next label = floor(weightedsum / totalweight,2) // ~~ Plot if label = 1 then r=0 g=250 b=0 elsif label = 0 then r=250 g=0 b=0 else r=0 g=0 b=250 endif middleprice = (open+close)/2 colorbetween(middleprice,mysupertrend,r,g,b,40) // ~~ Ai Super Trend Signals starttrendup = label = 1 and label[1]<>1 and aisignals starttrenddn = label = 0 and label[1]<>0 and aisignals TrendUp = direction = -1 and direction[1] = 1 and label = 1 and aisignals TrendDn = direction = 1 and direction[1] = -1 and label = 0 and aisignals if starttrendup or starttrenddn then drawpoint(barindex,currentsuperTrend,2)coloured(r,g,b) elsif Trendup then drawtext("▲",barindex,currentsuperTrend)coloured(r,g,b) elsif Trenddn then drawtext("▼",barindex,currentsuperTrend)coloured(r,g,b) endif return currentsuperTrend as "SuperTrend" coloured(r,g,b)style(line,2)
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-11-18 14:08:32

안녕하세요 예스스탁입니다. 올려주신 랭귀지는 사용경험이 없어 함수나 문법등을 정확히 알지 못해 변환해 드릴 수 없습니다. 즐거운 하루되세요 > 동해바다01 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 안녕하세요 아래지표를 예스로 변환부탁드립니다. 감사합니다. ===================================== PRC_Volume SuperTrend AI //PRC_Volume SuperTrend AI //version = 0 //29.02.24 //Iv&#225;n Gonz&#225;lez @ www.prorealcode.com //Sharing ProRealTime knowledge /////////////////////////////////////////////////////////////////////// //inputs // ~~ Input settings for K and N values k = 3 // Neighbors 1 to 100 m = 10 // Data n = max(k,m) //// ~~ Input settings for prediction values KNNPriceLen = 20 // Price Trend 2 - 500 step 10 KNNSTlen = 100 // Prediction Trend 2 - 500 step 10 aisignals = 1 // Boolean AI Trend Signals //// ~~ Define SuperTrend parameters len = 10 // Length factor = 3.0 // step 0.1 maSrc = 0 // MaType // ~~ Calculate the SuperTrend based on the user's choice vwma = average[len,maSrc](close*volume)/average[len,maSrc](volume) atr = averagetruerange[len](close) upperband = vwma + factor*atr lowerband = vwma - factor*atr if barindex < len then upperband = close lowerband = close direction = 1 else //Redefine upperband if upperband < upperband[1] or close[1] > upperband[1] then upperband = upperband else upperband = upperband[1] endif //Redefine lowerband if lowerband > lowerband[1] or close[1] < lowerband[1] then lowerdband = lowerband else lowerband = lowerband[1] endif //Define upperband prevSupertrend = mysuperTrend[1] if prevSupertrend = upperband[1] then if close > upperband then direction = -1 else direction = 1 endif else if close < lowerband then direction = 1 else directon = -1 endif endif endif if direction = -1 then mysupertrend = lowerband else mysupertrend = upperband endif // ~~ Collect data points and their corresponding labels myprice = WeightedAverage[KNNPriceLen](close) sT = WeightedAverage[kNNSTlen](mysupertrend) for i=0 to n-1 do $data[i]=mysupertrend[i] if myprice[i] > sT[i] then $labels[i] = 1 else $labels[i] = 0 endif next // ~~ Classify the current data point currentsuperTrend = mysuperTrend //label = knn_weighted(data, labels, k, current_superTrend) // Compute distances from the current point to all other points n1 = lastset($data) for i = 0 to n1-1 do $distances[i] = abs(currentsuperTrend[i]-$data[i]) $indices[i] = i next // Sort distances and corresponding indices in ascending order // Bubble sort method for i=0 to n1-2 do for j=0 to n1-i-2 do if $distances[j]>$distances[j+1] then tempDist = $distances[j] $distances[j]=$distances[j+1] $distances[j+1]=tempDist tempindex = $indices[j] $indices[j]=$indices[j+1] $indices[j+1]=tempindex endif next next // Compute weighted sum of labels of the k nearest neighbors weightedsum=0 totalweight=0 for i=0 to k-1 do myindex = $indices[i] labeli = $labels[i] weighti = 1 / ($distances[i]+pow(10,-6) ) weightedsum = weighti*labeli+weightedsum totalweight = weighti+totalweight next label = floor(weightedsum / totalweight,2) // ~~ Plot if label = 1 then r=0 g=250 b=0 elsif label = 0 then r=250 g=0 b=0 else r=0 g=0 b=250 endif middleprice = (open+close)/2 colorbetween(middleprice,mysupertrend,r,g,b,40) // ~~ Ai Super Trend Signals starttrendup = label = 1 and label[1]<>1 and aisignals starttrenddn = label = 0 and label[1]<>0 and aisignals TrendUp = direction = -1 and direction[1] = 1 and label = 1 and aisignals TrendDn = direction = 1 and direction[1] = -1 and label = 0 and aisignals if starttrendup or starttrenddn then drawpoint(barindex,currentsuperTrend,2)coloured(r,g,b) elsif Trendup then drawtext("▲",barindex,currentsuperTrend)coloured(r,g,b) elsif Trenddn then drawtext("▼",barindex,currentsuperTrend)coloured(r,g,b) endif return currentsuperTrend as "SuperTrend" coloured(r,g,b)style(line,2)