커뮤니티
특정시간의 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]);
다음글