커뮤니티

수식 문의

프로필 이미지
까냐스키
2022-06-02 16:17:08
1011
글번호 159542
답변완료
다음 수식을 예스 수식으로 변환하고 싶습니다. 출처도 아래 링크에 첨부하였습니다. 도움 되시기 바랍니다. 부탁 좀 드리겠습니다. 감사합니다. maPrice = customclose bandedge= UniversalPeriod whitenoise= (maPrice - maPrice[min(UniversalPeriod,UniversalFilter)])/2 if barindex>bandedge then a1= Exp(-1.414 * 3.14159 / bandedge) b1= 2*a1 * Cos(1.414*180 /bandedge) c2= b1 c3= -a1 * a1 c1= 1 - c2 - c3 filt= c1 * (whitenoise + whitenoise[1])/2 + c2*filt[1] + c3*filt[1] filt1 = filt if ABS(filt1)>pk[1] then pk = ABS(filt1) else pk = 0.991 * pk[1] endif if pk=0 then denom = -1 else denom = pk endif if denom = -1 then result = result[1] else result = filt1/pk endif endif /////////////////////////////////////////////////// dTR = 0 for i = 0to ATRperiod-1 dTR=dTR+max(abs(Dhigh(i)-Dlow(i)),max(abs(Dhigh(i)-Dclose(i+1)),abs(Dlow(i)-Dclose(i+1)))) next dtr=dtr/MAX(1,TightenChannel) avgRange = dTR maValue = average[max(1,AveragePeriod),AverageMethod](maPrice) ResultValue = RESULT Buffer1=maValue Buffer2=maValue+(avgRange*((overBought))) Buffer3=maValue-(avgRange*( (overSold))) Buffer4=maValue+(ResultValue)/1*avgRange Buffer5=maValue+(avgRange*((10/10))) Buffer6=maValue+(avgRange*((-10/10))) if UniAvg then UniAvgline=Average[UniAvgPeriod](buffer4) ELSE UniAvgline=UNDEFINED endif MyUNI = result R = 50+(200-MyUNI*400) G =50+(200+MyUNI*500) DRAWCANDLE(Buffer2, Buffer3, Buffer2, Buffer3)coloured(R,G,0,40) return Buffer1 coloured(0,0,0) style(dottedline,1) as "0 level", Buffer2 coloured(0,0,0) style(dottedline,1) as "overbought level", Buffer3 coloured(0,0,0) style(dottedline,1) as "oversold level", Buffer4 coloured(0,130,250) style(LINE,2) as "UNIVERSAL VALUE",Buffer5 AS"1 level",Buffer6 AS"-1 level",UniAvgline coloured(250,150,0) style(dottedline,1) AS" UniversalAverage" https://www.prorealcode.com/prorealtime-indicators/universal-channel-oscillator/
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-06-03 11:35:35

