커뮤니티

변환 문의

프로필 이미지
롬롬7
2020-10-06 00:28:38
793
글번호 142868
답변완료
안녕하세요. 계속 일봉으로의 변환 요청 드렸는데 매번 감사드립니다. 1) 아래 식은 지표인데요. 분봉에서 일봉 기준으로 사용하고 싶습니다. 변환요청 부탁드립니다.. 매번 감사합니다. for문 같은 경우 data2가 안먹기도 하고.. 시스템을 종목을 돌려보면서 해보려다보니 data2로는 어려운 점이 많네요. 2) 전체 종목을 돌려볼 수 있는 기능은 개발 일정에 없으신지 궁금합니다. 예를들면.. pgDn 버튼을 누르면 다음 종목으로 이동 input : PeriodAR(10); var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ; Lowval= Lowest(Low, PeriodAR+1); Highval = Highest(High, PeriodAR+1); For counter= 0 To PeriodAR { If Low[counter] == Lowval Then DownVel = counter; If High[counter] == highval Then UpVel = counter; } DnAroon = 100*(PeriodAR-DownVel)/PeriodAR; UpAroon = 100*(PeriodAR-UpVel)/PeriodAR; Input : shortPeriod(12), longPeriod(26), PeriodMACD(9); Var : valueMACD(0) , macdosc(0) ; valueMACD = MACD(shortPeriod, longPeriod); Input : PeriodDMI(14) ; var : DMIv(0),DP(0),DM(0); DMIv = DMI(PeriodDMI); DP = DIPlus(PeriodDMI); DM = DIMinus(PeriodDMI); Input : PeriodRSI(9); var : Relative(0), val(0); Relative = RSI(PeriodRSI); val = 0; if UpAroon >= DnAroon and valueMACD >= ma(valueMACD, 9) and DP > DM and Relative >= ma(Relative, 5) Then { val = H*1.1; Plot1(val, "D"); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-10-06 14:07:35

안녕하세요 예스스탁입니다. input : PeriodAR(10); var : cnt(0), Lowval(0), Highval(0); var : DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ; Lowval = DayLow; Highval = DayHigh; for cnt = 0 to PeriodAR{ if DayLow(cnt) < LowVal Then LowVal = DayLow(cnt); if DayHigh(cnt) > Highval Then Highval = DayHigh(cnt); } For cnt= 0 To PeriodAR { If dayLow(cnt) == Lowval Then DownVel = cnt; If DayHigh(cnt) == highval Then UpVel = cnt; } DnAroon = 100*(PeriodAR-DownVel)/PeriodAR; UpAroon = 100*(PeriodAR-UpVel)/PeriodAR; Input : shortPeriod(12), longPeriod(26), PeriodMACD(9); Var : Ep1(0), JISU1(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); var : DINDEX1(0), valueMACD(0); Ep1 = 2/(shortPeriod+1); Ep2 = 2/(longPeriod+1); if bdate != bdate[1] Then { DINDEX1 = DINDEX1 + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; } if DINDEX1 <= 1 then { JISU1 = C; JISU2 = C; valueMACD = JiSu1-Jisu2; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); valueMACD = JiSu1-Jisu2; } input : PeriodDMI(14); var : TL(0),TH(0),Dcnt(0),preTRange(0),prePlusDM14(0),MinusDM14(0),TRange1(0),preMinusDM14(0); Var : Counter(0), TRange(0), MyRange(PeriodDMI), PlusDM14(0), PlusDM(0), MinusDM(0),preADX(0); Var : CummDMI(0), Return(0); Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0),DMIv[61](0),ADXv[61](0); Array : DPlus[61](0),DMinus[61](0); if bdate != bdate[1] Then { Dcnt = Dcnt+1; HH[0] = H; LL[0] = L; CC[0] = C; preTRange = TRange[1]; prePlusDM14 = PlusDM14[1]; preMinusDM14 = MinusDM14[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]; ADXv[cnt] = ADXv[cnt-1][1]; Dplus[cnt] = Dplus[cnt-1][1]; Dminus[cnt] = Dminus[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 == PeriodDMI+1 Then { MyRange = PeriodDMI; DPlus[0] = 0; PlusDM14 = 0; TRange = 0; DMinus[0] = 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]; var1 = PlusDM; var2 = MinusDM; If var1 >= var2 Then MinusDM = 0; If var2 >= var1 Then PlusDM = 0; TRange = TRange + TR[Counter]; PlusDM14 = PlusDM14 + PlusDM; MinusDM14 = MinusDM14 + MinusDM; } If TRange <> 0 Then DPlus[0] = 100 * PlusDM14 / TRange; Else DPlus[0] = 0 ; If TRange <> 0 Then DMinus[0] = 100 * MinusDM14 / TRange; Else DMinus[0] = 0; If Dplus[0] + Dminus[0] == 0 Then DMIv[0] = 0; Else DMIv[0] = 100 * AbsValue(Dplus[0] - Dminus[0]) / (Dplus[0] + Dminus[0]); } Else If Dcnt > PeriodDMI+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]; var1 = PlusDM; var2 = MinusDM; If var1 >= var2 Then MinusDM = 0; If var2 >= var1 Then PlusDM = 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[0] = 100 * PlusDM14 / TRange; Else DPlus[0] = 0 ; If TRange <> 0 Then DMinus[0] = 100 * MinusDM14 / TRange; Else DMinus[0] = 0; If Dplus[0] + Dminus[0] == 0 Then DMIv[0] = 0; Else DMIv[0] = 100 * AbsValue(Dplus[0] - Dminus[0]) / (Dplus[0] + Dminus[0]); } Input : PeriodRSI(9); var : SigSum(0),count2(0),RSIsig(0); Var : DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0); var : idx(0), PreUpAvg(0), preDownAvg(0),RSIV(0); Array : C1[100](0); if Bdate != Bdate[1] Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } PreUpAvg = UpAvg[1]; preDownAvg = DownAvg[1]; idx = idx + 1; } C1[0] = C; If idx == PeriodRSI+2 Then { UpSum = 0; DownSum = 0; For Counter = 0 To PeriodRSI - 1 { UpAmt = C1[Counter] - C1[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else { DownAmt = -UpAmt; UpAmt = 0; } UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; } UpAvg = UpSum / PeriodRSI; DownAvg = DownSum / PeriodRSI; } If idx > PeriodRSI+2 Then { UpAmt = C1[0] - C1[1]; If UpAmt >= 0 Then DownAmt = 0; Else { DownAmt = -UpAmt; UpAmt = 0; } UpAvg = (PreUpAvg * (PeriodRSI - 1) + UpAmt) / PeriodRSI; DownAvg = (preDownAvg * (PeriodRSI - 1) + DownAmt) / PeriodRSI; } If UpAvg + DownAvg <> 0 Then RSIv = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv = 0; var : val(0); val = 0; if UpAroon >= DnAroon and valueMACD >= ma(valueMACD, 9) and DPlus[0] > DMinus[0] and RSIv >= ma(RSIv, 5) Then { val = DayHigh*1.1; Plot1(val, "D"); } 즐거운 하루되세요 > 롬롬7 님이 쓴 글입니다. > 제목 : 변환 문의 > 안녕하세요. 계속 일봉으로의 변환 요청 드렸는데 매번 감사드립니다. 1) 아래 식은 지표인데요. 분봉에서 일봉 기준으로 사용하고 싶습니다. 변환요청 부탁드립니다.. 매번 감사합니다. for문 같은 경우 data2가 안먹기도 하고.. 시스템을 종목을 돌려보면서 해보려다보니 data2로는 어려운 점이 많네요. 2) 전체 종목을 돌려볼 수 있는 기능은 개발 일정에 없으신지 궁금합니다. 예를들면.. pgDn 버튼을 누르면 다음 종목으로 이동 input : PeriodAR(10); var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ; Lowval= Lowest(Low, PeriodAR+1); Highval = Highest(High, PeriodAR+1); For counter= 0 To PeriodAR { If Low[counter] == Lowval Then DownVel = counter; If High[counter] == highval Then UpVel = counter; } DnAroon = 100*(PeriodAR-DownVel)/PeriodAR; UpAroon = 100*(PeriodAR-UpVel)/PeriodAR; Input : shortPeriod(12), longPeriod(26), PeriodMACD(9); Var : valueMACD(0) , macdosc(0) ; valueMACD = MACD(shortPeriod, longPeriod); Input : PeriodDMI(14) ; var : DMIv(0),DP(0),DM(0); DMIv = DMI(PeriodDMI); DP = DIPlus(PeriodDMI); DM = DIMinus(PeriodDMI); Input : PeriodRSI(9); var : Relative(0), val(0); Relative = RSI(PeriodRSI); val = 0; if UpAroon >= DnAroon and valueMACD >= ma(valueMACD, 9) and DP > DM and Relative >= ma(Relative, 5) Then { val = H*1.1; Plot1(val, "D"); }