커뮤니티
분봉에서 일봉 지수이평..문의 드립니다.
2011-08-08 21:36:37
663
글번호 41755
분봉에서 일봉 이평은..
input : P1(5),P2(20),P3(60);
var : sumV1(0),maV1(0),count(0),sumV2(0), maV2(0),sumV3(0), maV3(0);
sumV1 = 0;
sumV2 = 0;
sumV3 = 0;
for count = 0 to P3{
if count < P1 Then
sumV1 = sumV1+DayClose(count);
if count < P2 Then
sumV2 = sumV2+DayClose(count);
if count < P3 Then
sumV3 = sumV3+DayClose(count);
}
maV1 = sumV1 / P1;
maV2 = sumV2 / P2;
maV3 = sumV3 / P3;
plot1(mav1);
plot2(mav2);
plot3(mav3);
요렇게 라고 답변 주셔서 잘쓰고 있습니다.
혹시 사용자 함수로
input : P1(numeric);
var : sumV1(0),count(0);
sumV1 = 0;
for count = 0 to P1{
if count < P1 Then
sumV1 = sumV1+DayClose(count);
}
dayma = sumV1 / P1;
이렇게 사용해도 되련지요? 사용자함수에서는 for문 안에서 연산이 잘못될수도 있다고 어디서 본것 같아서요..
그리고.. 지수이평도 구하고 싶습니다..
답변 1
예스스탁 예스스탁 답변
2011-08-09 11:23:08
안녕하세요
예스스탁입니다.
1.
예 해당식은 작성하신것과 같이
사용자 함수로 만들어 사용하셔도 됩니다.
2, 일봉 지수이평 계산식입니다.
/*************지수이평 계산식************************
EMA = 현재봉의 종가 * Ep + 전봉의EMA * (1-EP)
Ep(평활계수)= 2/(Period+1)
*****************************************************/
Input : Period(5);
Var : Ep(0), JISU(0), DINDEX(0), PreJISU(0);
Ep = 2/(Period+1); //평활계수
if date != date[1] then { //날짜가 변경될 경우에(매일의 첫번째 봉)
DINDEX = DINDEX + 1; //일봉상의 index를 구한다
PreJISU = JISU[1]; //전봉(전일 마지막 봉)의 JISU값을 preJISU에 저장한다.
}
if DINDEX <= 1 then //일봉상의 인덱스가 1이하이면(차트 맨 앞 첫구간을 의미)
JISU = C; //종가를 지수이동평균값으로 저장한다.
else //이외의 경우에는 (두번째 구간 부터는)
JISU = C * EP + PreJISU * (1-EP); //위 지수이평 계산식에 의해 계산된 값을 지수이평값으로 저장한다.
plot1(JISU,"지수이동평균"); //지수이동평균을 출력한다.
즐거운 하루되세요
> HI_dllee 님이 쓴 글입니다.
> 제목 : 분봉에서 일봉 지수이평..문의 드립니다.
> 분봉에서 일봉 이평은..
input : P1(5),P2(20),P3(60);
var : sumV1(0),maV1(0),count(0),sumV2(0), maV2(0),sumV3(0), maV3(0);
sumV1 = 0;
sumV2 = 0;
sumV3 = 0;
for count = 0 to P3{
if count < P1 Then
sumV1 = sumV1+DayClose(count);
if count < P2 Then
sumV2 = sumV2+DayClose(count);
if count < P3 Then
sumV3 = sumV3+DayClose(count);
}
maV1 = sumV1 / P1;
maV2 = sumV2 / P2;
maV3 = sumV3 / P3;
plot1(mav1);
plot2(mav2);
plot3(mav3);
요렇게 라고 답변 주셔서 잘쓰고 있습니다.
혹시 사용자 함수로
input : P1(numeric);
var : sumV1(0),count(0);
sumV1 = 0;
for count = 0 to P1{
if count < P1 Then
sumV1 = sumV1+DayClose(count);
}
dayma = sumV1 / P1;
이렇게 사용해도 되련지요? 사용자함수에서는 for문 안에서 연산이 잘못될수도 있다고 어디서 본것 같아서요..
그리고.. 지수이평도 구하고 싶습니다..