커뮤니티

특정시간의 N일간 특정조건

프로필 이미지
행복충전
2011-08-04 15:16:24
826
글번호 41635
답변완료
https://www.yesstock.com/SystemTrading/Example/board/view.asp?db=board100044&num=134&pageno=1&startpage=1&Site=&L_Code=13&M_Code=5 =============================== 9~10시 사이의 3일간 거래량 평균 =============================== var : AvgVolume(0),cnt(0); array : sumVolume[5](0); if date != date[1] then{ sumVolume[0] = V; for cnt = 1 to 4{ sumVolume[cnt] = sumVolume[cnt-1][1]; } } if stime > 90000 and stime < 100000 then{ sumVolume[0] = sumVolume[0]+Volume; } AvgVolume = (sumVolume[0]+sumVolume[1]+sumVolume[2])/3; plot1(AvgVolume[0]); ============================================== 툭정시간의 N일간 특정조건을 구하는 사용자함수 ============================================== 위쪽의 수식을 변경해서 사용자 함수를 만들려고 합니다. 사용자함수명을 TD1, TD2 라 할때. TDn(StartTime,EndTime,Period,Condition) [예제1] TD1( 10, 11, 5, crossup(ma(c,5),ma(c,20)) ) - 10시부터 11시까지 5일동안 골든크로스가 발생한 횟수 [예제2] TD2( 12, 14, 10, V ) - 12시부터 14시까지 10일동안 거래량 평균 복잡한 수식을 부탁한 것 같아 죄송합니다. 아래 수식은 수정하다 만 미완성된 수식임 input : StartTime(90000), EndTime(100000), NDay(3); var : AvgVolume(0),cnt(0),cnt1(0),total(0); array : sumVolume[5](0); if stime == StartTime then{ sumVolume[0] = V; total = 0; for cnt = 1 to NDay-1 { sumVolume[cnt] = sumVolume[cnt-1][1]; } } if stime > StartTime and stime < EndTime then{ sumVolume[0] = sumVolume[0]+Volume; } for cnt1 = 0 to NDay-1 total = total + sumVolume[cnt1]; AvgVolume = total/NDay; plot1(AvgVolume[0]);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-08-05 10:17:01

안녕하세요 예스스탁입니다. 1. 사용자함수명 : TD1 input : StartTime(Numeric),EndTime(Numeric),Period(Numeric),condition(TrueFalse); var : AvgVolume(0),cnt(0),acc(0),AvgV(0); array : sum[20](0); if date != date[1] then{ sum[0] = 0; for cnt = 1 to 19{ sum[cnt] = sum[cnt-1][1]; } } if stime >= StartTime and stime <= EndTime then{ if Condition == true Then sum[0] = sum[0]+1; } acc = 0; for cnt = 0 to Period-1 { acc = acc+Sum[cnt]; } TD1 = acc; 2. 사용자함수명 : TD2 input : StartTime(Numeric),EndTime(Numeric),Period(Numeric),value(Numeric); var : AvgVolume(0),cnt(0),acc(0),AvgV(0); array : sum[20](0); if date != date[1] then{ sum[0] = 0; for cnt = 1 to 19{ sum[cnt] = sum[cnt-1][1]; } } if stime >= StartTime and stime <= EndTime then sum[0] = sum[0]+value; acc = 0; for cnt = 0 to Period-1 { acc = acc+Sum[cnt]; } AvgV = acc/Period; TD2 = avgv; 즐거운 하루되세요 > 행복충전 님이 쓴 글입니다. > 제목 : 특정시간의 N일간 특정조건 > https://www.yesstock.com/SystemTrading/Example/board/view.asp?db=board100044&num=134&pageno=1&startpage=1&Site=&L_Code=13&M_Code=5 =============================== 9~10시 사이의 3일간 거래량 평균 =============================== var : AvgVolume(0),cnt(0); array : sumVolume[5](0); if date != date[1] then{ sumVolume[0] = V; for cnt = 1 to 4{ sumVolume[cnt] = sumVolume[cnt-1][1]; } } if stime > 90000 and stime < 100000 then{ sumVolume[0] = sumVolume[0]+Volume; } AvgVolume = (sumVolume[0]+sumVolume[1]+sumVolume[2])/3; plot1(AvgVolume[0]); ============================================== 툭정시간의 N일간 특정조건을 구하는 사용자함수 ============================================== 위쪽의 수식을 변경해서 사용자 함수를 만들려고 합니다. 사용자함수명을 TD1, TD2 라 할때. TDn(StartTime,EndTime,Period,Condition) [예제1] TD1( 10, 11, 5, crossup(ma(c,5),ma(c,20)) ) - 10시부터 11시까지 5일동안 골든크로스가 발생한 횟수 [예제2] TD2( 12, 14, 10, V ) - 12시부터 14시까지 10일동안 거래량 평균 복잡한 수식을 부탁한 것 같아 죄송합니다. 아래 수식은 수정하다 만 미완성된 수식임 input : StartTime(90000), EndTime(100000), NDay(3); var : AvgVolume(0),cnt(0),cnt1(0),total(0); array : sumVolume[5](0); if stime == StartTime then{ sumVolume[0] = V; total = 0; for cnt = 1 to NDay-1 { sumVolume[cnt] = sumVolume[cnt-1][1]; } } if stime > StartTime and stime < EndTime then{ sumVolume[0] = sumVolume[0]+Volume; } for cnt1 = 0 to NDay-1 total = total + sumVolume[cnt1]; AvgVolume = total/NDay; plot1(AvgVolume[0]);