커뮤니티

79998 수식 재문의

프로필 이미지
부똘이
2022-12-20 15:01:27
1421
글번호 164721
답변완료
주신 수식으로 돌려 보았으나 아무 것도 뜨지 않습니다. 다시한번 확인 부탁드립니다.
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2022-12-21 08:53:59

안녕하세요 예스스탁입니다. 값계산이 누락된 부분이 있었습니다. 수정한 식입니다. input : StartTime(90000),EndTime(160000); Input : RSIPeriod(9),Vector(14),n(50); Input : shortPeriod(12), longPeriod(26), Signal(9); var : Tcond1(False,Data1),idx1(0,data1),cnt(0,Data1),DownAmt(0,Data1), UpAmt(0,Data1); var : UpSum(0,Data1), DownSum(0,Data1), UpAvg(0,Data1), DownAvg(0,Data1); var : sum(0,Data1),rsi_(0,Data1),rsi_signal(0,Data1); Array : C1[100](0,Data1),RSIV[100](0,Data1); var : Tcond2(false,Data2),EP1(0,Data2),EP2(0,Data2),EP3(0,Data2); var : Ema1(0,Data2),Ema2(0,Data2); var : idx2(0,Data2),MACDV(0,Data2),MACDS(0,Data2),MACDO(0,Data2); if Data1((sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime)) Then Tcond1 = False; if Data1((sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)) Then { Tcond1 = true; } if Tcond1 == true Then { idx1 = idx1+1; For cnt = 99 DownTo 1 { C1[cnt] = C1[cnt-1]; RSIV[cnt] = RSIV[cnt-1]; } C1[0] = C; if idx1 >= RSIperiod-1 Then { if idx1 == RSIPeriod-1 Then { UpSum = 0; DownSum = 0; For cnt = 0 To RSIPeriod - 1 { UpAmt = C1[cnt] - C1[cnt+1]; If UpAmt >= 0 Then DownAmt = 0; Else { DownAmt = -UpAmt; UpAmt = 0; } UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; } UpAvg = UpSum / RSIPeriod; DownAvg = DownSum / RSIPeriod; } Else { UpAmt = C1[0] - C1[1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg[1] * (RSIPeriod - 1) + UpAmt) / RSIPeriod; DownAvg = (DownAvg[1] * (RSIPeriod - 1) + DownAmt) / RSIPeriod; } If UpAvg + DownAvg <> 0 Then RSIv[0] = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv[0] = 0; rsi_ = RSIV[0]; sum = 0; For cnt = 0 to Vector-1 { sum = sum + RSIV[cnt]; } rsi_signal = sum/vector; } } if Data2((sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime)) Then Tcond2 = False; if Data2((sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)) Then { Tcond2 = true; } Ep1 = 2/(shortPeriod+1); Ep2 = 2/(longPeriod+1); Ep3 = 2/(signal+1); if Tcond2 == true Then { idx2 = idx2+1; if idx2 == 1 Then { Ema1 = data2(C); Ema1 = data2(C); MACDV = Ema1-Ema2; MACDS = MACDV; } Else { Ema1 = data2(C) * EP1 + Ema1 * (1-EP1); Ema2 = data2(C) * EP2 + Ema2 * (1-EP2); MACDV = Ema1-Ema2; MACDS = MACDV * EP3 + MACDS * (1-EP3); MACDO = MACDV-MACDS; } } if macdo > 0 && rsi_ < n && rsi_ > rsi_signal && rsi_[1] < rsi_signal[1] Then { Buy(); } else if macdo < 0 && rsi_ > n && rsi_ < rsi_signal && rsi_[1] > rsi_signal[1] Then { Sell(); } 즐거운 하루되세요 > 부똘이 님이 쓴 글입니다. > 제목 : 79998 수식 재문의 > 주신 수식으로 돌려 보았으나 아무 것도 뜨지 않습니다. 다시한번 확인 부탁드립니다.
프로필 이미지

부똘이

2022-12-21 10:06:25

부똘이 님에 의해 삭제된 답변입니다.