커뮤니티

지표식 문의드립니다.

프로필 이미지
TRF
2013-03-12 14:36:39
237
글번호 60599
답변완료
아래는 예스스탁님이 올려주신 틱거래량 식입니다. 거래량 산출 시간을 9시 10분부터 15:00까지만 해주고 싶은데 어떻게 바꾸어주면 될까요? 장시작 거래량이 급격히 증가하여 편차가 큽니다. 그리고 이 식을 사용자 함수로 어떻게 만들어서 사용할 수 있을까요? 미리 감사드립니다. var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),SumV(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; SumV = 0; for cnt = 0 to 100{ sumS = sumS+SecondMakecandle; if sumS <= 60 Then{ sumV = SumV+Volume; } if sumS > 60 Then{ cnt = 1000; } } plot1(sumv);
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2013-03-12 16:39:36

안녕하세요 예스스탁입니다. 1. 9시10분부터 15시 사이에서만 계산되게 작성했습니다. var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),SumV(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; SumV = 0; if stime >= 91000 and stime < 150000 then{ for cnt = 0 to 100{ sumS = sumS+SecondMakecandle[cnt]; if sumS <= 60 Then{ sumV = SumV+Volume[cnt]; } if sumS > 60 Then{ cnt = 1000; } } } plot1(sumv); 2. 사용자함수명 : SumV 반환값형 : 숫자형 사용자함수내용 : input : N(Numeric); var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),Sumvv(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; Sumvv = 0; if stime >= 91000 and stime < 150000 then{ for cnt = 0 to 100{ sumS = sumS+SecondMakecandle[cnt]; if sumS <= N Then{ Sumvv = Sumvv+Volume[cnt]; } if sumS > N Then{ cnt = 1000; } } } Sumv = Sumvv; 지표등에서 plot1(sumV(60)); 과 같이 사용하시면 됩니다. 60은 60초를 의미합니다. 즐거운 하루되세요 > TRF 님이 쓴 글입니다. > 제목 : 지표식 문의드립니다. > 아래는 예스스탁님이 올려주신 틱거래량 식입니다. 거래량 산출 시간을 9시 10분부터 15:00까지만 해주고 싶은데 어떻게 바꾸어주면 될까요? 장시작 거래량이 급격히 증가하여 편차가 큽니다. 그리고 이 식을 사용자 함수로 어떻게 만들어서 사용할 수 있을까요? 미리 감사드립니다. var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),SumV(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; SumV = 0; for cnt = 0 to 100{ sumS = sumS+SecondMakecandle; if sumS <= 60 Then{ sumV = SumV+Volume; } if sumS > 60 Then{ cnt = 1000; } } plot1(sumv);
프로필 이미지

TRF

2013-03-12 17:14:02

함수로 만들었는데 "함수가 값을 리턴하고 있지 않습니다. 함수는 반드시 값을 리턴해야 합니다." 라고 나옵니다. 해결책을 부탁드립니다. 거듭 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 지표식 문의드립니다. > 안녕하세요 예스스탁입니다. 1. 9시10분부터 15시 사이에서만 계산되게 작성했습니다. var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),SumV(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; SumV = 0; if stime >= 91000 and stime < 150000 then{ for cnt = 0 to 100{ sumS = sumS+SecondMakecandle[cnt]; if sumS <= 60 Then{ sumV = SumV+Volume[cnt]; } if sumS > 60 Then{ cnt = 1000; } } } plot1(sumv); 2. 사용자함수명 : SumV 반환값형 : 숫자형 사용자함수내용 : input : N(Numeric); var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),Sumvv(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; Sumvv = 0; if stime >= 91000 and stime < 150000 then{ for cnt = 0 to 100{ sumS = sumS+SecondMakecandle[cnt]; if sumS <= N Then{ Sumvv = Sumvv+Volume[cnt]; } if sumS > N Then{ cnt = 1000; } } } Sumv = Sumvv; 지표등에서 plot1(sumV(60)); 과 같이 사용하시면 됩니다. 60은 60초를 의미합니다. 즐거운 하루되세요 > TRF 님이 쓴 글입니다. > 제목 : 지표식 문의드립니다. > 아래는 예스스탁님이 올려주신 틱거래량 식입니다. 거래량 산출 시간을 9시 10분부터 15:00까지만 해주고 싶은데 어떻게 바꾸어주면 될까요? 장시작 거래량이 급격히 증가하여 편차가 큽니다. 그리고 이 식을 사용자 함수로 어떻게 만들어서 사용할 수 있을까요? 미리 감사드립니다. var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),SumV(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; SumV = 0; for cnt = 0 to 100{ sumS = sumS+SecondMakecandle; if sumS <= 60 Then{ sumV = SumV+Volume; } if sumS > 60 Then{ cnt = 1000; } } plot1(sumv);
프로필 이미지

예스스탁 예스스탁 답변

2013-03-12 18:19:50

안녕하세요 예스스탁입니다. 함수명을 잘못 지정하신 것 같습니다. 사용자함수 파일로 올려드립니다. C:₩예스트레이더₩YesLang₩Functions 아래 경로에 다운받으신 후 예스랭귀지 편집기를 한번 다시 열어주신 후에 사용하시면 됩니다. 즐거운 하루되세요 > TRF 님이 쓴 글입니다. > 제목 : Re : Re : 지표식 문의드립니다. > 함수로 만들었는데 "함수가 값을 리턴하고 있지 않습니다. 함수는 반드시 값을 리턴해야 합니다." 라고 나옵니다. 해결책을 부탁드립니다. 거듭 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 지표식 문의드립니다. > 안녕하세요 예스스탁입니다. 1. 9시10분부터 15시 사이에서만 계산되게 작성했습니다. var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),SumV(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; SumV = 0; if stime >= 91000 and stime < 150000 then{ for cnt = 0 to 100{ sumS = sumS+SecondMakecandle[cnt]; if sumS <= 60 Then{ sumV = SumV+Volume[cnt]; } if sumS > 60 Then{ cnt = 1000; } } } plot1(sumv); 2. 사용자함수명 : SumV 반환값형 : 숫자형 사용자함수내용 : input : N(Numeric); var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),Sumvv(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; Sumvv = 0; if stime >= 91000 and stime < 150000 then{ for cnt = 0 to 100{ sumS = sumS+SecondMakecandle[cnt]; if sumS <= N Then{ Sumvv = Sumvv+Volume[cnt]; } if sumS > N Then{ cnt = 1000; } } } Sumv = Sumvv; 지표등에서 plot1(sumV(60)); 과 같이 사용하시면 됩니다. 60은 60초를 의미합니다. 즐거운 하루되세요 > TRF 님이 쓴 글입니다. > 제목 : 지표식 문의드립니다. > 아래는 예스스탁님이 올려주신 틱거래량 식입니다. 거래량 산출 시간을 9시 10분부터 15:00까지만 해주고 싶은데 어떻게 바꾸어주면 될까요? 장시작 거래량이 급격히 증가하여 편차가 큽니다. 그리고 이 식을 사용자 함수로 어떻게 만들어서 사용할 수 있을까요? 미리 감사드립니다. var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0); var : cnt(0),SumS(0),SumV(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//끝시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; sumS = 0; SumV = 0; for cnt = 0 to 100{ sumS = sumS+SecondMakecandle; if sumS <= 60 Then{ sumV = SumV+Volume; } if sumS > 60 Then{ cnt = 1000; } } plot1(sumv);