커뮤니티

분봉에서 일봉값을 참조할수 있는 함수를 부탁드립니다.

프로필 이미지
이조만
2014-01-19 15:59:49
166
글번호 71559
답변완료
안녕하세요. 1. 분봉내에서 일봉 DMIPlus, MACD을 만들어서 사용하려고 하다보니 지식이 부족하여 엄두가 나질 않아서 부탁을 드립니다. 2. 며칠전에 스토캐스틱에 대해서 질문을 드렸던 부분인데 분봉 어느 싯점에서나 전일 또는 전전일 일봉 종가 값을 구할수 있는 함수가 있었으면 좋겠습니다. DMIPlus, MACD 일봉 종가값도 부탁드립니다. 그럼 수고하십시요.
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-01-20 11:43:23

안녕하세요 예스스탁입니다. 1. MACDDAy Input : Period1(Numeric), Period2(Numeric); Var : Ep1(0), EP2(0); var : DayJISU1(0), DayJISU2(0),DayPreJISU1(0), DayPreJISU2(0),daycnt(0); Var : DaymacdVal(0); Ep1 = 2/(Period1+1); EP2 = 2/(Period2+1); if date != date[1] then { Daycnt = daycnt+1; DayPreJISU1 = DayJISU1[1]; DayPreJISU2 = DayJISU2[1]; } if daycnt < 1 Then { DayJisu1 = C; DayJISU2 = C; } Else { DayJISU1 = C * Ep1 + DayPreJISU1 * (1-Ep1); DayJISU2 = C * Ep2 + DayPreJISU2 * (1-Ep2); } DaymacdVal = DayJISU1 - DayJISU2; MACDday = DaymacdVal; 2.MACDsigDAy Input : Period1(Numeric), Period2(Numeric), Period3(Numeric); Var : Ep1(0), EP2(0), EP3(0); var : DayJISU1(0), DayJISU2(0),DayPreJISU1(0), DayPreJISU2(0),DayPreMacdSig(0),daycnt(0); Var : DaymacdVal(0), DaypreMacdVal(0), DaymacdSig(0),DaymacdOsc(0),DayPremacdOsc(0); Ep1 = 2/(Period1+1); EP2 = 2/(Period2+1); EP3 = 2/(Period3+1); if date != date[1] then { Daycnt = daycnt+1; DayPreJISU1 = DayJISU1[1]; DayPreJISU2 = DayJISU2[1]; DayPreMacdVal = DaymacdVal[1]; DayPreMacdSig = DaymacdSig[1]; } if daycnt < 1 Then { DayJisu1 = C; DayJISU2 = C; } Else { DayJISU1 = C * Ep1 + DayPreJISU1 * (1-Ep1); DayJISU2 = C * Ep2 + DayPreJISU2 * (1-Ep2); } DaymacdVal = DayJISU1 - DayJISU2; if daycnt < 2 Then DaymacdSig = DaymacdVal; Else DaymacdSig = DaymacdVal * Ep3 + DayPreMacdSig * (1-Ep3); MACDsigDay = DaymacdSig; 3.DMIPlusDay input : Length(Numeric); var : TL(0),TH(0),cnt(0),Dcnt(0),preTRange(0),prePlusDM14(0),DMinus(0),MinusDM14(0),TRange1(0),preMinusDM14(0); Variables: Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),Dplus(0),preADX(0),ADXv(0); Variables: CummDMI(0), Return(0); Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0),DMIv[61](0); if date != date[1] Then{ Dcnt = Dcnt+1; HH[0] = H; LL[0] = L; CC[0] = C; preTRange = TRange[1]; prePlusDM14 = PlusDM14[1]; preMinusDM14 = MinusDM14[1]; preADX = ADXv[1]; for cnt = 1 to 60{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; TR[cnt] = TR[cnt-1][1]; DMIv[cnt] = DMIv[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if CC[1] > 0 Then{ If CC[1] > HH[0] then TH = CC[1]; else TH = HH[0]; If CC[1] < LL[0] then TL = CC[1]; else TL = LL[0]; TR[0] = TH-TL; } If Dcnt == Length+1 Then { MyRange = Length; DPlus = 0; PlusDM14 = 0; TRange = 0; DMinus = 0; MinusDM14 = 0; TRange1 = 0; For Counter = 0 To MyRange - 1 { If HH[Counter] - HH[Counter+1] < 0 Then PlusDM = 0 ; Else PlusDM = HH[Counter] - HH[Counter+1]; If LL[Counter+1] - LL[Counter] < 0 Then MinusDM = 0; Else MinusDM = LL[Counter+1] - LL[Counter]; If MinusDM >= PlusDM Then PlusDM = 0; If PlusDM >= MinusDM Then MinusDM = 0; TRange = TRange + TR[Counter]; PlusDM14 = PlusDM14 + PlusDM; MinusDM14 = MinusDM14 + MinusDM; } If TRange <> 0 Then DPlus = 100 * PlusDM14 / TRange; Else DPlus = 0 ; If TRange <> 0 Then DMinus = 100 * MinusDM14 / TRange; Else DMinus = 0; } Else If Dcnt > Length+1 Then { If HH[0] - HH[1] < 0 Then PlusDM = 0; Else PlusDM = HH[0] - HH[1]; If LL[1] - LL[0] < 0 Then MinusDM = 0; Else MinusDM = LL[1] - LL[0]; If MinusDM >= PlusDM Then PlusDM = 0; If PlusDM >= MinusDM Then MinusDM = 0 ; If MyRange > 0 Then { TRange = preTRange - (preTRange / MyRange) + TR[0]; PlusDM14 = prePlusDM14 - (prePlusDM14 / MyRange) + PlusDM; MinusDM14 = preMinusDM14 - (preMinusDM14 / MyRange) + MinusDM; } If TRange <> 0 Then DPlus = 100 * PlusDM14 / TRange; Else DPlus = 0 ; If TRange <> 0 Then DMinus = 100 * MinusDM14 / TRange; Else DMinus = 0; } DMIplusDay = Dplus; 4.DMIMinusDay input : Length(Numeric); var : TL(0),TH(0),cnt(0),Dcnt(0),preTRange(0),prePlusDM14(0),DMinus(0),MinusDM14(0),TRange1(0),preMinusDM14(0); Variables: Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),Dplus(0),preADX(0),ADXv(0); Variables: CummDMI(0), Return(0); Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0),DMIv[61](0); if date != date[1] Then{ Dcnt = Dcnt+1; HH[0] = H; LL[0] = L; CC[0] = C; preTRange = TRange[1]; prePlusDM14 = PlusDM14[1]; preMinusDM14 = MinusDM14[1]; preADX = ADXv[1]; for cnt = 1 to 60{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; TR[cnt] = TR[cnt-1][1]; DMIv[cnt] = DMIv[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if CC[1] > 0 Then{ If CC[1] > HH[0] then TH = CC[1]; else TH = HH[0]; If CC[1] < LL[0] then TL = CC[1]; else TL = LL[0]; TR[0] = TH-TL; } If Dcnt == Length+1 Then { MyRange = Length; DPlus = 0; PlusDM14 = 0; TRange = 0; DMinus = 0; MinusDM14 = 0; TRange1 = 0; For Counter = 0 To MyRange - 1 { If HH[Counter] - HH[Counter+1] < 0 Then PlusDM = 0 ; Else PlusDM = HH[Counter] - HH[Counter+1]; If LL[Counter+1] - LL[Counter] < 0 Then MinusDM = 0; Else MinusDM = LL[Counter+1] - LL[Counter]; If MinusDM >= PlusDM Then PlusDM = 0; If PlusDM >= MinusDM Then MinusDM = 0; TRange = TRange + TR[Counter]; PlusDM14 = PlusDM14 + PlusDM; MinusDM14 = MinusDM14 + MinusDM; } If TRange <> 0 Then DPlus = 100 * PlusDM14 / TRange; Else DPlus = 0 ; If TRange <> 0 Then DMinus = 100 * MinusDM14 / TRange; Else DMinus = 0; } Else If Dcnt > Length+1 Then { If HH[0] - HH[1] < 0 Then PlusDM = 0; Else PlusDM = HH[0] - HH[1]; If LL[1] - LL[0] < 0 Then MinusDM = 0; Else MinusDM = LL[1] - LL[0]; If MinusDM >= PlusDM Then PlusDM = 0; If PlusDM >= MinusDM Then MinusDM = 0 ; If MyRange > 0 Then { TRange = preTRange - (preTRange / MyRange) + TR[0]; PlusDM14 = prePlusDM14 - (prePlusDM14 / MyRange) + PlusDM; MinusDM14 = preMinusDM14 - (preMinusDM14 / MyRange) + MinusDM; } If TRange <> 0 Then DPlus = 100 * PlusDM14 / TRange; Else DPlus = 0 ; If TRange <> 0 Then DMinus = 100 * MinusDM14 / TRange; Else DMinus = 0; } DMIMinusDay = Dminus; 즐거운 하루되세요 > 이조만 님이 쓴 글입니다. > 제목 : 분봉에서 일봉값을 참조할수 있는 함수를 부탁드립니다. > 안녕하세요. 1. 분봉내에서 일봉 DMIPlus, MACD을 만들어서 사용하려고 하다보니 지식이 부족하여 엄두가 나질 않아서 부탁을 드립니다. 2. 며칠전에 스토캐스틱에 대해서 질문을 드렸던 부분인데 분봉 어느 싯점에서나 전일 또는 전전일 일봉 종가 값을 구할수 있는 함수가 있었으면 좋겠습니다. DMIPlus, MACD 일봉 종가값도 부탁드립니다. 그럼 수고하십시요.