커뮤니티

간략한 수식 부탁 드립니다.

프로필 이미지
밤의마법사
2021-09-24 14:56:46
948
글번호 152443
답변완료
안녕하세요. 아래 수식은 부탁드려서 작성해주신 수식을 간략하게 바꾼 수식입니다. DiPlus와 DiMinus 함수를 사용하고 싶습니다. 그런데 DiPlus와 DiMinus의 결과 값을 Heikin Ash 차트의 형태에 대한 결과값으로 적용하고 싶습니다. 게시판에 보면 Heikin Ash의 시, 고, 저, 종 값을 구하는 식이 나와있는데, DiPlus와 DiMinus 함수를 구성하는 식을 알아야 Heikin Ash의 시,고, 저, 종 값을 적용할 수 있을 것 같습니다. 감사합니다.
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-09-24 15:27:00

안녕하세요 예스스탁입니다. Inputs: Length(14); var : xClose(0),xOpen(0),xHigh(0),xLow(0); Var : Counter(0), TRange(0), MyRange(Length), MinusDM14(0), MinusDM(0), PlusDM(0),PlusDM14(0); var : TH(0),TL(0),TR(0),DM(0),DP(0); #Heiken Ashi 시고저종 if index == 0 then { xOpen = open; xClose = (O+H+L+C)/4; xHigh = MaxList( high, xOpen, xClose); xLow = MinList( low, xOpen,xClose); } else { xClose = (O+H+L+C)/4; xOpen = (xOpen [1] + xClose [1])/2 ; xHigh = MaxList(High, xOpen, xClose) ; xLow = MinList(Low, xOpen, xClose) ; } If xClose[1] > xHigh then TH = xClose[1]; else TH = xHigh; If xClose[1] < xLow then TL = xClose[1]; else TL = xLow; TR = TH-TL; If CurrentBar == 1 Then{ MyRange = Length; DM = 0; MinusDM14 = 0; DP = 0; PlusDM14 = 0; TRange = 0; For Counter = 0 To MyRange-1 { If xHigh[Counter] - xHigh[Counter+1] < 0 Then PlusDM = 0 ; Else PlusDM = xHigh[Counter] - xHigh[Counter + 1]; If xLow[Counter + 1] - xLow[Counter] < 0 Then MinusDM = 0; Else MinusDM = xLow[Counter + 1] - xLow[Counter]; var1 = plusDM; var2 = MinusDM; If var1 >= Var2 Then MinusDM = 0; If Var2 >= var1 Then PlusDM = 0; TRange = TRange + TR[Counter]; MinusDM14 = MinusDM14 + MinusDM; PlusDM14 = PlusDM14 + PlusDM; } If TRange <> 0 Then { DM = 100 * MinusDM14 / TRange; DP = 100 * PlusDM14 / TRange; } Else { DM = 0; DP = 0; } } Else If CurrentBar > 1 Then { If xHigh[0] - xHigh[1] < 0 Then PlusDM = 0; Else PlusDM = xHigh[0] - xHigh[1]; If xLow[1] - xLow[0] < 0 Then MinusDM = 0 ; Else MinusDM = xLow[1] - xLow[0] ; var1 = plusDM; var2 = MinusDM; If var1 >= Var2 Then MinusDM = 0; If Var2 >= var1 Then PlusDM = 0; If MyRange > 0 Then { TRange = TRange[1] - (TRange[1] / MyRange) + TR; MinusDM14 = MinusDM14[1] - (MinusDM14[1] / MyRange) + MinusDM; PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM; } If TRange <> 0 Then { DM = 100 * MinusDM14 / TRange; DP = 100 * PlusDM14 / TRange; } Else { DM = 0; DP = 0; } } Plot1(DM); plot2(DP); 즐거운 하루되세요 > 밤의마법사 님이 쓴 글입니다. > 제목 : 간략한 수식 부탁 드립니다. > 안녕하세요. 아래 수식은 부탁드려서 작성해주신 수식을 간략하게 바꾼 수식입니다. DiPlus와 DiMinus 함수를 사용하고 싶습니다. 그런데 DiPlus와 DiMinus의 결과 값을 Heikin Ash 차트의 형태에 대한 결과값으로 적용하고 싶습니다. 게시판에 보면 Heikin Ash의 시, 고, 저, 종 값을 구하는 식이 나와있는데, DiPlus와 DiMinus 함수를 구성하는 식을 알아야 Heikin Ash의 시,고, 저, 종 값을 적용할 수 있을 것 같습니다. 감사합니다.