안녕하세요 예스스탁입니다. 해당언어를 잘 알지 못해 제대로 변환이 되었는지 모르겠습니다. DRAWCANDLE로 출력 되어 있어 강조식으로 작성해 드립니다. 설명에 외부변수에 대한 내용은 없어 임의로 지정해 드립니다. input : UniversalPeriod(10),UniversalFilter(5); input : ATRperiod(10),TightenChannel(10),AveragePeriod(10); input : overBought(0.7),overSold(0.3),UniAvg(true),UniAvgPeriod(10); var : dtr(0),avgRange(0),i(0),maValue(0),ResultValue(0); var : Buffer1(0),Buffer2(0),Buffer3(0),Buffer4(0),Buffer5(0),Buffer6(0); var : UniAvgline(0),MyUNI(0),R(0),G(0); var : maPrice(0),bandedge(0),whitenoise(0); var : a1(0),b1(0),c2(0),c3(0),c1(0),filt(0),filt1(0); var : pk(0),denom(0),result(0); maPrice = c; bandedge= UniversalPeriod; whitenoise= (maPrice - maPrice[min(UniversalPeriod,UniversalFilter)])/2; if barindex>bandedge then { a1= Exp(-1.414 * 3.14159 / bandedge); b1= 2*a1 * Cos(1.414*180 /bandedge); c2= b1; c3= -a1 * a1; c1= 1 - c2 - c3; filt= c1 * (whitenoise + whitenoise[1])/2 + c2*filt[1] + c3*filt[1]; filt1 = filt; if ABS(filt1)>pk[1] then pk = ABS(filt1); else pk = 0.991 * pk[1]; if pk == 0 then denom = -1; else denom = pk; if denom == -1 then result = result[1]; else result = filt1/pk; } /////////////////////////////////////////////////// dTR = 0; for i = 0 to ATRperiod-1 { dTR=dTR+max(abs(DayHigh(i)-DayLow(i)),max(abs(DayHigh(i)-DayClose(i+1)),abs(DayLow(i)-DayClose(i+1)))); } dtr=dtr/MAX(1,TightenChannel); avgRange = dTR; maValue = ma(maPrice,max(1,AveragePeriod)); ResultValue = RESULT; Buffer1=maValue; Buffer2=maValue+(avgRange*((overBought))); Buffer3=maValue-(avgRange*( (overSold))); Buffer4=maValue+(ResultValue)/1*avgRange; Buffer5=maValue+(avgRange*((10/10))); Buffer6=maValue+(avgRange*((-10/10))); if UniAvg then UniAvgline= ma(buffer4,UniAvgPeriod); ELSE UniAvgline = Nan; MyUNI = result; R = 50+(200-MyUNI*400); G =50+(200+MyUNI*500); PlotPaintBar(Buffer2, Buffer3,"강조",Rgb(R,G,0)); 즐거운 하루되세요 > 까냐스키 님이 쓴 글입니다. > 제목 : 수식 문의 > 다음 수식을 예스 수식으로 변환하고 싶습니다. 출처도 아래 링크에 첨부하였습니다. 도움 되시기 바랍니다. 부탁 좀 드리겠습니다. 감사합니다. maPrice = customclose bandedge= UniversalPeriod whitenoise= (maPrice - maPrice[min(UniversalPeriod,UniversalFilter)])/2 if barindex>bandedge then a1= Exp(-1.414 * 3.14159 / bandedge) b1= 2*a1 * Cos(1.414*180 /bandedge) c2= b1 c3= -a1 * a1 c1= 1 - c2 - c3 filt= c1 * (whitenoise + whitenoise[1])/2 + c2*filt[1] + c3*filt[1] filt1 = filt if ABS(filt1)>pk[1] then pk = ABS(filt1) else pk = 0.991 * pk[1] endif if pk=0 then denom = -1 else denom = pk endif if denom = -1 then result = result[1] else result = filt1/pk endif endif /////////////////////////////////////////////////// dTR = 0 for i = 0to ATRperiod-1 dTR=dTR+max(abs(Dhigh(i)-Dlow(i)),max(abs(Dhigh(i)-Dclose(i+1)),abs(Dlow(i)-Dclose(i+1)))) next dtr=dtr/MAX(1,TightenChannel) avgRange = dTR maValue = average[max(1,AveragePeriod),AverageMethod](maPrice) ResultValue = RESULT Buffer1=maValue Buffer2=maValue+(avgRange*((overBought))) Buffer3=maValue-(avgRange*( (overSold))) Buffer4=maValue+(ResultValue)/1*avgRange Buffer5=maValue+(avgRange*((10/10))) Buffer6=maValue+(avgRange*((-10/10))) if UniAvg then UniAvgline=Average[UniAvgPeriod](buffer4) ELSE UniAvgline=UNDEFINED endif MyUNI = result R = 50+(200-MyUNI*400) G =50+(200+MyUNI*500) DRAWCANDLE(Buffer2, Buffer3, Buffer2, Buffer3)coloured(R,G,0,40) return Buffer1 coloured(0,0,0) style(dottedline,1) as "0 level", Buffer2 coloured(0,0,0) style(dottedline,1) as "overbought level", Buffer3 coloured(0,0,0) style(dottedline,1) as "oversold level", Buffer4 coloured(0,130,250) style(LINE,2) as "UNIVERSAL VALUE",Buffer5 AS"1 level",Buffer6 AS"-1 level",UniAvgline coloured(250,150,0) style(dottedline,1) AS" UniversalAverage" https://www.prorealcode.com/prorealtime-indicators/universal-channel-oscillator/